机器学习入门教程

【实例】线性回归实例讲解

作者 : 老饼 发表日期 : 2023-10-12 04:03:01 更新日期 : 2025-03-30 13:35:52
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



线性回归模型是机器学习中的基本模型,它使用最小二乘法进行求解

本文展示一个线性回归的使用实例,来进一步学习线性回归模型

本实例包括“自行求解线性回归”,以及“调用sklearn包进行求解”的代码实例





  01. 线性回归实例-建模思路  




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




     线性回归实例-问题      


现有数据以下:
 
线性回归实例讲解的数据说明
现需要我们建立线性回归模型,用变量 x1,x2 预测y
 以上数据的实际关系为: 
  
我们建好线性模型后再回头看看模型的结果与这个是否一致





    线性回归建模思路梳理   


线性回归建模思路如下
 
确定模型
 
假设变量服从线性关系,得到模型
  
 
模型求解
 
  线性回归模型的建模过程如下图所示:
 线性模型建模流程
 
 线性回归模型的实际建模操作步骤很简单
只要把X添加一列1,然后用求解公式求解W就可以了,再回代到模型,就能得到具体的模型了








    02. 线性回归实例-代码实现    





本节展示如何对线性回归模型进行求解,包括自行求解和调包两种方法





      求解线性回归模型-自写代码      


根据线性回归模型的求解公式,进行求解即可
 具体代码如下:
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 




联系老饼