ISLR读书笔记八:交叉验证法(Cross-Validation)

交叉验证法(Cross-Validation)

前言

本篇的交叉验证法(Cross-Validation)和下篇的自助法(bootstrap)都是重采样方法(resampling methods)。重采样方法指重复地从训练集中选取数据进行拟合,以得到拟合模型的更多信息。交叉验证法可以用于评估测试误差或者选取合适的灵活度(flexibility),自助法多用于评估参数估计的准确性。本篇讲的是交叉验证法,包括校验集方法(The Validation Set Approach),留一法(Leave-One-Out Cross-Validation),k折交叉验证(k-Fold Cross-Validation)

校验集方法

交叉验证法指的是将观测数据随机地分成训练集(training set)和校验集(validation set)两部分。训练集用于拟合模型,校验集用于测试拟合模型的效果好坏。

校验集方法
校验集方法的优点是概念简单,容易实施。缺点主要有两点:

  1. 由于划分的随机性,校验集上得到的测试误差估计,可能会有很高的差异
  2. 只有一部分数据用于训练,可能高估测试误差。

留一法

留一法同样将观测数据分为训练集和校验集两部分,但是有两点不同:一个是只有一个数据用于校验集,其余数据用于训练集。还有一个不同是,假如有 n n n 个观测数据,留一法重复进行了 n n n 次校验集方法的操作,每次的校验集均不相同,可以得到 n n n M S E MSE MSE
留一法用留一法得到的对测试 M S E MSE MSE 的估计可以用下式表示:
C V ( n ) = 1 n ∑ i = 1 n M S E i CV_{(n)}=\frac{1}{n}\sum_{i=1}^nMSE_i CV(n)=n1i=1nMSEi
留一法的优点是

  1. 采用平均,得到的偏差很小
  2. 没有不确定性,总是得到一个固定的数值

留一法的缺点是

  1. n n n 很大的情况下,计算量大
  2. 在偏差方差权衡中,可能有较高的方差

k折交叉验证

k折交叉验证将观测数据随机地分成大小差不多的 k k k 组,首先将第一组作为校验集,其余 k − 1 k-1 k1 组作为训练集,得到一个 M S E 1 MSE_1 MSE1;然后将第二组作为校验集,其余 k − 1 k-1 k1 组作为训练集,得到一个 M S E 2 MSE_2 MSE2;重复操作,得到一组 M S E 1 , M S E 2 , ⋯   , M S E k MSE_1,MSE_2,\cdots,MSE_k MSE1,MSE2,,MSEk
k折交叉验证用k折交叉验证得到的对测试 M S E MSE MSE 的估计可以用下式表示:
C V ( n ) = 1 k ∑ i = 1 k M S E i CV_{(n)}=\frac{1}{k}\sum_{i=1}^kMSE_i CV(n)=k1i=1kMSEi
可以看到,留一法是 k = n k=n k=n 的特殊情况。实际问题中, k k k通常选取为 5 5 5或者 10 10 10
k折交叉验证的优点是

  1. 便于计算
  2. 在偏差方差权衡中,方差较小

猜你喜欢

转载自blog.csdn.net/weixin_43084570/article/details/108933525