R predict - 如何格式化输出

R predict - How to format output

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

形式
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 文档的方法,但我认为这是我应该能够弄清楚的微不足道的事情,尽管我很困惑。

查看 predict.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