3

我能找到的所有使用随机森林进行预测的例子都已经有了实际的答案(即测试集有标签)。当你没有那个专栏时你会怎么做?

例如本教程使用虹膜数据: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 列?

4

1 回答 1

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)
于 2013-07-05T01:21:13.130 回答