授课语音

单因子线性回归实战

单因子线性回归是回归分析的一种简单形式,它仅使用一个自变量(特征)来预测目标变量。目标是通过一个线性方程来描述自变量和因变量之间的关系,进而做出预测。

在本实战中,我们将使用一个简单的示例数据集,其中只有一个特征来预测目标变量。

问题定义

假设我们有一个数据集,其中包含房屋面积(Size)和对应的房价(Price)。我们的目标是建立一个单因子线性回归模型,根据房屋面积来预测房价。


1. 数据集准备

我们创建一个包含房屋面积和房价的数据集。数据集如下:

Size (m²) Price (万元)
50 30
80 50
120 70
150 90
200 120

在这个数据集中,Size 是我们的自变量,Price 是我们要预测的目标变量。


2. 模型构建

2.1 模型公式

单因子线性回归的目标是找到一个合适的回归线,公式为:

Price = β0 + β1 * Size

其中:

  • Price 是目标变量,表示房价。
  • Size 是自变量,表示房屋的面积。
  • β0 是截距项,表示当面积为0时的房价(即回归线与Y轴的交点)。
  • β1 是回归系数,表示房屋面积对房价的影响程度。

3. Python代码实现

3.1 导入必要的库

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

3.2 创建数据集

# 创建数据
data = {
    'Size': [50, 80, 120, 150, 200],  # 房屋面积
    'Price': [30, 50, 70, 90, 120]    # 房屋价格
}

df = pd.DataFrame(data)

3.3 数据分割

在单因子线性回归中,通常我们只使用一个自变量(Size)来预测目标变量(Price)。首先,我们将数据分割为特征和目标变量。

X = df[['Size']]  # 选择房屋面积作为特征
y = df['Price']   # 选择房屋价格作为目标变量

3.4 创建训练集和测试集

为了评估模型效果,我们将数据分为训练集和测试集。通常,训练集占70%~80%,测试集占20%~30%。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

3.5 训练线性回归模型

使用scikit-learn中的LinearRegression模型进行训练。

# 创建模型
model = LinearRegression()

# 训练模型
model.fit(X_train, y_train)

3.6 查看模型参数

我们可以查看回归系数和截距,了解回归模型的具体参数。

# 打印回归系数和截距
print(f"回归系数 (β1): {model.coef_}")
print(f"截距项 (β0): {model.intercept_}")

3.7 预测与评估

使用测试集数据对模型进行预测,然后计算模型的性能。我们使用均方误差(MSE)和R²(决定系数)来评估模型。

# 用测试集进行预测
y_pred = model.predict(X_test)

# 计算均方误差(MSE)
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_test, y_pred)
print(f"均方误差 (MSE): {mse}")

# 打印R²值
r2 = model.score(X_test, y_test)
print(f"R²值: {r2}")

3.8 可视化

将训练集的房价与预测房价绘制在一起,查看回归线的效果。

# 绘制训练集和回归线
plt.scatter(X_train, y_train, color='blue', label='训练数据')
plt.plot(X_train, model.predict(X_train), color='red', label='回归线')

# 设置标题和标签
plt.title('单因子线性回归:房屋面积 vs 房价')
plt.xlabel('房屋面积 (m²)')
plt.ylabel('房价 (万元)')
plt.legend()

# 显示图形
plt.show()

4. 结果分析

  1. 回归系数和截距

    • β1(回归系数)表示房屋面积对房价的影响。假设结果为 β1 = 0.5,这意味着每增加1平方米的面积,房价增加0.5万元。
    • β0(截距项)表示当房屋面积为0时的预测价格,假设为 β0 = 20,意味着面积为0的房屋预测价格为20万元。
  2. 均方误差(MSE):均方误差越小,表示模型的预测能力越强。如果MSE值较大,说明预测结果与实际数据差距较大。

  3. R²值:R²值越接近1,表示模型对数据的拟合越好。如果R²值为0,表示模型没有任何预测能力。

  4. 可视化:通过绘制回归线,我们可以直观地看到房价与房屋面积之间的关系。理想情况下,数据点应尽可能接近回归线,表示模型的拟合效果好。


5. 总结

通过本案例,我们使用了单因子线性回归模型,成功地建立了一个房屋面积与房价之间的预测关系。模型的训练过程包括数据的准备、模型的训练、参数的提取、评估和可视化等步骤。通过回归系数和截距的解释,我们能够理解房屋面积对房价的影响,并利用该模型对新的数据进行预测。

实际应用中,单因子线性回归常常被用于解决简单的预测问题。但在复杂的实际场景中,我们通常会使用多因子线性回归(多元回归)来考虑多个特征对目标变量的影响。

去1:1私密咨询

系列课程: