如何处理 sklearn 随机森林中的 class 不平衡。我应该使用样本权重还是 class 权重参数

How to handle class imbalance in sklearn random forests. Should I use sample weights or class weight parameter

我正在尝试解决具有 class 不平衡的二元 class 化问题。我有一个包含 210,000 条记录的数据集,其中 92 %0s8 %1s。我在 python 中使用 sklearn (v 0.16) 作为 random forests .

我看到在构建 classifier 时有两个参数 sample_weightclass_weight。我目前正在使用参数 class_weight="auto"

我使用正确吗? class_weight 和样本重量实际上有什么作用,我应该使用什么?

Class 权重是你应该使用的。

样本权重允许您为特定样本的影响指定乘数。对权重为 2.0 的样本进行加权大致具有与该点在数据中出现两次相同的效果(尽管确切效果取决于估计量)。

Class 权重具有相同的效果,但它用于将集合乘数应用于每个落入指定 class 的样本。在功能方面,您可以使用其中任何一种,但为了方便起见,提供了 class_weights,因此您不必手动对每个样本进行加权。也可以结合使用 class 权重乘以样本权重的两者。

sample_weightsfit() 方法上的主要用途之一是允许像 AdaBoostClassifier 一样对现有决策树 class 进行提升 meta-algorithms ifiers 并根据算法的需要增加或减少单个样本的权重。