跳到主要内容

普通最小二乘与正则化

给定设计矩阵 XX、目标向量 yy 和系数向量 ww,普通最小二乘法(OLS)旨在求解:

w^=argminwXwy22.\hat{w}=\arg\min_w\|Xw-y\|_2^2.

通过伪逆可以得到最小二乘解:w^=X+y\hat{w}=X^{+}y。然而,当 XX 的列接近线性相关时,数据的微小扰动可能导致系数发生剧烈变化。此时,虽然整体预测误差可能仍在可接受范围内,但单个系数的估计值会变得极不稳定。

从残差到解

XXnn 行观测、pp 列系数,yRny\in\mathbb{R}^nwRpw\in\mathbb{R}^p。若拟合截距,就加入一列全为 1 的特征。对于直线 y^i=b+axi\hat y_i=b+ax_i,残差 ri=yiy^ir_i=y_i-\hat y_i沿目标轴的竖直差值,单位与目标相同,并非点到直线的最短距离。在未缩放的笛卡尔坐标中,垂直于直线的距离是 ri/1+a2|r_i|/\sqrt{1+a^2};最小化这种距离允许 xx 方向也发生移动,解决的是另一个问题。

改用 J(w)=Xwy22/(2n)J(w)=\|Xw-y\|_2^2/(2n) 不会改变 OLS 的最优解,且有

J(w)=1nX(Xwy),2J(w)=1nXX.\nabla J(w)=\frac{1}{n}X^\top(Xw-y),\qquad \nabla^2J(w)=\frac{1}{n}X^\top X.

Hessian 为半正定矩阵,因此梯度为零处就是全局最小值。令梯度为零,得到正规方程:

XXw^=Xy.X^\top X\hat w=X^\top y.

rank(X)=p\operatorname{rank}(X)=p(因而 npn\geq p)时,解唯一,等于 (XX)1Xy(X^\top X)^{-1}X^\top y。否则,给系数加上 XX 零空间中的任意向量,都不改变拟合值,系数便不唯一。Moore–Penrose 伪逆选择欧氏范数最小的系数向量;训练数据上的拟合值仍然唯一。例如,两列完全相同时,只能确定对应系数之和。若新输入不再满足这种列关系,不同解的预测就可能不同。

实际求解宜用 QR 或 SVD 最小二乘求解器,不要显式求逆;对于列满秩的 XX,构造 XXX^\top X 会使谱条件数变为原来的平方。scikit-learn 线性模型指南介绍了 OLS 及其 SVD 求解方法。

手算三个观测

(x,y)=(0,1),(1,2),(2,2)(x,y)=(0,1),(1,2),(2,2)。截距列与 xx 列线性无关。由 xˉ=1\bar x=1yˉ=5/3\bar y=5/3

a=i(xixˉ)(yiyˉ)i(xixˉ)2=12,b=yˉaxˉ=76.a=\frac{\sum_i(x_i-\bar x)(y_i-\bar y)}{\sum_i(x_i-\bar x)^2} =\frac{1}{2},\qquad b=\bar y-a\bar x=\frac{7}{6}.

预测值为 (7/6,10/6,13/6)(7/6,10/6,13/6),残差为 (1/6,1/3,1/6)(-1/6,1/3,-1/6),残差平方和为 1/61/6iri=0\sum_i r_i=0ixiri=0\sum_i x_i r_i=0 都成立,可用来核对正规方程。训练均值基线恒预测 5/35/3,残差平方和为 2/32/3。这里只比较了训练误差,尚不能说明泛化能力。

from math import isclose
from statistics import mean

x, y = [0, 1, 2], [1, 2, 2]
xbar, ybar = mean(x), mean(y)
sxx = sum((v - xbar) ** 2 for v in x)
if sxx == 0:
raise ValueError("A constant x cannot identify slope and intercept separately")
a = sum((u - xbar) * (v - ybar) for u, v in zip(x, y)) / sxx
b = ybar - a * xbar
r = [v - (b + a * u) for u, v in zip(x, y)]
assert isclose(a, 0.5) and isclose(b, 7 / 6)
assert isclose(sum(v * v for v in r), 1 / 6)
assert isclose(sum(r), 0, abs_tol=1e-12)
assert isclose(sum(u * v for u, v in zip(x, r)), 0, abs_tol=1e-12)

拟合与统计推断

