如何在 R 包 DMwR 中设置 SMOTE 参数?

机器算法验证 r 异常值 不平衡类
2022-04-17 12:25:11

对于稀有类的比例从 30%(稀有)到 5%(稀有)不等的不同不平衡数据集,定义Perc.OverPerc.UnderinSMOTE方法的最佳方法是DMwR什么?

目前我正在使用这个公式:

Over = ( (0.6 * COMMON_NO) - RARE_NO ) / RARE_NO

Under = (0.4 * COMMON_NO) / (RARE_NO * Over)

最后将其转换为百分比:

Over_Perc = round(Over, 1) * 100

Under_Perc = round(Under, 1) * 100

然后将其提供给 SMOTE,如下所示:

newData <- SMOTE(Label ~., df, perc.over=Over_Perc, perc.under=Under_Perc)

问题是,如果训练集中有 30% 的稀有数据,则在不使用的情况下进行分类SMOTE会比使用SMOTE! 虽然通过在训练集中拥有 5%-20% 的稀有数据,使用SMOTE,分类算法提供了更好的性能,

ps 我正在使用 Matthew 的相关性和 AUC 进行性能测量。

1个回答

如果您在训练集中有 30% 的“稀有”数据时确实看到了改进,我会感到惊讶。在机器学习的背景下,30% 并不是那么罕见。您可以做的是使用各种级别的合成数据进行交叉验证,以确定什么可以为您的保留数据提供最佳准确性(参数调整的非常标准的方法),然后将其用于您的最终模型构建。但是,根据个人经验,如果您在训练集中超过 20-25% 的正类实例时看到准确度显着提高,我会感到非常惊讶。