randomForestSRC 预测值

标签 r

我一直在尝试使用 R 包“randomForestSRC”来预测一些东西,但是在运行“rfsrc”和“predict.rfsrc”之后。两者都有一个称为预测的返回,但预测值似乎与我的任何值都不相关。有谁知道这些预测值是多少?

我运行的命令:(这是来自他们在文档中的示例)

data(veteran, package = "randomForestSRC")
train <- sample(1:nrow(veteran), round(nrow(veteran) * 0.80))
veteran.grow <- rfsrc(Surv(time, status) ~ ., veteran[train, ], ntree = 100)
veteran.pred <- predict(veteran.grow, veteran[-train , ])

预测值:
veteran.pred$predicted
[1] 49.96350 58.45100 38.28317 63.17000 67.56917 57.45633 66.23733 54.81967 72.60817 47.71083 43.94983 37.85000
[13] 41.80333 47.84233 85.81488 70.49050 92.45600 70.95321 85.63933 45.38833 66.74655 76.46067 52.68717 68.90750
[25] 85.17983 43.31617 48.80267

最佳答案

来自 rfsrc 的预测值和 predict.rfsrc是基于所有构建的树的预测,分别使用训练数据和测试数据。

#In-bag predicted value for the first case in training data
veteran.grow$predicted[1]
> 80.56843

#Prediction based on all trees for the same case
predict(veteran.grow, 
        newdata=veteran[train[1],])$predicted
> 80.56843

rfsrc也返回 out-of-bag predictionpredicted.oob .这是基于在建筑过程中没有使用案例的树木。例如,如果案例 1 用于树 1 到 30,则案例 1 的 OOB 预测将基于树 31 到 100,而不是所有树。
#Keeping the info about nodes of each tree
veteran.grow <- rfsrc(Surv(time, status) ~ ., veteran[train, ], ntree = 100, 
  membership=T)

#Out-of-bag predicted value for the first case
veteran.grow$predicted.oob[1]
> 72.88305

#Prediction based on the trees that case 1 was not included in
ind = which(veteran.grow$inbag[1,]==0)
predict(veteran.grow, 
        newdata=veteran[train[1],], 
        get.tree=ind)$predicted
> 72.88305

关于randomForestSRC 预测值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37974572/

相关文章:

r - 从一台 Linux 服务器复制旧的 R 包并将它们安装在新服务器上

r - 如何计算列中非空的元素

R图形: Add labels to stacked bar chart

r - dplyr - 检查月份是否存在,如果没有,则用 NA 添加它

r - 如何重写这些 for 循环以在 R 中应用

r - 加速计算

r - glmnet 模型性能与 boosting 算法的比较

r - 防止表格在 Rmarkdown 中被拆分

R: strptime() 和 is.na() 意外的结果

r - 有什么办法让R Shiny支持多用户吗?我说的是数百个并发用户