用于训练随机森林二元分类器的正负训练实例的正确比率

mer*_*011 6 machine-learning random-forest

我意识到相关问题列车集中的正/负比例表明,正负训练样例的1比1对于Rocchio算法是有利的.

然而,这个问题与相关问题的不同之处在于它涉及随机森林模型以及以下两种方式.

1)我有大量的训练数据可供使用,使用更多训练样例的主要瓶颈是训练迭代时间.也就是说,我不想花一个多晚的时间训练一个排名因为我想快速迭代.

2)在实践中,分类器可能会看到每4个负例的1个正例.

在这种情况下,我应该训练使用比正面例子更多的负面例子,还是使用相同数量的正面和负面例子?

vij*_*cat 5

请参阅此处有关随机森林的官方文档中标题为"平衡预测错误"的部分:https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#balance

我用粗体标出了一些部分.

总之,这似乎表明您的培训和测试数据也应如此

  1. 反映您的真实数据将具有的1:4比例
  2. 您可以使用1:1混合,但是您应该仔细调整每个类的权重,如下所示,直到您所需(较小)级别的OOB错误率降低

希望有所帮助.

在一些数据集中,类之间的预测误差是高度不平衡的.有些类的预测误差较低,有些则为高.这通常发生在一个类比另一个类大得多时.然后,随机森林试图最小化整体错误率,将使大班级的错误率保持较低,同时让较小的班级具有较大的错误率.例如,在药物发现中,给定分子被分类为活性或非活性,通常将活性物质的数量超过10比1,最高可达100比1. 在这些情况下,有趣类别的错误率(活性物质)会很高的.

用户可以通过输出各个类的错误率来检测不平衡.为了说明,使用20维合成数据.第1类出现在一个球形高斯中,第2类出现在另一个上.生成1000个1级和50个2级的训练集,以及5000个1级和250个2级的测试集.

这个数据的500棵树林的最终输出是:

500 3.7 0.0 78.4

总体测试集错误率较低(3.73%),但是第2类有超过3/4的案例被错误分类.

可以通过为类设置不同的权重来完成错误平衡.

给出一个等级的权重越高,其错误率就越低.关于赋予什么权重的指南是使它们与类群成反比.因此,在第1类将权重设置为1,在第2类设置为20,然后再次运行.输出是:

500 12.1 12.7 0.0

2级20的重量太高了.将其设置为10并再次尝试,获取:

500 4.3 4.2 5.2

这非常接近平衡.如果需要精确的平衡,第2类的重量可能会稍微摇摆一些.

请注意,在获得此平衡时,整体错误率会上升.这是通常的结果 - 为了获得更好的平衡,整体错误率将会增加.


Mik*_*ike 3

这似乎是一个微不足道的答案,但我能建议的最好的办法是尝试一小部分数据(足够小,以便算法可以快速训练),并观察使用 1-1、1-2 时的准确性。 , 1-3 等等...

当您逐渐增加每个比率的示例总数时,绘制结果并查看性能的响应情况。通常,您会发现部分数据与完整数据集的训练性能非常接近,在这种情况下,您可以对您的问题做出明智的决定。

希望有帮助。