在“随机森林”中,为什么在节点级别而不是树级别上选择特征的随机子集?


13

我的问题:为什么随机森林会考虑特征的随机子集,以便在每棵树的节点级别而不是树级别进行拆分?

背景:这是一个历史问题。田锦镐(Tin Kam Ho)于1998年发表了有关构建“决策森林”的论文该文章随机选择了用于生长每棵树的特征子集。几年后,在2001年,Leo Breiman发表了他的开创性的《随机森林》论文,其中特征子集是随机的。在每个树内的每个节点上选择,而不是在每个树上选择。尽管Breiman引用了Ho,但他没有具体说明从树级到节点级随机特征选择的过程。

我想知道是什么推动了这一发展。似乎在树级别选择特征子集仍会完成树的所需解相关。

我的理论:我在其他地方都没有看到过这种说法,但是就获得特征重要性的估计而言,随机子空间方法似乎效率较低。为了获得重要程度的估计值,对于每棵树,将特征一一随机排列,并记录袋外观察结果的错误分类增加或错误增加。因这种随机排列而导致错误分类或错误增加的变量很高,是那些具有最高重要性的变量。

如果我们用随机子空间的方法,每棵树,我们只考虑的功能。可能要花几棵树才能考虑所有预测变量。另一方面,如果我们在每个节点上考虑特征的不同子集,则在更少的树之后我们将考虑每个特征更多次,从而使我们对特征重要性的估计更加可靠。mppmip

到目前为止,我所看的是:到目前为止,我已经阅读了Breiman的论文和Ho的论文,并进行了广泛的在线搜索以比较方法,而没有找到确切的答案。请注意,之前曾问过类似的问题。通过将我的推测/工作纳入可能的解决方案,这个问题进一步扩大了。我会对比较这两种方法的任何答案,相关引文或模拟研究感兴趣。如果没有结果,我计划比较两种方法来运行自己的仿真。


2
我不会引用任何参考文献,因此我们仅将其称为评论。如果您试图了解哪些变量是有用的,则可能是特定变量很关键,但仅适用于一小部分数据。您可以通过在节点级别装入变量来找出答案。在树级别使用装袋您将永远不会发现这一点。
meh

2
我敢肯定,布雷曼(Breiman)在他(imho)开创性的论文“统计-两种文化”中对此发表了评论。他的观点是,有时某个变量的重要性被另一个变量掩盖。在节点级别进行装袋将使您能够看到变量的内容和时间。
meh

1
感谢您的评论。回到我关于效率的想法:假设一对变量是相关的,正如您所说,一个变量的重要性“掩盖了”另一个变量的重要性。如果我们构建具有足够树木的RF预测器并使用树级特征子集,那么最终我们是否将没有足够的树木具有“遮罩”功能且没有“遮罩”功能,因此无法获得前者的重要性。后者?我确实认为我们至少在谈论大致相同的想法。谢谢!
djlid

4
您可能会考虑,但要考虑再增加几棵树!也不清楚。变量A可能会导致分裂,因此变量B都不亮。显然,从本质上讲,在节点级别进行采样更可靠。对我来说,它从根本上关系到引导应该是什么。
meh

Answers:


1

假设我们有10个特征f1,f2,...,f9,f10,然后当我们采用一个子集让我们假设树级别本身的特征f1,f3,f4,f8时,我们就采用这4个特征构造整棵树考虑在内。

我们计算熵,在每个节点上仅比较这4个特征,并采用产生最大熵的那个特征。这没什么用,因为我们仅将树学习限制为这4个功能。与此相反,当我们在第一节点取特征的子集,例如f1,f8,f9时,我们计算熵并在这三个特征中进行比较,然后选择给出最大值的特征。我们没有选择具有相同特征的树,而是选择了另一个特征子集,例如f4,f7,f2,然后根据这些特征进行拆分。假设在第一个节点上选择了f8,在第二个节点上选择了f2。模型能够了解这两者之间的关系,而不会

这样,模型可以以更加多样化的方式学习不同特征之间的关系。这种方法将在一棵树中探索许多功能,因此可以保留它们之间的关系。希望你现在明白了:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.