首页
/ 100天机器学习实战:简单线性回归原理与实现详解

100天机器学习实战:简单线性回归原理与实现详解

2025-07-05 01:48:36作者:范垣楠Rhoda

线性回归基础概念

简单线性回归是机器学习中最基础也最重要的算法之一,它通过建立自变量(X)和因变量(Y)之间的线性关系来进行预测。其数学表达式为:

Y = aX + b

其中:

  • Y 是因变量(预测目标)
  • X 是自变量(特征)
  • a 是斜率(回归系数)
  • b 是截距

数据预处理步骤

在开始建模前,我们需要对数据进行预处理:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取数据集
dataset = pd.read_csv('studentscores.csv')

# 提取特征和标签
X = dataset.iloc[:, :1].values  # 第一列作为特征
Y = dataset.iloc[:, 1].values   # 第二列作为标签

# 划分训练集和测试集
from sklearn.model_selection import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(
    X, Y, 
    test_size=0.25,  # 25%数据作为测试集
    random_state=0   # 随机种子保证可重复性
)

关键点解析:

  1. 使用pandas读取CSV数据文件
  2. iloc方法用于按位置选择数据
  3. train_test_split是划分数据集的标准方法
  4. test_size=0.25表示保留25%数据作为测试集

模型训练过程

from sklearn.linear_model import LinearRegression

# 创建线性回归模型实例
regressor = LinearRegression()

# 在训练数据上拟合模型
regressor.fit(X_train, Y_train)

模型训练原理:

  1. 最小二乘法:寻找使残差平方和最小的参数
  2. 模型会计算最优的斜率和截距
  3. fit方法完成参数估计过程

模型预测与评估

# 在测试集上进行预测
Y_pred = regressor.predict(X_test)

预测结果可以用于:

  1. 计算各种评估指标(如MSE、R²等)
  2. 与实际值比较分析模型性能
  3. 发现可能的异常值或模型不足

结果可视化分析

训练集可视化

plt.scatter(X_train, Y_train, color='red')  # 绘制实际数据点
plt.plot(X_train, regressor.predict(X_train), color='blue')  # 绘制回归线
plt.title('训练集结果可视化')
plt.xlabel('自变量')
plt.ylabel('因变量')
plt.show()

测试集可视化

plt.scatter(X_test, Y_test, color='red')  # 测试集实际值
plt.plot(X_test, Y_pred, color='blue')   # 测试集预测值
plt.title('测试集结果可视化')
plt.xlabel('自变量')
plt.ylabel('因变量')
plt.show()

可视化分析要点:

  1. 红点表示实际观测值
  2. 蓝线表示模型预测的回归线
  3. 点与线的距离反映了预测误差
  4. 比较训练集和测试集表现可判断模型泛化能力

实际应用建议

  1. 特征工程:尝试对特征进行变换(如对数变换)可能改善线性关系
  2. 模型诊断:检查残差是否随机分布,验证线性假设
  3. 扩展应用:了解多元线性回归处理多个特征的情况
  4. 正则化:当特征较多时,考虑岭回归或Lasso回归

通过这个简单但完整的示例,我们实践了机器学习项目的标准流程:数据准备→模型训练→预测评估→结果可视化。这是掌握更复杂模型的重要基础。