人智导(九):回归方法的精化
标准回归的不足
- 标准的回归公式: f ( X ) = β 0 + β 1 X 1 + β 2 X 2 + ⋯ + β p X p f(X) = \beta_0 +\beta_1X_1 +\beta_2X_2+\dots +\beta_pX_p f(X)=β0+β1X1+β2X2+⋯+βpXp
- 观测变量(特征)越多,方差越大
- 需要训练数据量n>>p才能获得较低方差
- 回归模型的精度和解释性能改进:低方差(泛化)、低偏差(准确)
- 不太相关的观测变量会导致模型的复杂性
- 改进思路:选择关键的观测变量(特征)
特征(子集)选择
- 特征(子集)选择:从p个观测变量中 ( X 1 , X 2 , … , X p ) (X_1,X_2,\dots ,X_p) (X1,X2,…,Xp)选择出与 Y Y Y较相关的子集,通过这个子集实现回归模型
- 最佳子集选择算法:
- 对于
k
=
1
,
2
,
…
,
p
k=1,2,\dots ,p
k=1,2,…,p:
- 构建出所有的 C p k C^k_p Cpk个回归模型
- 筛选出 C p k C^k_p Cpk组合中均方误差RSS最小的模型 M k M_k Mk
- 从得到的 M 1 , M 2 , … , M p M_1,M_2,\dots ,M_p M1,M2,…,Mp模型中通过交叉验证再宣传预测均方误差最小的模型,所对应的即为最佳子集。
- 对于
k
=
1
,
2
,
…
,
p
k=1,2,\dots ,p
k=1,2,…,p:
- 特点:简单而低效,需要从 2 p 2^p 2p中搜索出一个最佳,不适合处理 p p p很大的情况
- 前向选择回归算法:
- 对于
k
=
0
,
1
,
2
,
…
,
p
−
1
k=0,1,2,\dots ,p-1
k=0,1,2,…,p−1:
- 构建所有的p-k个回归模型,通过逐次累加一个相应变量的方式
- 在这p-k个模型中筛选出均方误差RSS最小的模型 M k + 1 M_{k+1} Mk+1
- 从得到的 M 1 , M 2 , … , M p M_1,M_2,\dots ,M_p M1,M2,…,Mp模型中通过交叉验证再选出预测均方误差最小的模型,即为目标子集
- 对于
k
=
0
,
1
,
2
,
…
,
p
−
1
k=0,1,2,\dots ,p-1
k=0,1,2,…,p−1:
- 特点:仅需从 p ( p + 1 ) 2 \frac{p(p+1)}{2} 2p(p+1)个模型空间中搜索出目标子集,但不能保证得到的子集是最佳的(模型RSS最小)
示例:
- 数据集有三个观测变量 X 1 , X 2 , X 3 X_1,X_2,X_3 X1,X2,X3(p=3)
- 最佳的1-变量模型包含 X 1 X_1 X1;最佳的2-变量模型包含 X 2 X_2 X2和 X 3 X_3 X3
- 前向选择算法不能找出最佳的2-变量模型,因其不包括最佳的1-变量模型
子集选择是优化模型的过程: - 选择所有的观测变量,总是有最小RSS(偏差)但方差最大
- 减少观测变量(子集选择),提升模型泛化能力(test MSE)
- 方差大则过拟合,偏差大则欠拟合(准确性差)
正则化方法
- 回归公式: f ( X ) = β 0 + β 1 X 1 + β 2 X 2 + ⋯ + β p X p f(X) = \beta_0+\beta_1X_1+\beta_2X_2+\dots +\beta_pX_p f(X)=β0+β1X1+β2X2+⋯+βpXp 估算系数 β 0 , β 1 , … , β p \beta_0,\beta_1,\dots ,\beta_p β0,β1,…,βp通过最小化RSS: R S S = Σ i = 1 n ( y i − β 0 − Σ j = 1 p β j X i j ) 2 RSS = \Sigma^n_{i=1}(y_i -\beta_0-\Sigma^p_{j=1}\beta_jX_{ij})^2 RSS=Σi=1n(yi−β0−Σj=1pβjXij)2
- 正则化方法:
- 使用所有的 p p p个观测变量,约束变量的系数 β 0 , β 1 , … , β p \beta_0, \beta_1 ,\dots ,\beta_p β0,β1,…,βp使RSS取值尽可能趋于零
- 回归系数的取值限定在一个小范围内,将有效降低模型的方差
岭回归(Ridge Regression)方法
岭回归方法:
- 类似于最小二乘法,但隙数的估算 β ^ R \hat{\beta}^R β^R通过最小化公式: Σ i = 1 n ( y i − β 0 − Σ j = 1 p β j X i j ) 2 + λ Σ j = 1 p β j 2 = R S S + λ Σ j = 1 p β j 2 \Sigma^n_{i=1}(y_i-\beta_0-\Sigma^p_{j=1}\beta_jX_{ij})^2 ~+~\lambda\Sigma^p_{j=1}\beta^2_j = \\RSS~+~\lambda\Sigma^p_{j=1}\beta^2_j Σi=1n(yi−β0−Σj=1pβjXij)2 + λΣj=1pβj2=RSS + λΣj=1pβj2
- 其中
λ
≥
0
\lambda \ge 0
λ≥0为调试参数(超参数):
- 当 λ = 0 \lambda = 0 λ=0,约束不起作用,如同标准的线性回归
- 当 λ → ∞ \lambda \to \infty λ→∞,约束影响越大,系数 β ^ R \hat{\beta}^R β^R尽可能小
岭回归系数的正则化(标准化):
- L 2 L_2 L2范数: ∥ β ∥ 2 = Σ j = 1 p β j 2 \Vert \beta\Vert _2 = \sqrt{\Sigma^p_{j=1}\beta^2_j} ∥β∥2=Σj=1pβj2
- 当 λ \lambda λ增加, L 2 L_2 L2降低,如图
- 一般地,所有变量需被标准化: x ~ i j = x i j 1 n Σ i = 1 n ( x i j − x ˉ j ) 2 \tilde{x}_{ij} = \frac{x_{ij}}{\sqrt{\frac{1}{n}\Sigma^n_{i=1}(x_{ij}-\bar{x}_j)^2}} x~ij=n1Σi=1n(xij−xˉj)2xij
- 岭回归方法:是一种平衡“方差-偏差”技术
- 交叉验证test MSE选择最优的 λ \lambda λ
- λ \lambda λ的增加,导致方差降低而偏差上升
- 如下图,绿线为方差,黑线为偏差,红线为岭回归的test MSE
Lasso回归算法
Lasso回归算法:
- 类似于最小二乘法,但系数的估算 β ^ L \hat{\beta}^L β^L通过最小化公式: Σ i = 1 n ( y i − β 0 − Σ j = 1 p β j x i j ) 2 + λ Σ j = 1 p ∣ β j ∣ = R S S + λ Σ j = 1 p ∣ β j ∣ \Sigma^n_{i=1}(y_i-\beta_0-\Sigma^p_{j=1}\beta_jx_{ij})^2~+~\lambda\Sigma^p_{j=1}|\beta_j|\\=RSS~+~\lambda\Sigma^p_{j=1}|\beta_j| Σi=1n(yi−β0−Σj=1pβjxij)2 + λΣj=1p∣βj∣=RSS + λΣj=1p∣βj∣
- 其中
λ
≥
0
\lambda \ge 0
λ≥0为调试参数:
- 当 λ = 0 \lambda = 0 λ=0,约束不起作用,如同标准的线性回归
- 当
λ
→
∞
\lambda \to \infty
λ→∞,约束影响越大,系数
β
^
L
\hat{\beta}^L
β^L将尽可能小
Lasso系数的正则化(标准化):
- L 1 L_1 L1范数: ∥ β ∥ 1 = Σ j = 1 p ∣ β j ∣ \Vert\beta\Vert_1 = \Sigma^p_{j=1}|\beta_j| ∥β∥1=Σj=1p∣βj∣
- 当
λ
\lambda
λ增加,
L
1
L_1
L1降低;
λ
\lambda
λ增加足够大,
L
1
L_1
L1会使某些变量系数为0