第一课:初探模型
线性回归
【实例】线性回归实例讲解
作者 : 老饼 日期 : 2022-06-26 03:33:27 更新 : 2022-11-29 03:07:26
本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com


本文展示一个线性回归的使用例子,

包括自行求解的代码Demo及调用sklearn包求解的代码代码Demo



     问题     


现有数据以下
 

需要我们建立线性模型,用变量 x1,x2 预测y
✍️备注
 以上数据的实际关系为: 
  
我们建完模可以回头看看建模的结果与这个是否一致




  01. 建模思路  


本节我们梳理用线性回归建模的整体思路


    建模思路梳理   


建模思路如下
确定模型
 
假设变量服从线性关系,得到模型

 
求取最佳的W
 
实际操作步骤很简单,
只要把X添加一列1,然后用求解公式求解W就可以了,
再代回模型表达式,就能得到模型
 
 





    02. 代码实现    



本节通过自写代码求解和调包求解两种方法,实现线性回归模型求解



  方法一:自写代码  


根据线性回归模型的求解公式,进行求解即可
python代码如下:

from sklearn import linear_model
import numpy as np
#输入数据
x = np.array([[0, 2], [1, 1], [2,3],[3,2],[4,5],[5,2]]) 
y = np.array([8,7,15,14,25,18])
# 给x添加一列1
xt = np.insert(x, x.shape[1], 1, axis=1)
#按公式求解w,其中inv的功能是求矩阵的逆,@是矩阵的乘法
w = np.linalg.inv(xt.T@xt)@xt.T@y
#输出W
print("模型参数W:"+str(w))
运行结果如下
模型参数W:[2. 3. 2.]
  模型回代  
 
得到了W,代入模型,
就得到我们最终的模型:

 

有新的样本过来时,我们就可以用上式进行预测





   方法二:用sklearn包   


我们也可以用python机器学习包的sklearn的线性模型方法求解
借助sklearn包求解的python代码如下
from sklearn import linear_model
import numpy as np
#输入数据
x = np.array([[0, 2], [1, 1], [2,3],[3,2],[4,5],[5,2]])
y = np.array([8,7,15,14,25,18])
#调用sklearn的线性模型包,训练数据
reg = linear_model.LinearRegression()
reg.fit(x,y)

#输出系数和阈值
print("模型参数:"+str(reg.coef_))
print("模型阈值:"+str(reg.intercept_))
运行结果如下
模型参数:[2. 3.]           
模型阈值:1.9999999999999982
  模型回代  
 
代入模型,即有:
 








 End 








联系老饼