数据划分 - Hold-Out、K-Fold CV、Bootstrap

数据划分 - Hold-Out、K-Fold CV、Bootstrap

      • 引入
      • Hold-Out
      • K-Fold CV
      • Bootstrap

  • 引入

    在机器学习与深度学习中,我们经常将数据集划分为训练集与测试集。训练集用来训练优化模型,测试集用来评估模型的泛化能力。在数据集划分的过程中,存在着不同的抽样和验证方法,下面介绍 三种较为常用的方法。

  • Hold-Out

    Hold-Out 是基本的划分方法,字面意思就是“留出来一部分”,即将数据集直接按照一定比例划分。例如常用的 “2/8” 与 “3/7”,含义为训练集 80% 或 70%,相应的测试集占 20% 或 30%.

    Hold-Out 的缺点较为明显,即在验证集上计算的出来的 最后评估指标与原始数据的顺序有很大关系。为了消除特殊性,研究者提出了 “交叉验证”。

  • K-Fold CV

    K-Fold Cross Validation,K 折交叉验证。首先将数据集划分成 K 个大小相等的样本子集;而后依次遍历这 K 个子集,第 i i i ( i = 1 , 2 , . . . , K ) (i=1,2,...,K) (i=1,2,...,K) 遍历会将第 i i i 个子集作为验证集,其余所有子集作为训练集进行模型的训练与评估;最后将 K 次的评估指标的平均值 作为最终评估指标。

    最常用的是 K=10. 而当 K = 数 据 集 总 大 小 K=数据集总大小 K= 时,称为 留一交叉验证。即每次只将一个样本当做测试集。在 数据集总量非常大 时,留一交叉验证的开销非常大。


    对于 K 折交叉验证来说,

    ∙ \bullet K 值越大,意味着训练模型使用的训练集越大,则噪声所占比例越小,不容易受到噪声影响,不易产生过拟合,模型性能的方差变小;

    ∙ \bullet K 值越小,意味着训练模型使用的训练集越小,噪声所占比例越大,容易受到噪声影响,易产生过拟合,模型的方差变大。

  • Bootstrap

    不管是 Hold-Out 还是 K-Fold CV,它们都是基于划分数据集的方法进行模型评估的。然而当 样本规模较小 时,将样本进行划分会让训练集进一步减小,这可能会影响模型训练的效果。此时可采用采样方法。

    其中自助法 Bootstrap 较为常用。对于总数为 n 的数据集,进行 n 次有放回的随机抽样,得到 大小为 n训练集。n 次采样的过程中,有的样本会被重复采样,有的样本没有被抽出,将这些 没有被抽出 的样本作为 验证集

    在最终完成样本抽样后,有 36.8% 的数据未被抽到。计算方法:


    假设共有 n 个样本,每个样本不被抽到的概率为 1 − 1 n 1-\frac{1}{n} 1n1

    抽取 n 次都不被抽到的概率为 ( 1 − 1 n ) n (1-\frac{1}{n})^n (1n1)n,当 n → + ∞ n→+\infty n+ 时,

    根据重要极限 n → + ∞ lim ⁡ ( 1 + 1 n ) n = e \mathop{}_{n→+\infty}^{\lim}(1+\frac{1}{n})^n=e n+lim(1+n1)n=e

    求得: n → + ∞ lim ⁡ ( 1 − 1 n ) n = n → + ∞ lim ⁡ 1 ( 1 + 1 − n ) − n = 1 e ≈ 0.368 \mathop{}_{n→+\infty}^{\lim} (1-\frac{1}{n})^n=\mathop{}_{n→+\infty}^{\lim}\frac{1}{(1+\frac{1}{-n})^{-n}}=\frac{1}{e}≈0.368 n+lim(1n1)n=n+lim(1+n1)n1=e10.368

    对于采样方法还有很多种,对于机器学习来讲也是比较重要的,以及如何通过采样估计模型的偏差与方差,在此先不做讨论,未来单写一篇。敬请期待。

你可能感兴趣的:(机器学习,(ML),深度学习,(DL))