我有这个(示例)代码,我试图了解一些特征。关于Random Forest
的问题很多,并且始终存在number of trees
和mtry
的问题。这个数据框只是一个例子,但我如何解释模型的图(错误),以便设置没有原因偏差的树的数量?此处No. of variables tried at each split
等于1(为什么?)
我认为tuneR
和train
可能会导致偏见,因此我想尝试根据错误找到trees
和mtry
(默认p / 3)的最佳数量。
#' an example of a data frame and the model
clin=data.frame(1:500)
clin$k=clin$X1.500*0.2
clin$z=clin$X1.500*14.1/6
names(clin)=c("pr1","pr2","res")
rf=randomForest(res~pr1+pr2,data=clin,ntree=1000,importance=TRUE,keep.inbag=T)
plot(rf)
rf
Call:
randomForest(formula = res ~ pr1 + pr2, data = clin, ntree = 1000, importance = TRUE, keep.inbag = T)
Type of random forest: regression
Number of trees: 1000
No. of variables tried at each split: 1
Mean of squared residuals: 2.051658
% Var explained: 100
答案 0 :(得分:1)
RF基于预测变量总数 p ( p / 3)的子集。在这个例子中,你只有2个预测因子来解释“res”。因此,RF只会随机选择一个。
应定义ntree 和 mtry ,以便您的结果保持一致。 如果将 ntree 设置得太低并多次计算RF,您会发现不同RF之间的RMSEP存在巨大差异。 mtry 也是如此。
A previous answer with reference to Breiman's paper on the matter
关于为拆分选择的预测变量进行编辑:当处理大量预测变量时(2绝对太低而无法充分利用RF),您可能会对变量重要性感兴趣,看看哪一个比其他变量更有意义。