Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 随机森林的含义';预测';组件及其与出袋错误的关系_R_Random Forest - Fatal编程技术网

R 随机森林的含义';预测';组件及其与出袋错误的关系

R 随机森林的含义';预测';组件及其与出袋错误的关系,r,random-forest,R,Random Forest,对随机森林对象预测值的解释是“基于袋外样本的输入数据预测值” 英语不是我的母语,我很难理解这个句子。我目前正在使用随机森林技术研究一个模拟回归问题。目标是在模拟中找出每个样本的包外误差。在搜索了一点之后,我找到了这个预测的组件 根据我从句子中了解到的情况,对于每棵树,predicted返回整个数据子集的预测值,该数据子集未用于该特定树。假设我在随机林中有N棵树,我将得到多少预测值 预测的结果能否用作OOB预测错误?假设我为第I棵树(rf$predicted[I])设置了predicted值。第i

对随机森林对象预测值的解释是“基于袋外样本的输入数据预测值”

英语不是我的母语,我很难理解这个句子。我目前正在使用随机森林技术研究一个模拟回归问题。目标是在模拟中找出每个样本的包外误差。在搜索了一点之后,我找到了这个
预测的
组件

根据我从句子中了解到的情况,对于每棵树,
predicted
返回整个数据子集的预测值,该数据子集未用于该特定树。假设我在随机林中有N棵树,我将得到多少预测值

预测的结果能否用作OOB预测错误?假设我为第I棵树(
rf$predicted[I]
)设置了
predicted
值。第i棵树的OOB错误是否由(rf$predicted[i]-response\u of_tree\u i)给出


非常感谢。

第i个
预测值
返回所有将第i个值作为OOB的树的预测值的平均值

例如:

library(randomForest)
library(MASS)

set.seed(111)
rf = randomForest(medv ~ .,data=Boston,keep.forest=TRUE,keep.inbag=TRUE)

dim(Boston)
[1] 506  14

dim(rf$inbag)
[1] 506 500
因此,对于第一次观察,在198棵树中发现了这种现象:

table(rf$inbag[1,]==0)

FALSE  TRUE 
  302   198 
如果您想得到所有树的预测值,可以使用predict,然后计算出您看到的预测值是作为OOB的树中第i个预测值的平均值:

allpred = predict(rf,newdata=Boston,predict.all=TRUE)$individual

rf$predicted[1]
       1 
28.70521 

mean(allpred[1,rf$inbag[1,]==0])
[1] 28.70521
因此,预测值可以用作整个模型的OOB,而不是单个树木,因为它对随机森林模型不感兴趣。您也可以在对象中看到这一点,其中,
rf$mse
是第i棵树的均方误差,因此在500棵树上,您得到了模型的最终mse:

rf$mse[length(rf$mse)]
[1] 9.902396

mean((rf$predicted-rf$y)^2)
[1] 9.902396
如果您想计算每棵树的OOB错误,请记住它不是与随机林相关联的常规OOB,您必须正确定义它。你也可以在这篇文章中阅读随机森林