【发布时间】:2016-01-20 03:56:08
【问题描述】:
我使用randomForest 包来执行二进制分类。请问randomForest()如何确定每棵树的节点数?我认为节点的数量保存在 model$forest$nrnodes 中。我说的对吗?
在我的数据集中,我有 10,000 个正样本和 70,000 个负样本。除了树的数量 50,100,200 和 500 之外,我使用默认参数构建了几个模型。它们的性能非常相似。每个模型的节点数也差不多,1400左右。
能否解释一下这个 1400 是如何计算的?哪个参数用于控制每棵树的节点数?任何建议将不胜感激!
【问题讨论】:
-
对于分类,
randomForest完全构建树,直到每个节点有 5 个观察值。然后它将多数类作为预测。 -
节点总数将取决于构建树时
randomForest拆分的次数。正如@Zelazny7 提到的,每个“叶子”最终都会有 5 个观察值。 -
至于控制节点数的参数,取决于
maxnodes和ntree两个参数 -
@Zelazny7 我明白
maxnode定义了树大小的上限,如果树不是那么“大”,则不会影响大小。我不明白ntree在这里如何控制树的大小。