Skip to content

线性回归 (Linear Regression)


一句话定义:线性回归是一种监督学习算法,通过拟合一条直线(或超平面),来预测连续数值输出。

就像用尺子在散点图上画一条”最佳拟合线”,让所有点到这条线的距离之和最小。


动手调整 权重 w偏置 b,观察拟合线如何变化。点击”训练”让模型自动找到最优参数!

📈线性回归可视化

02460102030当前拟合最优解

模型参数

权重 w0.50
偏置 b1.00
ŷ = 0.50x + 1.00

损失指标

MSE25.05
-1.149
📐 数学原理
模型:$\hat{y} = wx + b$
损失:$MSE = \frac{1}{n} \sum(y_i - \hat{y}_i)^2$
目标:找到使 MSE 最小的 $w$ 和 $b$

你想预测房价,发现房价和面积有关系:

  • 50㎡ → 100万
  • 100㎡ → 200万
  • 150㎡ → 300万

你发现规律:房价 ≈ 2万 × 面积

这就是线性回归!找到 y = wx + b 中的 w(斜率)和 b(截距)。


y^=wx+b\hat{y} = w \cdot x + b
  • y^\hat{y}:预测值
  • ww:权重(斜率)
  • xx:输入特征
  • bb:偏置(截距)

当有多个特征时:

y^=w1x1+w2x2++wnxn+b=wTx+b\hat{y} = w_1 x_1 + w_2 x_2 + \cdots + w_n x_n + b = \mathbf{w}^T \mathbf{x} + b L=1ni=1n(yiy^i)2\mathcal{L} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

目标:找到使 MSE 最小的 wwbb


import numpy as np
# 数据
X = np.array([50, 100, 150, 200]) # 面积
y = np.array([100, 200, 300, 400]) # 房价(万)
# 手动实现
X_mean, y_mean = X.mean(), y.mean()
w = np.sum((X - X_mean) * (y - y_mean)) / np.sum((X - X_mean) ** 2)
b = y_mean - w * X_mean
print(f"y = {w:.2f}x + {b:.2f}") # y = 2.00x + 0.00
# 预测
new_area = 120
predicted_price = w * new_area + b
print(f"120㎡ 预测价格: {predicted_price:.0f}万")

线性回归是神经网络的基础单元

线性回归神经网络
y=wx+by = wx + b单层感知机(无激活函数)
梯度下降求解反向传播更新参数
MSE 损失回归任务常用损失

一个没有激活函数的单层神经网络,本质上就是线性回归。


  1. 只能拟合线性关系 - 数据呈曲线时效果差
  2. 对异常值敏感 - 一个极端点可能严重影响拟合线
  3. 假设特征独立 - 特征间有强相关时需要正则化