老饼讲解-机器学习 机器学习 神经网络 深度学习
机器学习入门
1.学前解惑
2.第一课:初探模型
3.第二课:逻辑回归与梯度下降
4.第三课:决策树
5.第四课:逻辑回归与决策树补充
6.第五课:常见的其它算法
7.第六课:综合应用

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

作者 : 老饼 发表日期 : 2022-06-26 03:33:27 更新日期 : 2023-12-14 05:10:17
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



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

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



     线性回归实例-问题     


现有数据以下:
 
线性回归实例讲解的数据说明
现需要我们建立线性回归模型,用变量 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 




联系老饼