首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于随机森林对象预测响应的填充数据

基于随机森林对象预测响应的填充数据
EN

Stack Overflow用户
提问于 2013-04-22 20:47:49
回答 2查看 1.2K关注 0票数 1

使用randomForest,我得到一个射频对象。

例如forest <- randomForest(as.formula(generic),data=train, mtry=2))

使用predict,我可以预测测试数据集上的响应。

反应为A、B或C。

代码语言:javascript
复制
prediction <- predict(forest, newdata=test, type='class')
mytable <- table(test$class_w,prediction)
sum(mytable[row(mytable) != col(mytable)]) / sum(mytable)#show error

调用森林对象,我得到混淆矩阵:

代码语言:javascript
复制
     A     B    C     class.error
A   498    79   170   0.3333333
B   115    353  237   0.4992908
C   96     99   967   0.1678141

例如测试数据集

代码语言:javascript
复制
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给出的)。例如。

代码语言:javascript
复制
row id of test dataset  |  predicted response
1                       |  A  #failed
2                       |  B  #failed
3                       |  B  #failed
4                       |  B  #TRUE!

提前谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-22 21:40:20

我认为您可能只是想创建一个新的数据框架:

代码语言:javascript
复制
data.frame(id = test$id,response = prediction)

这假设id实际上是test中的列,而不是行名。如果它们是行名,则需要执行以下操作:

代码语言:javascript
复制
data.frame(id = rownames(id),response = prediction)
票数 3
EN

Stack Overflow用户

发布于 2017-08-03 05:30:37

另一种方法就是写这样的东西:

代码语言:javascript
复制
yourNewDataSet$someNewColumnCreated= Predict(forest,yourNewDataSet,type="class")

这将在新的数据集中提供一个名为“someNewColumnCreated”的新列。

当应用到这个新的数据集时,它将包含模型的所有预测。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16156414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档