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



我意识到,训练集中的相关问题阳性/阴性比例表明,阳性与阴性训练示例的1:1比例有利于Roccio算法。

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

1) 我有大量的训练数据要处理,使用更多训练示例的主要瓶颈是训练迭代时间。也就是说,我不想花超过一个晚上的时间来训练一个ranker,因为我想快速迭代。

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

在这种情况下,我应该使用更多的反面例子而不是正面例子进行训练,还是使用同样数量的正面和反面例子?

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

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

总之,这似乎表明你的训练和测试数据应该是

  1. 反映现实生活中的数据将具有1:4的类比例或
  2. 你可以有1:1的混合,但你应该小心地调整每个类的权重如下所示,直到OOB错误率你想要的(较小的)班级降低了

希望能有所帮助。

在一些数据集中,类之间的预测误差很高不平衡。有些类的预测误差很低,而另一些类则很高。这种情况通常发生在一个类比另一个类大得多的时候。然后随机森林,试图最大限度地降低总体错误率,将保持大类的错误率较低,而让小类具有较大的错误率。例如,在药物发现中给定的分子被分类为活性或非活性,通常具有活性物质的数量为10比1,高达100比1在这些在某些情况下,感兴趣的类(actives)的错误率将为非常高

用户可以通过输出个别类别。为了说明20维合成数据习惯于1类出现在一个球面高斯中,2类出现在另一个球面上。A.生成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

二班20的重量太高了。将其设置为10并重试,获取:

500 4.3 4.2 5.2

这非常接近平衡。如果需要精确的平衡第二类的重量可能会更大一些。

请注意,在获得这种平衡的过程中,总体错误率上升了。这是通常的结果-为了获得更好的平衡,整体误差费率将提高。

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

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

希望能有所帮助。

最新更新