我有一个类不平衡问题,并且正在使用scikit-learn(> = 0.16)中的实现进行加权随机森林实验。
我注意到,该实现在树构造函数中使用class_weight参数,在fit方法中采用sample_weight参数来帮助解决类不平衡问题。尽管这两个决定最终的权重,但两者似乎相乘。
我无法理解以下内容:
最佳答案
RandomForests建立在很好的树上。检查树木如何使用样本权重:
至于
class_weight
和sample_weight
之间的区别:可以简单地通过它们的数据类型的性质来确定它们。 sample_weight
是长度为n_samples
的一维数组,为用于训练的每个示例分配显式权重。 class_weight
是每个类别的字典,具有该类别的统一权重(例如{1:.9, 2:.5, 3:.01}
),或者是一个字符串,告诉sklearn如何自动确定该字典。因此,给定示例的训练权重是它的显式名称
sample_weight
(如果未提供1
,则为sample_weight
)和class_weight
(如果未提供1
,则为class_weight
)的乘积。关于python - scikit-learn:随机森林的class_weight和sample_weight参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30805192/