我使用预测函数根据模型预测结果。 我得到的是预测类的向量。我想检索相同的结果,而不是形式
1 class_1
2 class_1
3 class_4
4 class_2
我希望以
的形式提供结果 class_1 class_2 class_3 class_4
1 1 0 0 0
2 1 0 0 0
3 0 0 0 1
4 0 1 0 0
我尝试过type=class
和type=response
,但结果是一样的。
我对R来说是全新的,我仍然试图找到R的文档,但我认为这是微不足道的,我应该能够弄明白,尽管我很困难。
答案 0 :(得分:2)
查看了forecast.randomForest上的文档 https://cran.r-project.org/web/packages/randomForest/randomForest.pdf
类型的有效选择似乎是response
,prob
。或votes
。
使用下面的代码,我能够重现您的格式,但使用概率。
> predict(model, x, type='prob')
0 1
1 1.000 0.000
2 0.180 0.820
3 0.138 0.862
attr(,"class")
要获得布尔值,另一个选择是您可以对响应结果进行一次热编码
result_classes = list()
for (level in levels(y)){
result_classes[[level]] <- predict(model, x, type='response') == level
}
data.frame(result_classes )
结果:
X0 X1
1 TRUE FALSE
2 FALSE TRUE
3 FALSE TRUE