2017-04-14 256 views
2

我在一个非常不平衡的数据集(比例为1:10 000)上应用ScikitLearn的随机森林。我可以使用class_weigth ='balanced'参数。我读过它相当于欠采样。ScikitLearn中的Undersampling vs class_weight随机森林

但是,此方法似乎将权重应用于样本,并且不会更改实际样本数。

因为随机森林的每棵树都是建立在随机抽取的训练样本的子样本上的,所以恐怕少数类别在每个子样本中都不会有足够的代表性(或者根本没有表示)。这是真的?这会导致非常偏倚的树木。

因此,我的问题是:class_weight =“balanced”参数是否允许在非常不平衡的数据集上构建合理无偏的随机森林模型,或者我应该找到一种方法来在每棵树上取样多数类或构建培训时组?

+2

没有太多代表性的课堂本身就是一种危险。你希望有足够多的少数民族成为具有代表性的例子。这并不意味着对大多数班级进行低级抽样会有好处。 –

回答

0

我认为你可以在+ -10000个样本中分裂多数类,并使用每个样本加上相同的少数类的点来训练相同的模型。

+0

非常感谢!我有一个类似的想法,但我没有看到类似的应用在任何地方。我想在森林的每棵树上使用大多数类别的不同样本(+少数族裔的相同点)。 –