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

2024-05-23 13:33:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解决一个类不平衡的二元分类问题。我有21万条记录的数据集,其中92%0s8%1s。我在python中使用sklearn (v 0.16)作为random forests。在

我看到在构造分类器时有两个参数sample_weight和{}。我当前正在使用参数class_weight="auto"。在

我用这个正确吗? 类权重和样本权重的实际作用是什么?我应该使用什么?在


Tags: 数据sampleauto参数分类器记录分类random
1条回答
网友
1楼 · 发布于 2024-05-23 13:33:28

你应该使用类权重。在

使用“采样权重”(Sample weights),可以为特定采样的影响指定乘数。对权重为2.0的样本进行加权,其效果与点在数据中出现两次时的效果相同(尽管确切效果取决于估计器)。在

类权重具有相同的效果,但它用于对属于指定类的每个样本应用集合乘数。就功能而言,您可以使用其中一种,但是class_weights是为了方便起见而提供的,因此您不必手动为每个样本加权。也可以将两种方法结合使用,其中类权重乘以样本权重。在

sample_weightsfit()方法上的主要用途之一是允许像AdaBoostClassifier这样的提升元算法操作现有的决策树分类器,并根据算法的需要增加或减少单个样本的权重。在

相关问题 更多 >