随机森林:如果测试集也被标记,它会有什么不同吗?

时间:2013-07-05 00:35:46

标签: r random-forest supervised-learning

我可以找到使用随机森林进行预测的所有示例已经具有实际答案(即测试集具有标签)。如果没有该栏,你会怎么做?

例如,本教程使用虹膜数据:http://mkseo.pe.kr/stats/?p=220

如果我们这样做是真的,那么测试数据集会有列[1,4]而不是第5列。如果你尝试在没有第5列的情况下运行它,它会引发一个错误,即数据帧的大小不同,哪个,显然他们不是。

当您还没有一列答案时,如何进行预测?

编辑 使用以上链接的摘录进行澄清:

准备培训和测试集。

 test = iris[ c(1:10, 51:60, 101:110), ]
 train = iris[ c(11:50, 61:100, 111:150), ]

测试数据框具有完整的种类列。我试图根据我从训练集中生长的森林来预测物种。所以我所处的位置是在跑完之后:

 test <- test[-5] 

如果我出去收集了一堆植物测量结果并想根据我从训练数据中增长的树模型了解物种,我现在处于我所处的位置。那么,如何基于测试数据框中的剩余数据和使用训练数据框增长的森林来预测我刚刚删除的Species列?

1 个答案:

答案 0 :(得分:9)

虽然您引用的教程在Species集中有test列,但您猜测的predict函数不需要它:

library(randomForest)
test  <- iris[ c(1:10, 51:60, 101:110), -5]  # removed the Species column here.
train <- iris[ c(11:50, 61:100, 111:150), ]
r <- randomForest(Species ~., data=train, importance=TRUE, do.trace=100)
predict(r, test)