分类问题中的过拟合问题(数据不平衡)

数据挖掘 机器学习 数据挖掘 分类 r 决策树
2021-10-02 02:35:23

我正在使用决策树研究罕见事件(不平衡目标变量)分类问题。我的数据集包括 95% 的非事件类和 5% 的少数(事件)类。

我使用决策树而不是逻辑回归,因为与连续变量相比,我有许多分类变量。使用决策树 C5.0 训练数据时,我获得了良好的性能。但是,我对新数据的结果很差。我使用混淆矩阵来衡量性能。训练模型过拟合。

我做了修剪以减少决策树引起的过度拟合。我使用以下代码来构建模型

Classifi_C5.0 <- C5.0(TARGET ~., , data = training_data_SMOTED, trails = 500,
                      control = C5.0Control(minCases = mincases_count,
                                            noGlobalPruning = FALSE))

我使用以下代码平衡了少数类和多数类:

training_data_SMOTED <- SMOTE(TARGET ~ ., training_data,
                              perc.over = 100, k = 5, perc.under = 200)

任何形式的建议都会有所帮助。

1个回答

我正在使用 Quinlans 解决类似的分类问题C5.0,根据我的经验,里面有一些调整可能会对您有所帮助。

  • 首先,我相信使用如此大的数字(试验 = 500)进行提升会影响过度拟合,因为模型会在每次迭代中反复尝试和改进错误分类的实例。尝试使用较小的提升大小,甚至将其关闭 - 这可能有助于解决过度拟合问题。
  • 还有一些其他参数您可能会觉得有用。在避免过度拟合问题时,最小的叶子大小 ( minCasesinC5.0Control()是您希望尽可能大的东西。
  • 另一个是置信度因子CF
  • 最后,您可以尝试使用fuzzyThreshold控制选项,它可以让您“软化”带有中间灰色区域的尖锐阈值。

这些都很好地记录在C5.0小插图以及非正式教程页面上

希望这对您有所帮助。