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


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

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


  01. 问题  


例如,我们现在有以下数据:

需要我们建立线性模型
用变量x1,x2,预测y

 以上数据的实际关系为:   ,我们建完模可以回头看看建模的结果与这个是否一致




  02. 建模思路  


我们建模如下


假设变量服从线性关系,得到模型




求取最佳的W


实际操作步骤很简单,
只要把X添加一列1,然后用求解公式 求解W就可以了,就能得到我们的模型。
 
 


  03. 代码  


  方法一:自写代码  



根据线性回归模型的求解公式,进行求解即可


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的线性模型方法求解。


代码如下:


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 








联系小饼