Cross validation 交叉验证 【机器学习】

      首先,我们通过一道例题来回忆一下test error和training error.

答案:A、D。解析如下:

 

      别急!我们再来重温一下resampling methods.

   Resampling methods are process of repeatedly drawing samples from a training data set and refitting a given model on each sample with the goal of learning more about the model.

      也就是说在给定训练集而且数据量有限的情况下,我们可以通过resampling methods来从有限的数据中获取更多的信息。Resampling methods 有时候的计算量特别大,因为它需要repeatedly performing the same statistical methods across different subsets of data.

      Cross validation是众多resampling methods的一种。It can estimate the test error rate by holding out a subset of the training observations from the fitting process and modeling those held out observations.

      接下来我们将介绍三类cross validation.

1、Validation set approach

      Validation set approach的目的也是基于已有的observations预测test error.

      如图所示,得到一个data set之后我们先要随机地把整个数据集分为training set和validation set。然后,用training set拟合一个模型。最后,用这个模型来预测validation set的结果。

      诚然,validation set approach是个简单且非常容易理解、实施的方法,但是它却有两大缺陷:

1)通过Validation set approach预测的test error是highly variable的,可变性非常大。这点非常好理解,运用此方法时,我们随机地分割了data set,这就造成了非常大的随机性。

   The validation estimate of the test error rate can be highly variable depending on which observations are included in the training set and which are included in the validation set.

2)因为只有一半的observations被用来拟合模型,所以我们通过Validation set approach得到的对test error rate的估计是overestimate的。

   Statistical methods perform worse when trained on fewer observations.

      最后,给出一道例题方便理解。懒得手打了嗷^^_

2、k-fold cross-validation

      在k-fold cross-validation中,observations被随机切割成k组,这k组数据的数量大致相同(如果把十个数据分为3组,我们大致分为3-3-4)。

      我们会从这k组数据选出一组作为validation set,其余k-1组作为training set来训练模型。重复此操作k次,也就是依次选择每组数据作为validation set而其他组别作为training set,得到k个MSE(mean squared error).

      对这k个MSE,我们通过下方公式估算test MSE.

CV_{k} = \tfrac{1}{n} \sum_{i=1}^{k} n_{i} MSE_{i}

      通常来说,我们不会把k设置得太大因为计算起来太麻烦了,一般会取5或者10。下文第四章我们会提到k值与方差、偏差之间的关系。

      最后,给出一道例题方便理解。懒得手打了嗷^^_

3、Leave-one-out cross-validation

      简称LOOCV,validation set永远只有一个observation。LOOCV是k-fold cross-validation的一种形式——k=n,n是数据集的大小。

      相比起validation set approach,LOOCV大致有以下两条优势。

1)Far less bias.我们训练模型时,训练集大小为n-1,对比起k-fold cross-validation,此方法用了更多的数据进行训练。所以此方法的bias更小,而且it tends to not overestimate the test error rate as much as the validation set approach does.

2)Always yield the same results.因为LOOCV方法在分割数据集时,没有随机性。

      但是此方法的劣势也很明显,那就是计算起来太繁琐了——对于一个大小为n的数据集我们需要进行n此计算。

      不过,当我们使用最小二乘回归时,计算会相对简单一点,我们可以套用下方公式。其中,h_{ii}被称之为leverage,是矩阵H=X(X^{T}X)^{-1}X^{T}的第i个对角元素。

CV_{(n)}=\frac{1}{n}\sum_{i=1}^{n}(\frac{y_{i}-y\hat{}_{i}}{1-h_{ii}})^{2}

4、k-fold validation中如何权衡方差与偏差?

      如果我们想最小化偏差Bias,最合适的方法必然是LOOCV,因为比起其他k值的k-fold validation,它用来训练模型的数据是最多的。

      鉴于偏差不是影响test error的唯一因素,我们同样需要考虑如何减小方差。LOOCV的方差很大,而且由于LOOCV比较的众多模型都是建立在几乎一样的数据集上的(根据其特性可得),它产生的结果是高度相关的。

      总的来说,随着k值的增大,偏差会减小,方差会增大。

摸鱼结束,下班!

参考文献:James G.,Written D.,Hastie T. and Tibshirani R.(2013).  An intruduction to statistical learning with applications in R, Springer.

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值