将数据集合成为训练集,能够帮忙咱们理解模型,这对于模型如何推广到新的看不见数据十分重要。如果模型适度拟合可能无奈很好地概括新的看不见的数据。因而也无奈做出良好的预测。
领有适当的验证策略是胜利创立良好预测,应用 AI 模型的业务价值的第一步,本文中就整顿出一些常见的数据拆分策略。
简略的训练、测试拆分
将数据集分为训练和验证 2 个局部,并以 80%的训练和 20%的验证。能够应用 Scikit 的随机采样来执行此操作。
首先须要固定随机种子,否则无奈比拟取得雷同的数据拆分,在调试时无奈取得后果的复现。如果数据集很小,则不能保障验证拆分能够与训练拆分不相干。如果数据不均衡,也无奈取得雷同的拆分比例。
所以简略的拆分只能帮忙咱们开发和调试,真正的训练还不够欠缺,所以上面这些拆分办法能够帮忙 u 咱们完结这些问题。
K 折穿插验证
将数据集拆分为 k 个分区。在上面的图像中,数据集分为 5 个分区。
抉择一个分区作为验证数据集,而其余分区则是训练数据集。这样将在每组不同的分区上训练模型。
最初,将最终取得 K 个不同的模型,前面推理预测时应用集成的办法将这些模型一起应用。
K 通常设置为 [3,5,7,10,20]
如果要查看模型性能低偏差,则应用较高的 K [20]。如果要构建用于变量抉择的模型,则应用低 k [3,5],模型将具备较低的方差。
长处:
- 通过均匀模型预测,能够进步从雷同散布中提取的未见数据的模型性能
- 这是一种宽泛应用的来获取良好的生产模型的办法
- 能够应用不同的集成技术能够为数据集中的每个数据创立预测,并且利用这些预测进行模型的改善,这被称为 OOF(out- fold prediction)。
问题:
- 如果有不均衡的数据集,请应用 Stratified-kFold
- 如果在所有数据集上从新训练一个模型,那么就不能将其性能与应用 k -Fold 进行训练的任何模型进行比拟。因为这个的模型是在 k - 1 上训练的,不是对整个数据集
Stratified-kFold
能够保留每折中不同类之间的比率。如果数据集不均衡,例如 Class1 有 10 个示例,并且 Class2 有 100 个示例。Stratified-kFold 创立的每个折中分类的比率都与原始数据集雷同
这个想法相似于 K 折的穿插验证,然而每个折叠的比率与原始数据集雷同。
每种分折中都能够保留类之间的初始比率。如果您的数据集很大,K 折的穿插验证也可能会保留比例,然而这个是随机的,而 Stratified-kFold 是确定的,并且能够用于小数据集。
Bootstrap 和 Subsampling
Bootstrap 和 Subsampling 相似于 K -Fold 穿插验证,但它们没有固定的折。它从数据集中随机选取一些数据,并应用其余数据作为验证并反复 n 次
Bootstrap= 交替抽样,这个咱们在以前的文章中有具体的介绍。
什么时候应用他呢?bootstrap 和 Subsamlping 只能在评估度量误差的标准误差较大的状况下应用。这可能是因为数据集中的异样值造成的。
总结
通常在机器学习中,应用 k 折穿插验证作为开始,如果数据集不均衡则应用 Stratified-kFold,如果异样值较多能够应用 Bootstrap 或者其余办法进行数据分折改良。
https://avoid.overfit.cn/post/f22df2a461e84e91a78f6c66e07a7632
作者:ai4prod