目录
老饼讲解:一步一步上手学习

【模型】线性回归模型-原理解说

作者 : 老饼 发表日期 : 2025-11-15 17:07:31 更新日期 : 2026-05-21 13:47:15
老饼讲解-简单易懂,干货满满,爽过嗦螺!


虽然是机器学习进阶,但我们不免还是从线性回归这个老朋友开始!线性回归模型可以说是最简单的模型,那这节就让我们继续来看看线性回归模型吧!

一、线性回归模型

1.1. 线性回归-模型

线性回归模型简单地假设各个x变量与y是线性关系,也就是:

所以呢,在二维的时候,线性回归模型的意思就是,用一条直线去拟合样本点:

什么是线性回归模型

接下来,只需要令样本的拟合误差MSE最小化,求出其中的就可以了:

其中,分别代表第样本的预测值和真实值

1.2. 线性回归-模型求解

有的同学问,怎么求得令MSE最小的w,b?其实使用最小二乘法就可以了。

一般来说,把线性回归模型表示为矩阵形式:

根据最小二乘法的求解公式,可得到W为:

事实上,我们也不真的自己去用公式来求解,都是在python中使用sklearn包求解就可以了。

二、线性回归-拟合优度

在构建好线性回归模型之后,可以使用R方来评估模型的拟合优度。

2.1. 回归拟合优度-R方

R方有两种表述,第一种R方的表述为:

                    

第二种R方的表述为:

  

2.2. 如何理解R方

我们先来看看SST、SSR、SSE分别是什么,如下:

SST(Sum Squares Total)是的方差总和:

SSR(Sum Squares Regression)是回归值的方差总和,

SSE(Sum Squares Errors)是误差的方差总和:

它们三者的关系为:

直接从三者的表达式,是推导不出的,需要结合的关系,才能得到这关系。

因此,SST一般认为是的总方差,而SSR是回归模型解释的方差,SSE是未被解释的方差。

所以,就是回归模型所解释的方差占比,它在[0,1]之间,越接近1,说明模型的拟合效果越好。

三、线性回归-例子

好了,下面我们拉一个例子来看看线性回归模型怎么使用。

假设我们采集的x、y数据如下:

样本数据

事实上,上面的数据是我用 生成的,接下来我们就可以构建一个线性回归模型,看看模型是不是能找出的关系。在python中,只需要使用sklearn的linear_model.LinearRegression()函数就可以构建一个线性回归模型了,下面我们直接展示代码:

"""
本代码用于展示如何使用sklearn实现线性回归
本代码来自:《老饼讲解-机器学习》 www.bbblearn.com
"""
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("模型参数:"+str(reg.coef_))                       # 打印模型权重
print("模型阈值:"+str(reg.intercept_))                  # 打印模型阈值

好了,运行代码,得到如下的结果:

模型系数

将参数代入模型表达式,即可得到的关系如下:

可以看到,模型已经找出了我们的真实关系,哈哈哈!

总结

好了,以上就是线性回归模型了,线性回归模型最大的好处就是足够简单,但需要注意的是,输入变量和输出变量需要是线性关系,如果不是线性关系,那就不适用了,可能要想点办法来将它们转换为线性关系。



图标 评论
添加评论