我使用Caret包中的Random Forest方法对我的数据进行了交叉验证,R表示最终模型是使用mtry = 34构建的,这是否意味着在最终的随机森林中(由交叉验证产生)只有34个变量我的数据集中的参数用于在树中拆分?
const int
答案 0 :(得分:1)
randomForest的文档:
mtry:随机抽样为每个变量的变量数 分裂。
在这种情况下,最终模型考虑树中每个拆分的34个随机变量。
答案 1 :(得分:1)
由于您使用caret
软件包构建了随机森林,因此建议使用$finalModel
获取最终模型的摘要,该模型是使用pre选择的模型-defined参数(默认值:OOB准确度)。
现在回答你的问题:
从下面的图片中,您可以看到随机森林从每个分割中随机选择34(我的例子是31,但你得到了点)变量。根据您的问题,不与仅使用34个变量来增长每棵树相混淆。实际上,所有变量都用在足够大的随机森林中;仅在每个节点上,从34的池中挑选一个变量以减少模型的方差。这使得每棵树彼此更加独立,因此,对大量树木进行平均的收益更为显着。
每棵树的树木生长过程如下(粗体用于强调,假设您正在使用randomForest
或{{1}的caret
实施直接):
randomForest
)的数字,以便在每个节点拆分时,m
变量随机选出M
并且m
中的最佳候选者(通过信息增益衡量)用于拆分节点。 M
在森林生长期间是一个常数对于2个月的迟到回答感到抱歉,但我认为这是一个很好的问题,如果它没有得到关于m
参数真正做什么的更详细的解释,那将是一种耻辱。这经常被误解,所以我想我会在这里添加一个答案!