我正在尝试用类不平衡来解决二进制分类问题。我有210,000条记录的数据集, 92% 0s , 8% 1秒 即可。我在sklearn (v 0.16)
中使用python
random forests
。
我在构建分类器时看到有两个参数sample_weight
和class_weight
。我目前正在使用参数class_weight="auto"
。
我是否正确使用此功能? class_weight和样本权重实际上做了什么以及我应该使用什么?
答案 0 :(得分:3)
你应该使用类权重。
样本权重允许您为特定样本的影响指定乘数。对重量为2.0的样本进行粗略加权与在数据中出现两次点的效果相同(尽管确切的效果取决于估计量)。
类权重具有相同的效果,但它用于将设定的乘数应用于落入指定类的每个样本。在功能方面,您可以使用其中之一,但为方便起见提供了class_weights
,因此您无需手动加权每个样本。还可以组合两个类别的使用,其中类权重乘以样本权重。
sample_weights
方法fit()
的一个主要用途是允许像AdaBoostClassifier
这样的元推算等元算法在现有的决策树分类器上运行,并增加或减少个人的权重算法需要的样本。