1、概念
1.1 什么是回归分析
回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用 于预测分析,时间序列模型以及发现变量之间的因果关系。通常使用曲线/线来拟合数据点,目标是使曲线到数据点的距离差异最小。
1.2 线性回归
线性回归是回归问题中的一种,线性回归假设目标值与特征之间线性相关,即满足一个多元一次方程。通过构建损失函数,来求解损失函数最小时的参数w和b。通长我们可以表达成如下公式:
y^为预测值,自变量x和因变量y是已知的,而我们想实现的是预测新增一个x,其对应的y是多少。因此,为了构建这个函数关系,目标是通过已知数据点,求解线性模型中w和b两个参数。
2、一元线性回归
一元线性回归模型又称为简单线性回归模型,其形式可以表示为如下所示的公式
y = ax+b
2.1 一元线性回归的代码实现
- 绘制散点
首先利用之前学过的Matplotlib库绘制几个散点import matplotlib.pyplot as plt x = [[1],[2],[4],[5]] y = [2,4,6,8] plt.scatter(x,y) plt.show()
需要注意的是,这里的自变量集合要写成二维结构形式,即大列表里包含小列表。这一点其实是符合之后要学习的多元回归的逻辑的,因为在多元回归中,一个因变量Y可能对应多个自变量X。
- 引入Scikit-Learn库搭建模型
from sklearn.linear_model import LinearRegression
regr = LinearRegression()
regr.fit(x,y)
第1行代码从Scikit-Learn库引入线性回归的相关模块LinearRegression;第2行代码构造一个初始的线性回归模型并命名为regr;第3行代码用fit()函数完成模型搭建,此时的regr就是一个搭建好的线性回归模型。
- 模型预测
y = regr.predict([[1.5]])
y
如果想同时预测多个自变量,则可以使用如下代码。
y = regr.predict([[1.5],[2.5],[4.5]])
y
输出如下:
- 模型可视化
还可以将搭建好的模型以可视化的形式展示出来,代码如下。
x = [[1],[2],[4],[5]]
y = [2,4,6,8]
plt.scatter(x,y)
plt.plot(x,regr.predict(x))
plt.show()
- 线性回归方程构造 通过coef_和intercept_属性可以得到此时趋势线的系数和截距,代码如下。
因此,拟合得到的一元线性回归方程为y=1.4x+0.8。