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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37352167/article/details/85028835

数据划分 - 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 = 1 , 2 , . . . , K ) (i=1,2,...,K) 遍历会将第 i i 个子集作为验证集,其余所有子集作为训练集进行模型的训练与评估;最后将 K 次的评估指标的平均值 作为最终评估指标。

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

  • Bootstrap

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

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

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


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

    扫描二维码关注公众号,回复: 4526392 查看本文章

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

    根据重要极限 n + lim ( 1 + 1 n ) n = e \mathop{}_{n→+\infty}^{\lim}(1+\frac{1}{n})^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

猜你喜欢

转载自blog.csdn.net/weixin_37352167/article/details/85028835