R预测 - 如何格式化输出

时间:2015-12-27 20:09:15

标签: r predict

我使用预测函数根据模型预测结果。 我得到的是预测类的向量。我想检索相同的结果,而不是形式

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=classtype=response,但结果是一样的。

我对R来说是全新的,我仍然试图找到R的文档,但我认为这是微不足道的,我应该能够弄明白,尽管我很困难。

1 个答案:

答案 0 :(得分:2)

查看了forecast.randomForest上的文档 https://cran.r-project.org/web/packages/randomForest/randomForest.pdf

类型的有效选择似乎是responseprob。或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