把以下数据制作成csv数据文件,并命名为LR_data_exam.csv。 对该文件内的数据进行线性回归 画出数据的散点图 建立线性回归模型并拟合 打印拟合结果(参数) 画出数据和拟合直线的图 用model.predict预测x为10,20,30时的结果 用拟合参数预测x为40,50,60时的结果 battery,KM 2,12 5,31 8,45 8,52 13,79 15,85 17,115 19,119 21,135 24,145
3条回答 默认 最新
- Vector341 2021-06-30 23:51关注
import numpy as np import csv import matplotlib.pyplot as plt class MLR: def __init__(self,x,y,intercept=True): self.x=x self.y=y self.ic=intercept def fit(self): if self.ic: ones=np.ones(self.x.shape) X=np.c_[ones,self.x] else: X=self.x y=self.y self.a=np.linalg.inv(X.T@X)@X.T@y def predict(self,x_new): if self.ic: ones=np.ones(x_new.shape) x=np.c_[ones,x_new] else: x=x_new y=x @ self.a return y data=np.loadtxt('LR_data_exam.csv', delimiter=',', skiprows=1) x=data[:,0:-1] y=data[:,-1:] model = MLR(x,y) model.fit() #回归 k = float(model.a[1]) b = float(model.a[0]) plt.scatter(x,y) t = np.linspace(0,25,100) plt.plot(t, k*t+b) plt.show() print("斜率:{}\n截距:{}".format(k,b)) print(model.predict(np.array([10,20,30])).flatten()) print(k*np.array([40,50,60])+b)
解决 2无用
悬赏问题
- ¥15 像这种代码要怎么跑起来?
- ¥15 怎么改成循环输入删除(语言-c语言)
- ¥15 安卓C读取/dev/fastpipe屏幕像素数据
- ¥15 pyqt5tools安装失败
- ¥15 mmdetection
- ¥15 nginx代理报502的错误
- ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
- ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
- ¥100 描述一下元器件的基本功能,pcba板的基本原理
- ¥15 STM32无法向设备写入固件