【机器学习笔记Ⅰ】2 线性回归模型

发布于:2025-07-12 ⋅ 阅读:(46) ⋅ 点赞:(0)

线性回归(Linear Regression)是机器学习中最基础、最常用的监督学习模型之一,用于解决回归问题(预测连续数值输出)。它的核心思想是通过拟合一条直线(或超平面)来描述输入特征(自变量)与目标变量(因变量)之间的线性关系。

核心概念

  1. 模型形式

    • 简单线性回归(单特征):
      [
      y = w_1 x + b
      ]

      • ( y ):预测值(目标变量)。
      • ( x ):输入特征。
      • ( w_1 ):权重(斜率),表示特征的重要性。
      • ( b ):偏置(截距),表示基线值。
    • 多元线性回归(多特征):
      [
      y = w_1 x_1 + w_2 x_2 + \dots + w_n x_n + b
      ]

      • ( x_1, x_2, \dots, x_n ):多个特征。
      • ( w_1, w_2, \dots, w_n ):每个特征的权重。
  2. 目标
    找到最优的权重 ( w ) 和偏置 ( b ),使得预测值 ( y ) 与真实值 ( y_{\text{true}} ) 的误差最小。


如何训练?

  1. 损失函数(Loss Function)
    衡量预测值与真实值的差距,常用均方误差(MSE)
    [
    \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_{\text{true}}^{(i)} - y{(i)})2
    ]

    • ( N ):样本数量。
    • 目标是最小化MSE。
  2. 优化方法

    • 最小二乘法:通过数学推导直接求解最优解(适用于小规模数据)。
    • 梯度下降(Gradient Descent):迭代调整参数,逐步降低损失(适用于大规模数据)。

代码示例(Python)

from sklearn.linear_model import LinearRegression
import numpy as np

# 示例数据:X是特征,y是目标值
X = np.array([[1], [2], [3], [4]])  # 单特征
y = np.array([2, 4, 6, 8])          # y = 2x

# 创建模型并训练
model = LinearRegression()
model.fit(X, y)

# 预测
print(model.predict([[5]]))  # 输出: [10.] (符合 y=2x)
print("权重 w:", model.coef_)   # 输出: [2.]
print("截距 b:", model.intercept_)  # 输出: 0.0

特点

  • 优点
    • 简单、易解释(权重直接表示特征影响)。
    • 计算效率高,适合小规模数据。
  • 缺点
    • 假设数据是线性的,对复杂关系拟合不足。
    • 对异常值和噪声敏感。

应用场景

  • 房价预测(特征:面积、地段 → 目标:房价)。
  • 销售额预测(特征:广告投入、季节 → 目标:销量)。
  • 任何需要量化特征与目标之间线性关系的场景。

注意事项

  1. 数据预处理
    • 特征需归一化(尤其梯度下降时)。
    • 处理多重共线性(特征间高度相关)。
  2. 模型评估
    • 使用R²分数、MSE等指标衡量性能。
  3. 非线性扩展
    • 可通过多项式回归(如 ( y = w_1 x + w_2 x^2 ))拟合非线性关系。

网站公告

今日签到

点亮在社区的每一天
去签到