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

时间:2017-04-20 23:26:46

标签: r random-forest predict

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

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

非常感谢你的帮助!

C.B。

3 个答案:

答案 0 :(得分:3)

来自文档:

  

输入一个响应,prob。或投票,表明输出的类型:预测值,类概率矩阵或投票计数矩阵。允许使用class,但会自动转换为&#34; response&#34;,以便向后兼容。

所以试试这个:

declare var testJS: any;

答案 1 :(得分:0)

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

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

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

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

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

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

我要感谢thc和tylers的建议和帮助!

C.B。

答案 2 :(得分:-1)

我使用h2o randomforest包来训练我的模型。 在进行预测时,每次观察返回一个概率值(由模型确定其置信度)

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

看一看