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

时间:2013-07-28 05:13:42

标签: machine-learning random-forest

我意识到相关问题Positives/negatives proportion in train set表明,积极与否定训练样例的比率为1比1对于Rocchio算法是有利的。

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

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

2)在实践中,分类器可能会为每4个负面例子看到1个正面例子。

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

2 个答案:

答案 0 :(得分:5)

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

我用粗体标记了一些部分。

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

  1. 反映了您的真实数据所具有的1:4比例 或
  2. 你可以有1:1的混合,但是你应该仔细调整 每个类的权重如下所示,直到OOB错误率为止 你想要的(较小的)课程降低
  3. 希望有所帮助。

      

    在某些数据集中,类之间的预测误差很大   不平衡。有些类的预测误差较低,有些则为高。   这通常发生在一个类比另一个类大得多时。然后   随机森林,试图最大限度地降低整体错误率,将保持   允许较小的班级,大班级的错误率较低   错误率更高。例如,在药物发现中,a   给定分子被分类为活性或非活性,通常具有   活跃者数量超过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级,20级在2级,然后再次运行。输出是:

         

    500 12.1 12.7 0.0

         

    2级20的重量太高了。将其设置为10并再试一次,   得到:

         

    500 4.3 4.2 5.2

         

    这非常接近平衡。如果需要精确的平衡,那么   第2级的重量可能会稍微摇摆不定。

         

    请注意,在获得此余额时,整体错误率会上升。   这是通常的结果 - 获得更好的平衡,整体错误   费率会增加。

答案 1 :(得分:3)

这看起来似乎是一个微不足道的答案,但我能建议的最好的事情是尝试一小部分数据(小到足以使算法快速训练),并观察使用1-1时的准确度, 1-2,1-3等...

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

希望有所帮助。