scikit-learn:随机森林 class_weight 和 sample_weight 参数

scikit-learn: Random forest class_weight and sample_weight parameters

我有一个 class 不平衡问题,并且一直在使用 scikit-learn (>= 0.16) 中的实现来试验加权随机森林。

我注意到该实现在树构造函数中采用了 class_weight 参数和 sample_weight 参数在 fit 方法中帮助解决 class 不平衡问题。这两个似乎相乘决定了最终的权重。

我无法理解以下内容:

RandomForests 是建立在 Trees 之上的,Trees 有很好的文档记录。检查树如何使用样本权重:

至于 class_weightsample_weight 之间的区别:很多可以简单地通过它们的数据类型的性质来确定。 sample_weight 是长度为 n_samples 的一维数组,为用于训练的每个示例分配明确的权重。 class_weight 是每个 class 的字典到那个 class 的统一权重(例如,{1:.9, 2:.5, 3:.01}),或者是一个字符串告诉 sklearn 如何自动确定这个字典。

因此,给定示例的训练权重是明确命名为 sample_weight(如果未提供 sample_weight 则为 1)的乘积,它是 class_weight (如果未提供 class_weight,则为 1)。