从随机森林中检索结果的概率

Retrieving probabilities of outcomes from a random forest

我在包含 7 个变量的大约 1000 个观察值的数据集上建立了一个随机森林模型(使用包 'party' 的 cforest)。响应是二元的(比如结果 A 和结果 B)并且 6 个预测变量都是分类的。我的问题是我想像在逻辑回归模型中那样获得 1000 个结果中每一个的概率。在后一种情况下,我们可以使用 predict(yourmodel, type="response") 来获得每个结果的概率,在这种情况下,当 p<0.5 时,结果 A 是有利的,而当 p>=0.5 时,结果 B 是有利的。

似乎在对随机森林对象应用预测时,我只能得到每次观察的预测结果(即 A 或 B)。是否有解决方法来检索预测响应的概率?

非常感谢您的帮助!

C.B.

来自文档:

type one of response, prob. or votes, indicating the type of output: predicted values,matrix of class probabilities, or matrix of vote counts. class is allowed, but automatically converted to "response", for backward compatibility.

所以试试这个:

probs <- predict(FIT, newdata, type="probs")

我使用 h2o randomforest 包来训练我的模型。 进行预测时,每个观察值都会返回一个概率值(对于模型的置信度)

https://cran.r-project.org/web/packages/h2o/h2o.pdf

一定要看看

现在我知道如何生成和提取 p 值,就像查看逻辑回归的预测响应一样:

1) 生成两种结果的预测概率

probs <- predict(FIT, newdata, type="prob") # thanks to thc

2) 检索每行第二个结果的概率,即逻辑回归中第二个级别的概率:

> predict.prob<-unlist(lapply(probs, '[[', 2))

我希望这会帮助其他对我们如何从列表中提取概率感兴趣的读者。

非常感谢 thc 和 tylers 的建议和帮助!

C.B.