R(randomForest):无论我如何更改它,ntree = 1

时间:2017-05-16 22:20:57

标签: r random-forest

我使用randomForest包运行随机森林分类。当它完成后,我在我的分类器上输入了summary(),当我被告知默认值为500时,ntree参数似乎等于1,并且可以在randomForest的参数中手动更改,我尝试失败了。

我还尝试了另一个数据集,我遇到了同样的问题。有没有人知道可能会发生什么?

1 个答案:

答案 0 :(得分:2)

TL; DR:要获取模型的摘要,只需键入模型对象的名称即可。例如,如果模型对象为rf1,则为rf1,而不是summary(rf1)

大多数软件包都有一个摘要“方法”,当您对软件包生成的对象运行summary时,该方法将被调度。但是在randomForest的情况下,似乎没有摘要方法。 randomForest的输出是包含一堆模型输出的列表。当你在它上运行summary时,它只运行默认的summary函数,它返回每个列表元素的长度,这在这里不是很有用。

因此,在这种情况下,当您在summary模型对象上运行randomForest时,ntree的值为1,因为ntreerandomForest返回的列表元素,它是长度为1的向量。(请注意,summary输出的列名为Length。)

要查看模型结果的摘要,只需键入模型对象的名称,这将导致将实际摘要打印到控制台。例如,如果您的模型对象名为rf1,则只需键入rf1,而不是summary(rf1)。键入对象名称会导致调度print.randomForest方法,这会提供randomForest结果的摘要,包括ntree

如果要从模型中提取ntree或其他结果的值,请运行str(rf1)以查看randomForest返回的列表的结构,并查看帮助randomForest了解有关此列表中的内容的其他信息。例如,rf1$ntree将返回模型中树的数量。