我在R语言中使用party
包的cforest
函数来计算条件推断树。与随机森林类似,我想获取基于OOB
数据的解释方差和变量重要性(我读到随机森林会返回基于OOB数据的解释方差和变量重要性)。为此,我使用了以下代码:
model <- party::cforest(y ~ x1 + x2 + x3 + x4 , data=trainings_set , control=cforest_unbiased(ntree=1000, minsplit=25 , minbucket=8 , mtry=4))model.pred <- predict(model, type="response" , OOB=TRUE)R2=1 - sum((trainings_set$y-model.pred)^2)/sum((trainings_set$y-mean(trainings_set$y))^2)varimp_model=party::varimp(model, conditional = TRUE, threshold = 0.2, OOB = TRUE)
我想知道OOB=TRUE
命令是否会导致模型预测和变量重要性基于训练集的OOB数据
返回?
我之前在不同的标题下发布过这个问题,现在重新发布(稍作修改),希望有人能提供答案?
回答:
cforest
函数中的OOB
参数用于定义袋外预测
的逻辑值。
只有当你在cforest
中传递newdata
参数时(通常是一个测试数据框架),这个参数才为TRUE
。如果newdata
参数存在并且你设置了OOB=TRUE
,那么你将在这个newdata
上获得袋外预测
。
希望这能解答你的疑问。