计算最小值不需要高斯假设。进行统计分析时,statsmodels 回归文档明确区分了误差协方差模型;选择不确定性公式需要这层额外假设。若条件均值模型 y=Xβ+εy=X\beta+\varepsilon 正确,E[εX]=0\mathbb{E}[\varepsilon\mid X]=0,且 XX 列满秩,则 OLS 在给定 XX 时无偏。若进一步有 Var(εX)=σ2I\operatorname{Var}(\varepsilon\mid X)=\sigma^2 I,则

Var(w^X)=σ2(XX)1.\operatorname{Var}(\hat w\mid X)=\sigma^2(X^\top X)^{-1}.

在这些假设下,若 n>pn>p,残差平方和除以 npn-p 可估计 σ2\sigma^2。再加上条件高斯误差假设,才可使用通常的有限样本精确 t/F 推断。异方差或相关误差需要相应的不确定性估计方法;稳健标准误不能修复错误的条件均值模型或混杂。均值响应的区间也不同于新观测的预测区间,后者还要包含观测噪声。

大残差会主导平方误差;高杠杆观测(特征取值异常的点)也可能显著改变拟合直线。解释系数之前,应检查残差随拟合值和时间的变化,并在留出数据上与基线比较。

带惩罚的目标函数

以下取 λ0\lambda\geq00ρ10\leq\rho\leq1。带惩罚公式中的 X,yX,y 使用训练数据的均值进行中心化,ww 只包含斜率;未受惩罚的截距由 yˉxˉw\bar y-\bar x^\top w 恢复。系数惩罚依赖单位,因此特征缩放也应在训练折内完成。归一化属于定义的一部分:scikit-learn Ridge 使用 Xwy2+αw2\|Xw-y\|^2+\alpha\|w\|^2,所以本页 Ridge 公式对应 α=2nλ\alpha=2n\lambda。其 Lasso 和 Elastic Net 则对应 α=λ\alpha=\lambdal1_ratio 对应 ρ\rho。在相同 λ\lambda 下,Elastic Net 公式取 ρ=0\rho=0 时,岭惩罚强度是下方 Ridge 公式的一半。

岭回归 (Ridge)

w^ridge=argminw12nXwy22+λw22.\hat{w}_{\text{ridge}} = \arg\min_w \frac{1}{2n}\|Xw-y\|_2^2 + \lambda\|w\|_2^2.

岭回归通过 2\ell_2 惩罚项收缩那些高度相关或识别度较低的系数。它通常不会将系数完全置零,而是让所有系数保持非零状态,从而提升数值稳定性。

Lasso

w^lasso=argminw12nXwy22+λw1.\hat{w}_{\text{lasso}} = \arg\min_w \frac{1}{2n}\|Xw-y\|_2^2 + \lambda\|w\|_1.

1\ell_1 惩罚项具有将系数精确压缩至零的特性,从而实现特征选择。需要注意的是,这种稀疏性是拟合目标函数的数学性质,并不直接证明被选中的变量具有唯一的重要性或因果关系。在特征高度相关的场景下,Lasso 最终选中哪一个特征往往是不确定的。

弹性网络 (Elastic Net)

w^EN=argminw12nXwy22+λ[ρw1+1ρ2w22].\hat{w}_{\text{EN}} = \arg\min_w \frac{1}{2n}\|Xw-y\|_2^2 + \lambda\left[ \rho\|w\|_1 + \frac{1-\rho}{2}\|w\|_2^2 \right].

弹性网络结合了稀疏性与岭回归式的稳定作用,在预测变量形成相关组时常有用,但不保证整组选择或整组剔除。

实践准则

  • 数据预处理隔离:仅在训练集上拟合缩放参数和基函数变换;将记录好的变换参数应用于验证集和测试集,防止数据泄露。
  • 截距处理:除非模型定义明确要求,否则不要对截距项施加惩罚。
  • 超参数选择:在训练流程内部,通过验证集或交叉验证来确定 λ\lambdaρ\rho 的最优值。
  • 评估维度:不要仅关注训练损失。应综合比较预测误差、系数稳定性以及模型部署的简洁性。
  • 损失函数选择:如果平方误差无法准确反映业务目标或错误成本(例如存在大量离群点),应考虑使用稳健损失函数或分位数回归目标。
  • 预测与推断分离:预测建模与统计推断是两回事。进行不确定性估计时,必须对数据生成过程做出明确的假设。

多项式特征和交互特征可以将输入关系转化为非线性,同时保持拟合系数在形式上的线性。但需注意,模型依然会继承所选基函数带来的外推风险和过拟合风险。

关于具体的求解器实现和估计器 API,请参考 scikit-learn 线性模型指南

探索关联

先了解 (1)

被引用 (3)

同主题的其他笔记 (1)

打开关联网络