关于人工智能:如何正确拆分数据集常见的三种方法总结

3次阅读

共计 1371 个字符,预计需要花费 4 分钟才能阅读完成。

将数据集合成为训练集,能够帮忙咱们理解模型,这对于模型如何推广到新的看不见数据十分重要。如果模型适度拟合可能无奈很好地概括新的看不见的数据。因而也无奈做出良好的预测。

领有适当的验证策略是胜利创立良好预测,应用 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

正文完
 0