什么是线性回归?

线性回归是最基础的机器学习算法之一。它的目标是找到一条最佳直线(或超平面),用来描述因变量和自变量之间的关系。

例如:根据房屋面积预测房价、根据学习时间预测考试成绩等。

核心直觉:想象你在散点图中画一条线,让所有点到这条线的距离总和最小。

🎯 适用场景

  • 数据呈线性关系:自变量和因变量之间大致呈直线关系
  • 需要可解释性:想了解每个特征对结果的影响程度
  • 快速基线模型:作为复杂模型的基准对比
  • 特征数量适中:特征数不超过样本数太多
  • 预测连续值:房价、销量、温度等数值预测

📜 历史渊源

问题背景:19世纪初,天文学家面临一个棘手的问题——如何从少量带噪声的观测数据中精确预测小行星的轨道?每次观测都有误差,直接连线根本不靠谱。

关键突破:1805年,法国数学家勒让德(Legendre)发表了最小二乘法:找一条线,使所有观测点到这条线的距离平方和最小。四年后,高斯(Gauss)声称自己早在1795年就用过这个方法,并给出了更严格的概率论证明——两人为此争论了数十年。

深远影响:最小二乘法成为了整个统计学和机器学习的基石。从天文学到经济学,从工程到医学,几乎所有"从数据中学习"的方法都可以追溯到这个200多年前的想法。

趣闻:高斯用最小二乘法仅凭几个观测点就成功预测了小行星谷神星(Ceres)的轨道,让天文学家在它消失数月后重新找到了它——这大概是人类历史上最早的"机器学习预测"。

🔗 发展脉络

1805
线性回归
最基础
只能拟合直线
→
1815
多项式回归
曲线拟合
容易过拟合
→
1970
Ridge
L2正则化
需要特征选择
→
1996
Lasso
L1正则化
复杂非线性
→
1986
神经网络
万能拟合

⚠️ 局限性

  • 只能拟合线性关系:如果数据是曲线,线性回归效果很差
  • 对异常值敏感:一个极端的离群点可以显著影响回归线
  • 假设特征独立:多重共线性会导致参数估计不稳定
  • 容易过拟合:当特征很多而样本很少时
  • 外推不可靠:超出训练数据范围的预测往往不准

💡 这些局限催生了:多项式回归(非线性)、Ridge/Lasso(正则化)、鲁棒回归(抗异常值)

🏢 工业界地位

广泛使用

尽管已有200多年历史,线性回归在工业界仍然是最常用的算法之一:

  • 金融风控:信用评分、违约预测(作为基线模型)
  • 电商:销量预测、价格敏感度分析
  • 广告:点击率预估的基础模型
  • 因果推断:A/B测试分析、政策效果评估

🎯 为什么还在用?简单、快速、可解释性强。在很多场景下,复杂模型的性能提升并不显著,而线性回归的透明度和可维护性更有价值。

交互式可视化

拖动滑块调整参数,观察拟合线如何变化

1.0
0.0
0.5
30
试一试:
  • 拖动「斜率」和「截距」滑块,观察回归线如何变化——能否手动找到最佳拟合?
  • 增大「噪声」,观察数据变散后 R² 值下降——噪声越大,线性关系越弱
  • 改变「样本数」,体会样本越多、拟合越稳定的道理

当前状态:

拟合方程:

MSE (均方误差):

💡 提示:尝试调整斜率和截距,观察MSE变化。MSE越小,拟合越好!

数学原理

直觉引入:给你一堆散点,画一条"最贴近"的直线——怎么定义"最贴近"?最自然的想法:让每个点到直线的垂直距离尽量小。平方是为了避免正负抵消,求平均是为了公平对待每个点。

模型:

$$\hat{y} = wx + b$$

损失函数(均方误差 MSE):

$$J(w, b) = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2$$

为什么用平方?① 消除正负抵消 ② 对大误差惩罚更重 ③ 处处可导,方便优化。

闭式解(直接算出最优解):

$$w = \frac{\sum(x_i - \bar{x})(y_i - \bar{y})}{\sum(x_i - \bar{x})^2}, \quad b = \bar{y} - w\bar{x}$$

梯度下降(迭代求解):

当特征很多时,闭式解需要求逆矩阵($O(d^3)$),不如迭代更新:

$$w \leftarrow w - \eta \frac{\partial J}{\partial w} = w - \eta \cdot \frac{2}{n}\sum_{i=1}^{n}(wx_i + b - y_i) \cdot x_i$$

$\eta$ 是学习率——太大会震荡,太小收敛慢。

多元情况(矩阵形式):
模型:$\hat{y} = X\mathbf{w}$,闭式解:$\mathbf{w} = (X^TX)^{-1}X^T\mathbf{y}$
这就是著名的正规方程(Normal Equation)。