「已注销」 2021-06-30 23:02 采纳率: 85.7%
浏览 1204
已结题

python 编程 线性回归,散点图,拟合结果,预测

把以下数据制作成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)
    

    img

    评论

报告相同问题?

悬赏问题

  • ¥15 像这种代码要怎么跑起来?
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件