我正在处理一个高度不平衡的数据集,所以我使用SMOTE重采样它。
在SMOTE重采样之后,我将重放数据集分割成训练/测试集,使用训练集来构建模型,并使用测试集来评估模型。
不过,我担心测试集中的某些数据点,实际上可能会从训练集的数据点(即训练资料泄漏到测试集)中产生抖动,所以测试集并不是一个真正适合测试的集合。
有人有类似的经验吗?信息真的从训练集泄漏到测试集中吗?抑或我们真的不需要担心,而是真的处理这事呢?
发布于 2016-12-09 03:37:10
当您使用任何抽样技术(特别是合成的)时,首先对数据进行划分,然后仅对培训数据应用合成抽样。完成培训后,可以使用测试集(其中只包含原始样本)进行评估。
使用策略的风险是在测试(测试)中使用原始样本,并在测试(培训)集中使用基于此原始示例创建的合成样本。
发布于 2017-12-15 01:39:27
根据你的最后一个问题:
那么我想知道这样的话,我就不能执行n倍交叉验证了,对吧?因为我的数据太小了(特别是对于少数族裔)
这不是真的。如果您的数据非常小,可以尝试重采样(但它有多小?)
发布于 2021-07-09 20:50:26
我也曾处理过同样的问题。不,您不能使用生成的样本,特别是使用SMOTE这样的算法,因为它可能不利于准确性和精度。
在生成合成示例时,SMOTE不考虑来自其他类的相邻示例。这可能会导致更多的类重叠和噪音。如果您有一个高维数据集,这尤其糟糕。
所以答案是你绝对不应该用击打。也许你可以用另一种方法在罕见的情况下,如果这是你的最后手段。
https://datascience.stackexchange.com/questions/15630
复制相似问题