我能找到的所有使用随机森林进行预测的例子都已经有了实际的答案(即测试集有标签)。没有那个专栏的时候怎么办?
例如,本教程使用虹膜数据: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
集中有 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)
关于随机森林 : Does it make any difference if the test-set is also labeled?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17479632/