为什么 SMOTE 不用于获奖的 Kaggle 解决方案?

数据挖掘 机器学习 阶级失衡 卡格尔 打击
2021-09-23 18:06:18

合成少数过采样技术 SMOTE 是一种众所周知的处理不平衡数据集的方法。有许多论文被大量引用,声称它用于提高不平衡数据场景中的准确性。

但是,当我看到 Kaggle 比赛时,它很少使用,据我所知,没有获奖的 Kaggle/ML 比赛用于实现最佳解决方案。为什么在 Kaggle 中不使用 SMOTE?

我什至看到了未使用 SMOTE 的应用研究论文(其中涉及数百万美元):Practical Lessons from Predicting Clicks on Ads at Facebook

这是因为这不是最好的策略吗?它是一个没有最佳现实应用的研究领域吗?是否有任何获得高回报的机器学习竞赛用于实现最佳解决方案?

我想我只是犹豫创建合成数据是否真的有帮助。

1个回答

我认为这是一个非常有趣的话题,它已经存在了很长时间,正如我们所看到的,没有明确的结论。据我从应用经验中得知,在以下情况下,我会使用欠采样/过采样技术:

[编辑]

  • 我们事先知道我们的数据集在正负目标标签之间存在不切实际的比率;这样,通过欠/过采样,我们可以平衡到更现实的比率

  • 我们的数据集包含不正确的数据样本,因此我们需要过滤掉(例如,通过欠采样)错误的数据点(检索原始数据时的系统错误),我们可能在真实的推理场景中找不到这些数据点

  • 已知会发生阳性的问题(例如欺诈检测),但我们仍然没有足够的时间来收集足够的阳性样本,因此过采样可能很有趣

这些案例旨在纠正不可靠的训练数据集,使其更类似于真实场景。我认为这是不适用的原因,在实际情况下(或仅当正确构建 datasewt 时)欠/过采样技术。我知道在 Kaggle 中,数据集已经经过精心设计,直接用于建模因此,如果不平衡的数据集代表真正的问题分布,则算法有责任按原样捕获数据的模式。