使用randomForest,我得到一个射频对象。
例如forest <- randomForest(as.formula(generic),data=train, mtry=2))
使用predict,我可以预测测试数据集上的响应。
反应为A、B或C。
prediction <- predict(forest, newdata=test, type='class')
mytable <- table(test$class_w,prediction)
sum(mytable[row(mytable) != col(mytable)]) / sum(mytable)#show error调用森林对象,我得到混淆矩阵:
A B C class.error
A 498 79 170 0.3333333
B 115 353 237 0.4992908
C 96 99 967 0.1678141例如测试数据集
id |class_w| valueA | valueB |
1 | C | 0.254 | 0.334 |
2 | A | 0.654 | 0.334 |
3 | A | 0.554 | 0.314 |
4 | B | 0.454 | 0.224 |
5 | C | 0.354 | 0.332 |
6 | C | 0.264 | 0.114 |
7 | C | 0.264 | 0.664 |我想知道我是否能够创建一个新的数据集,其中包含2列、上一次数据集的id和预测的响应( RF给出的)。例如。
row id of test dataset | predicted response
1 | A #failed
2 | B #failed
3 | B #failed
4 | B #TRUE!提前谢谢你的帮助。
发布于 2013-04-22 21:40:20
我认为您可能只是想创建一个新的数据框架:
data.frame(id = test$id,response = prediction)这假设id实际上是test中的列,而不是行名。如果它们是行名,则需要执行以下操作:
data.frame(id = rownames(id),response = prediction)发布于 2017-08-03 05:30:37
另一种方法就是写这样的东西:
yourNewDataSet$someNewColumnCreated= Predict(forest,yourNewDataSet,type="class")这将在新的数据集中提供一个名为“someNewColumnCreated”的新列。
当应用到这个新的数据集时,它将包含模型的所有预测。
https://stackoverflow.com/questions/16156414
复制相似问题