Statistic Learning 6

Linear Model Selection and Regularization

在回归方法中,标准的线性模型如下:

Y=β0+β1x1+...+βpxp+ϵY = \beta_0 + \beta_1x_1 + ... + \beta_px_p + \epsilonY=β0+β1x1+...+βpxp+ϵ

用来描述Response Y和一系列变量x1,x2,...,xpx_1, x_2, ... ,x_px1,x2,...,xp之间的关系。在前文中,我们使用最小二乘来拟合模型,的确线性模型在推理方面有自己的明确方式,在实际应用中也和非线性方法有得一拼。所以,在进入非线性世界之前,我们先讨论一些线性模型改进的方法,使用可选的方法来替代普通最小二乘。为什么要用其他的拟合方式取代最小二乘?正如下文大家将看到的,替代的方案可以产生更好的预测精度和模型的可解释性。

Prediction Accuracy

假设Response和Predictors之间的关系的确是线性的,最小二乘估计的bias(偏差)将会较低。

  • n>>pn >> pn>>p,即样本数量远大于变量个数的时候,最小二乘估计趋向于有较低的方法。因此,在测试样本上会表现较好。
  • nnn仅小幅度大于ppp时,那在最小二乘拟合的过程中将会出现很多变化(相对于大样本来说,小样本变化更多),这会导致过拟合从而使得在测试集上预测效果很差。
  • n<pn < pn<p时,就不存在唯一的最小二乘系数估计(方程个数比未知数还要少,那么未知数的结果应该有多个解,类似于线代中的奇异矩阵?)因此,最小二乘不适合。

针对nnn仅小幅度大于ppp时,可以通过约束方法;针对n<pn < pn<p,而可通过缩小估计稀疏的方法;以上两个方法通常可以在偏差几乎不增加的情况下大幅度减少方差。这可以让模型在测试集上的准确性得到显著的提高。

Model interpretability

  • 通常来说,大部分回归模型中的变量实际上和Response并无太大关联。若包含这些变量,还会增加模型不必要的复杂度。那么,通过消除这些变量,或使得相应的系数估计值为0,我们就可以得到一个更容易解释的模型。但最小二乘很难产生值为0的系数估计,所以在下文中,我们会见到一些Feature Selection(特征选择)和Variable Selection(变量选择)的方法,从而在多元回归的模型中排除不相关的变量。

  • 除最小二乘外,还有很多其他的选择,包括经典的和先进的方法,后文将主要讨论三种重要方法

    • Subset Selection

      该方法首先确定了ppp个Predictors中,与Response最相关的Predictor所构成的子集。我们再用该子集去应用最小二乘法

    • Shrinkage(特征缩减技术)

      该方法使用所有ppp个Predictors来拟合一个模型。然而相对于最小二乘估计,估计系数可缩小到接近于零。该Shrinkage(Regularization)可以达到减少方差的效果,根据不同的Shrinkage方法,有些系数可能恰好为零。因此,Shrinkage方法可以进行变量选择(Variable Selection)。

    • Dimension Reduction

      该方法先将ppp个Predictors投影到M维的子空间上(M < P),再通过计算M个不同的线性组合投影来实现。然后使用该M作为Predictors,用最小二乘法拟合线性回归模型。

在下文中,我们将更详细的描述这些方法,以及它们的优缺点。虽然所举的例子仅用于回归,但同样的概念也会适用于分类。

Subset Selection

Best Subset Selection

  • 为了使用Best Subset Selection,我们需要对ppp个Predictors所有可能的组合,拟合最小二乘回归。比如说:

    • p个只包含一个Predictor的模型
    • 所有(p2)=p(p−1)/2\left(\begin{matrix}p \\ 2\end{matrix}\right) = p(p-1)/2(p2)=p(p1)/2个包含2个Predictors的模型
    • 依此类推…

    最后从上述训练好的模型中挑选出效果最好的那一个

  • 但从通过Best Subset Selection得到的2p2^p2p个模型中,挑选出最佳模型并不简单,这通常分为3个阶段

    • 定义M0M_0M0为空模型(Null Model),M0M_0M0包含0个Predictors。这个模型仅能简单预测每个观测值的样本均值。
    • 对于k=1,2,...,pk = 1,2,...,pk=1,2,...,p
      • 拟合所有(pk)\left(\begin{matrix}p \\ k\end{matrix}\right)(pk)个包含k个Predictors的模型
      • 从这(pk)\left(\begin{matrix}p \\ k\end{matrix}\right)(pk)个模型中选择最好的那个,称之为MkM_kMk。这里最好的定义是有着最小的RSS值,或者最大的R2R^2R2
    • 使用Cross-validate Prediction Error,CpC_pCp,AIC,BIC,或者adjusted R2R^2R2M0,M1,...,MpM_0, M_1, ..., M_pM0,M1,...,Mp中选择最好的那个模型。
  • 在上述过程中,步骤2定义了训练集上每个子集中最好的那个模型,把最优模型的可选个数从2p2^p2p降低为(p+1)(p+1)(p+1)个。所以问题转化为从剩下的(p+1)(p+1)(p+1)个模型中选择最优模型。然而问题在于,随着Predictors个数的增加,RSS指标逐渐下降,同时R2R^2R2指标逐渐上升,这会导致选择最优模型永远是Predictors最多的那一个,不符合我们的目的:排除对Response结果无关的Predictors。

  • 故问题得根源在于评价指标:RSS越低,R2R^2R2越高,都表明模型有着低Train Error,但我们希望选择测试误差较低的模型。(根据前系列文章,Train Error往往低于Test Error,低Train Error并不能保证低Test Error)。所以在步骤3中,需要使用Cross-validate Prediction Error,CpC_pCp,AIC,BIC,或者adjusted R2R^2R2指标选择最优模型。

  • 同样的方法也适用于其他的统计方法,如Logistic Regression。在Logistic Regression的情况下,上述算法的步骤2将不会使用RSS对模型排序,而是使用偏差,一种类似于RSS但作用范围更广的度量方法。偏差是最大对数似然的负两倍;偏差越小,模型越好。

  • 虽然Best Subset Selection很简单且有效果,但对算力要求过高。一般来说,p个Predictors有2p2^p2p种可选模型;当p=10,2p=10242^p = 10242p=1024;当p=20,这简直是一场灾难;当p>40时,再好的计算机也很难保证方法的可行性。为了排除某些选择,有一些称之为“分支界限技术”的方法可排除某些选项。但随着p的增大,这些技术也会出现局限性。故需要有更高效的子集选择方法。

