美文网首页
线性回归手写实现

线性回归手写实现

作者: A_You | 来源:发表于2020-01-01 16:01 被阅读0次
    # 创建数据集,把数据写入到numpy数组
    import numpy as np  # 引用numpy库,主要用来做科学计算
    import matplotlib.pyplot as plt   # 引用matplotlib库,主要用来画图
    data = np.array([[152,51],[156,53],[160,54],[164,55],
                     [168,57],[172,60],[176,62],[180,65],
                     [184,69],[188,72]])
    
    # 打印大小
    x, y = data[:,0], data[:,1]
    print (x.shape, y.shape)
    
    # 1. 手动实现一个线性回归算法,具体推导细节参考4.1课程视频
    # TODO: 实现w和b参数, 这里w是斜率, b是偏移量
    x_avg = np.average(x)
    y_avg = np.average(y)
    x_y_avg = np.average(np.multiply(x,y))
    x_power_avg = np.average(np.power(x,2))
    w = (x_y_avg - x_avg * y_avg)/(x_power_avg - x_avg * x_avg )
    b = y_avg - w * x_avg
    
    print ("通过手动实现的线性回归模型参数: %.5f %.5f"%(w,b))
    
    # 2. 使用sklearn来实现线性回归模型, 可以用来比较一下跟手动实现的结果
    from sklearn.linear_model import LinearRegression
    model = LinearRegression().fit(x.reshape(-1,1),y)
    print ("基于sklearn的线性回归模型参数:%.5f %.5f"%(model.coef_, model.intercept_))
    

    相关文章

      网友评论

          本文标题:线性回归手写实现

          本文链接:https://www.haomeiwen.com/subject/aofgoctx.html