理解为什么洗牌会奇怪地减少过拟合

数据挖掘 机器学习 数据科学模型 过拟合
2021-09-16 18:46:16

我是一名学生,目前正在尝试创建分类模型,但是我很难理解一个奇怪的过度拟合问题。

一个包含大约 30 000 个条目、30 个特征的数据集。数据按输入日期排序。我将数据分成 80% 的训练和 20% 的测试。我使用随机森林得到了大约 98% 的训练准确率和大约 71% 的测试准确率。当我删除 3 个特定参数时,过度拟合消失了,我得到了 73% 的训练准确率和 68% 的测试准确率。这意味着这 3 个参数会导致大量的过拟合。当我对数据进行洗牌时,会发生奇怪的事情。使用所有 30 个参数,训练准确率保持在 98%,测试准确率达到 92%。对我来说,这表明这 3 个特征值在数据的最后一个月左右发生了意外变化(数据在改组之前按日期排序),并且改组它们为模型提供了上个月的足够示例来获取突然的变化。但是绘制它们的值/天的平均值,对于整个日期范围表明它们在整个数据中遵循相同的季节性,并且没有奇怪的变化。有人可以给我一些想法来解释为什么改组数据有助于大量减少过度拟合吗?

1个回答

任何有监督的 ML 方法都有一个关键假设:训练集和训练集都是从同一群体中抽取的样本。这意味着模型期望在测试集中看到与在训练集中相同的特征分布。

为了确保满足这个假设,重要的是在训练集和测试集之间拆分之前对实例进行洗牌。这将避免由于收集或组装数据的顺序而导致的任何可见或不可见的偏见。这就是您在第一个实验中可以观察到的效果:主要问题不是由于模型过度依赖某些参数而导致的过度拟合,而是训练集或测试集都不是总体的随机子集。基于训练集的模型依赖这 3 个参数可能是完全有意义的,问题是它们在测试集中的行为方式不同。“以相同的方式表现”包括它们与其他特征的关系,因此通过单独查看这些特征可能看不到差异。