在随机森林中的树中的每个节点处随机选择变量

Posted

技术标签:

【中文标题】在随机森林中的树中的每个节点处随机选择变量【英文标题】:selecting variable randomly at each node in a tree in Random Forest 【发布时间】:2017-09-03 11:23:18 【问题描述】:

在随机森林方法中,对于每棵树,我们随机选择一组固定大小的变量(特征)。但是,一旦为特定树冻结了该集合,该树的行为是否像常规决策树算法一样?

我假设随机森林只不过是生成一堆经典的“决策树”并为最终分类投票。但是在许多地方,我读过的任何描述似乎都表明了这一点;对于森林中的给定决策树,即使在每个节点上,我们也会随机选择变量。是这样吗?

这是否意味着在树中的每个节点处,我们从为该树固定的变量集中随机选择 m 个变量?还是来自训练数据集的全局变量集?然后从选定的变量集中我们启发式地选择 1 个变量(例如,使信息增益最大化的变量)——这是一个正确的说法吗?

【问题讨论】:

【参考方案1】:

“在随机森林方法中,对于每棵树,我们随机选择一组固定大小的变量(特征)。但是一旦该集合针对特定树冻结,树的行为是否像常规决策树算法一样”

没有

“我假设随机森林只不过是生成一堆经典的“决策树”并为最终分类投票。但在许多地方,无论我读过什么描述似乎都暗示了这一点;对于给定的决策树在森林中甚至在每个节点上我们都随机选择变量。是这样吗?”

是的

“这是否意味着在树中的每个节点处,我们从为该树固定的变量集中随机选择m个变量?

这有点令人困惑,这是假设为可以选择 m 的那棵树保留了另一个更大的子集吗?如果不是这个假设,我认为这本质上是在询问树是否在每个节点的同一组随机选择的特征下生长,答案是否定的。

在随机森林中,每个节点都会对特征进行随机化。因此,如果总共有 100 个预测变量,则对于树中的每个节点,随机选择 10 个(比如说)的子集并评估最佳分割。请注意,在树的整个生长过程中,每个节点中的树数保持不变。

希望这会有所帮助。

【讨论】:

以上是关于在随机森林中的树中的每个节点处随机选择变量的主要内容,如果未能解决你的问题,请参考以下文章

决策树与随机森林

随机森林树生长算法

如何绘制从使用 R 中的“caret”包创建的随机森林中选择的树

随机森林

随机森林中的树细节

机器学习-决策树和随机森林