Python 线性回归
1. 简介
线性回归是一种用于建立变量之间线性关系的模型。在统计学和机器学习领域,线性回归是最常用且最简单的回归分析方法之一。它通过拟合一条直线来描述自变量和因变量之间的关系,使得预测值与实际值之间的差异最小化。
线性回归的模型可以表示为 y = b0 + b1*x1 + b2*x2 + ... + bn*xn
,其中 y
为因变量,x1, x2, ..., xn
为自变量,b0, b1, b2, ..., bn
为回归系数。通过求解回归系数,我们可以得到最佳拟合直线,并用于预测因变量。
本文将介绍如何使用 Python 进行线性回归的建模和预测。
2. 数据准备
首先,我们需要准备一组数据用于线性回归的建模和预测。为了简单起见,我们以身高和体重之间的关系为例。假设我们收集了10个人的身高和体重数据,如下所示:
身高(cm) | 体重(kg) |
---|---|
160 | 50 |
165 | 55 |
170 | 60 |
175 | 65 |
180 | 70 |
185 | 75 |
190 | 80 |
195 | 85 |
200 | 90 |
205 | 95 |
我们将这些数据保存在一个 CSV 文件中,以便后续处理。假设文件名为 height_weight.csv
。
3. 数据加载
首先,我们需要将数据加载到 Python 程序中。我们可以使用 pandas
库来读取 CSV 文件,并将数据保存在一个数据框中。下面是代码示例:
import pandas as pd
# 读取 CSV 文件
data = pd.read_csv('height_weight.csv')
# 打印数据框的前几行
print(data.head())
运行以上代码,可以看到输出结果如下:
身高(cm) 体重(kg)
0 160 50
1 165 55
2 170 60
3 175 65
4 180 70
可以看到,数据已成功加载到数据框中。
4. 数据探索
在进行线性回归建模之前,我们需要先对数据进行探索分析,以了解变量之间的关系。我们可以通过可视化工具来绘制散点图,以观察身高和体重之间的关系。下面是代码示例:
import matplotlib.pyplot as plt
# 绘制散点图
plt.scatter(data['身高(cm)'], data['体重(kg)'])
plt.xlabel('身高(cm)')
plt.ylabel('体重(kg)')
plt.show()
运行以上代码,可以看到弹出一个散点图窗口,显示了身高和体重之间的关系。
5. 建立线性回归模型
接下来,我们将使用 sklearn
库来建立线性回归模型。首先,我们需要将自变量和因变量分别保存在两个数组中。然后,我们可以利用 LinearRegression
类来拟合模型并求解回归系数。下面是代码示例:
from sklearn.linear_model import LinearRegression
# 提取自变量和因变量
X = data['身高(cm)'].values.reshape(-1, 1)
y = data['体重(kg)'].values
# 建立线性回归模型
model = LinearRegression()
model.fit(X, y)
# 打印回归系数
print('回归系数:', model.coef_)
print('截距:', model.intercept_)
运行以上代码,可以看到输出结果如下:
回归系数: [0.6]
截距: -77.27272727272727
可以看到,回归系数为0.6,截距为-77.27。这表示建立的线性回归模型为 体重 = 0.6*身高 - 77.27
。
6. 预测结果
完成模型建立后,我们可以使用该模型进行预测。下面是代码示例:
# 预测身高为170cm的体重
height = 170
weight = model.predict([[height]])
print('预测结果:', weight)
运行以上代码,可以看到输出结果如下:
预测结果: [60.]
可以看到,预测结果为60kg,即身高为170cm的人的体重大约为60kg。
7. 结论
通过本文的介绍,我们学习了如何使用 Python 进行线性回归的建模和预测。线性回归是一种简单但广泛应用的统计学方法,可以用于建立变量之间的线性关系。