我在 sklearn 的文档中读到,我们必须特别注意平衡决策树的输入,但它并没有告诉您使用什么函数。但是,我找到了参数class_weight。如果我class_weight: balanced用作参数,这是否意味着我可以省略手动平衡输入?
class_weight 是否解决了决策树的不平衡输入?
数据挖掘
scikit-学习
决策树
阶级失衡
2022-03-05 05:31:53
2个回答
是的,您不需要手动平衡您的火车数据。但是您的测试数据仍然可能(真正)不平衡。
对于分类问题,不仅仅是决策树,不平衡类给出过于乐观的准确度分数并不少见。有几种常见的方法来处理这个问题。
重新编码您的数据。您可以对少数类进行过采样或对多数类进行欠采样。最终目标是或多或少地平衡数据。
先给你的模型一个帮助通知频率。
类似地,您可以传递一个权重参数。权重将惩罚分类函数对罕见的正例的错误分类。
最后,您可以修改精度测量。一种常见的测量方法是使用 F1 统计量,而不仅仅是准确度。通过交叉验证最大化 F1 统计量,并查看它在测试期间是否稳定。
我还建议您将这些技术结合起来。例如,给你的模型一个先验并使用 F1 分数。我想你会在这条路上找到好的结果。
其它你可能感兴趣的问题