如何处理 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 % 是 0s 和 8 % 是 1s。我在 python
中使用 sklearn (v 0.16)
作为 random forests
.
我看到在构建 classifier 时有两个参数 sample_weight
和 class_weight
。我目前正在使用参数 class_weight="auto"
。
我使用正确吗?
class_weight 和样本重量实际上有什么作用,我应该使用什么?
Class 权重是你应该使用的。
样本权重允许您为特定样本的影响指定乘数。对权重为 2.0 的样本进行加权大致具有与该点在数据中出现两次相同的效果(尽管确切效果取决于估计量)。
Class 权重具有相同的效果,但它用于将集合乘数应用于每个落入指定 class 的样本。在功能方面,您可以使用其中任何一种,但为了方便起见,提供了 class_weights
,因此您不必手动对每个样本进行加权。也可以结合使用 class 权重乘以样本权重的两者。
sample_weights
在 fit()
方法上的主要用途之一是允许像 AdaBoostClassifier
一样对现有决策树 class 进行提升 meta-algorithms ifiers 并根据算法的需要增加或减少单个样本的权重。
我正在尝试解决具有 class 不平衡的二元 class 化问题。我有一个包含 210,000 条记录的数据集,其中 92 % 是 0s 和 8 % 是 1s。我在 python
中使用 sklearn (v 0.16)
作为 random forests
.
我看到在构建 classifier 时有两个参数 sample_weight
和 class_weight
。我目前正在使用参数 class_weight="auto"
。
我使用正确吗? class_weight 和样本重量实际上有什么作用,我应该使用什么?
Class 权重是你应该使用的。
样本权重允许您为特定样本的影响指定乘数。对权重为 2.0 的样本进行加权大致具有与该点在数据中出现两次相同的效果(尽管确切效果取决于估计量)。
Class 权重具有相同的效果,但它用于将集合乘数应用于每个落入指定 class 的样本。在功能方面,您可以使用其中任何一种,但为了方便起见,提供了 class_weights
,因此您不必手动对每个样本进行加权。也可以结合使用 class 权重乘以样本权重的两者。
sample_weights
在 fit()
方法上的主要用途之一是允许像 AdaBoostClassifier
一样对现有决策树 class 进行提升 meta-algorithms ifiers 并根据算法的需要增加或减少单个样本的权重。