Forward Stepwise Selection

相比于Best Subset Selection, Forward Stepwise Selection的计算效率很高,其考虑的模型个数远小于2p2^p2p个。

  • Forward Stepwise Selection从不包括Predictors的空模型开始,然后逐渐的往模型中加入Predictors,一次加一个,直到所有的Predictors都在模型中。具体来说,每一步中,提升模型拟合能力最大的Predictors被置入模型中,具体算法如下:
    • 定义M0M_0M0为NULL Model,不包含任意一个Predictor
    • 对于k=0,1,...,p−1k=0, 1, ..., p-1k=0,1,...,p1
      • 考虑所有(p−k)(p-k)(pk)个往MkM_kMk中增加一个额外的Predictor的模型
      • (p−k)(p-k)(pk)各模型中选择最好的那个,称之为Mk+1M_{k+1}Mk+1。同样,最好模型的定义为有着最小的RSS或者最高的R2R^2R2
    • M0,M1,...,MpM_0,M_1,...,M_pM0,M1,...,Mp中采用Cross-validate Prediction Error,CpC_pCp,AIC,BIC,或者adjusted R2R^2R2,挑选出最优的那个模型。
  • 相比于Best Subset Selection需要拟合2p2^p2p个模型,Forward Stepwise Selection仅需要拟合一个Null Model,以及第kkk轮中的(p−k)(p-k)(pk)个模型。所以Forward Stepwise Selection需要拟合的模型个数为1+∑k=0p−1(p−k)=1+p(p+1)/21 + \sum_{k=0}^{p-1}(p-k) = 1 + p(p+1)/21+k=0p1(pk)=1+p(p+1)/2。这是个实质性的差别,当p=20p=20p=20的时候,Best Subset Selection需要拟合1048576个模型,而Forward Stepwise Selection仅需要拟合211个模型。
  • Forward Stepwise Selection相较于Best Subset Selection的计算优势很明显,但其选择的模型并非是全局最优。举个例子,一个有3个Predictors的数据集p=3p=3p=3,当p=1p=1p=1时,best model为X1X_1X1;当p=2时,best model为X2,X3X_2, X_3X2,X3。对于Best Subset Selection,在p=1,p=2p=1,p=2p=1,p=2时都能挑选出最优的模型。但对于Forward Stepwise Selection,当p=1p=1p=1时,best model为X1X_1X1;当p=2p=2p=2时,它只能从X2,X3X_2,X_3X2,X3中挑选出一个最优的加进去,从而错过了Best Model X2,X3X_2, X_3X2,X3

Backward Stepwise Selection

  • 和Forward Stepwise Selection类似,Backward Stepwise Selection相较于Best Subset Selection提供了更高效的计算。与Forward Stepwise Selection不同的是,它从包含了所有p个Predictors的模型开始,并逐渐对模型帮助最小的Predictor。
  • Backward Stepwise Selection的具体算法如下:
    • 定义MpM_pMp为Full Model,即包含所有p个predictors
    • For k=p,p−1,...,1k=p, p-1, ..., 1k=p,p1,...,1
      • 考虑所有的从MkM_kMk中去除一个Predictor从而剩下(k−1)(k-1)(k1)个predictors的模型
      • 从这kkk个模型中,选择最优的模型称之为Mk−1M_{k-1}Mk1。同样,最好模型的定义为有着最小的RSS或者最高的R2R^2R2
    • M0,M1,...,MpM_0,M_1,...,M_pM0,M1,...,Mp中采用Cross-validate Prediction Error,CpC_pCp,AIC,BIC,或者adjusted R2R^2R2,挑选出最优的那个模型。
  • 和Forward Stepwise Selection类似,Backward Stepwise Selection只需要搜索1+p(p+1)/21 + p(p+1)/21+p(p+1)/2个模型,所以可以应用于ppp过大从而难以采用Best Subset Selection的方法。同理,Backward Stepwise Selection也无法保证获取最优模型。

Hybrid Approaches(混合方法)

Best Subset Selection,Forward Stepwise Selection,Backward Stepwise Selection这三个方法往往得到相似但不完全相同的模型。作为可选项,Forward和Backward是可以混合在一起使用的。

  • 首先,Predictor根据顺序加入模型中,类似于Forward
  • 再去除对模型帮助不大的变量

这种方法近似于做Best Subset Selection,但又保证了Forward和Backward的计算优势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值