本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
线性回归模型是机器学习中的基本模型,它使用最小二乘法进行求解
本文展示一个线性回归的使用实例,来进一步学习线性回归模型
本实例包括“自行求解线性回归”,以及“调用sklearn包进行求解”的代码实例
本节我们梳理用线性回归建模的整体思路
线性回归实例-问题
现有数据以下:
现需要我们建立线性回归模型,用变量 x1,x2 预测y
以上数据的实际关系为:
我们建好线性模型后再回头看看模型的结果与这个是否一致
线性回归建模思路梳理
线性回归建模思路如下
确定模型
假设变量服从线性关系,得到模型
模型求解
线性回归模型的建模过程如下图所示:
线性回归模型的实际建模操作步骤很简单
只要把X添加一列1,然后用求解公式求解W就可以了,再回代到模型,就能得到具体的模型了
本节展示如何对线性回归模型进行求解,包括自行求解和调包两种方法
求解线性回归模型-自写代码
根据线性回归模型的求解公式,进行求解即可
具体代码如下:
import numpy as np
x = np.array([[0, 2], [1, 1], [2,3],[3,2],[4,5],[5,2]]) # 输入数据x
y = np.array([8,7,15,14,25,18]) # 输出数据y
xt = np.insert(x, x.shape[1], 1, axis=1) # 给x添加一列1
w = np.linalg.inv(xt.T@xt)@xt.T@y # 按公式求解w,其中inv的功能是求矩阵的逆,@是矩阵的乘法
print("模型参数W:",w) # 打印W
代码运行结果如下:
将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]]) # 输入数据x
y = np.array([8,7,15,14,25,18]) # 输出数据y
reg = linear_model.LinearRegression() # 初始化sklearn的线性模型
reg.fit(x,y) # 用数据训练模型
print("模型参数:",reg.coef_) # 打印系数
print("模型阈值:",reg.intercept_) # 打印阈值
运行结果如下:
将模型参数代回模型,即有:
以上就是线性回归模型的实例讲解全部内容了~
End