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

【实例】线性回归模型-实例讲解

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


好了,上节我们已经学习了线性回归模型的原理,那么这节我们就拉点数据出来溜溜它。

一、线性回归实例-数据与问题

1.1. 数据与问题

假设我们吭哧吭哧,去采集了6组数据回事,以下:

样本数据

现在需要我们建立线性回归模型,来用变量  预测。事实上呢,这数据是我造出来的,它的实际关系为:,下面我们建模后,再看看我们的线性回归模型能不能找出这个真实关系。

1.2. 建模思路

这数据简单得很,这里我们就忽略了数据探索(EDA)和数据清洗之类什么的,直接上手建模就好了。

线性回归建模流程

如图所示,建模也是非常简单的,只需要求解出模型中的W,再回代到模型表达式中就可以了。

二、线性回归实例-代码实现-自实现

2.1. 代码实现

好了,下面我们整点python代码,来实现它,事实上就非常简单呀,数据有了,公式也有了,我们照着求解公式,就能求出模型的系数了,具体如下:

"""
本代码用于展示,如何自己实现线性回归模型
本代码来自老饼讲解-机器学习:www.bbblearn.com
"""
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
print("模型参数W:",w)                                      # 打印W

运行结果如下:

模型的系数

好了,将W代入线性回归模型,就得到我们最终的模型了:

有新样本过来时,就可以用上面的模型去预测了。

2.2. 代码解说

好了,下面我们一起来看看代码。

第6、7行,就是导入我们的数据啦,这里数据很少,所以直接用手敲进去就可以了。

第8行就是给我们的X加一列常数1了,因为矩阵形式中的X需要增加一列常数1,用于兼容阈值b。

第9行就是用最小二乘法的求解公式来求解W了,其中np.linalg.inv是numpy提供的矩阵求逆函数,而@就是矩阵的相乘符号。

三、线性回归实例-代码实现-用sklearn

在实际中,我们往往都不是自己用公式去求解模型的参数,因为有些模型求解太复杂啦,所以一般都是使用python的机器学习包sklearn来求解模型。下面我们调用sklearn来实现一个线性回归模型,代码如下:

"""
本代码用于展示,如何用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("模型参数:",reg.coef_)                             # 打印系数
print("模型阈值:",reg.intercept_)                        # 打印阈值

# 模型预测
test_x = np.array([[2,2]])                                # 要预测的x
test_y = reg.predict(test_x)                              # 用模型进行预测
print(test_x,'的预测结果:',test_y)                        # 打印预测结果

代码运行结果如下:

sklearn线性回归的模型结果

结果是一样的,结果我们就不多说啦,下面来解说一下代码。

3.2. 代码解说

第5行是从sklearn中导入线性回归模型,因为我们下面需要使用它。

代码片段1

第7、8行是导入数据,没什么好说的。

代码片段2

第9行是初始化一个线性回归模型,然后第10行是用我们的数据训练它.

代码片段3

第11、12行是查看训练后模型的系数和阈值。

代码片段4

第15-17行是用训练好的模型对新样本进行预测。

代码片段5

第15行是我们要预测的x,第16行是用模型对x是进行预测,打17行是打印预测结果。

总结

线性回归是一个简单的模型,自己实现时,直接用公式计算一下就得到结果了,但也可以使用sklearn来实现,sklearn是一个机器学习中常用的包,它提供了许多的模型,直接调用它就可以了。



图标 评论
添加评论