我在数据集上增加了一个随机森林模型(使用包'party'的cforest),该数据集包含大约1000个7个变量的观测值。响应是二元的(比如结果A和结果B),6个预测因子都是分类的。我的问题是,我希望得到1000个结果中每个结果的概率,就像在逻辑回归模型中一样。在后一种情况下,我们可以使用predict(yourmodel,type =“response”)来获得每个结果的概率,在这种情况下,当p <0.5时结果A是有利的,而当p> = 0.5时结果B是有利的。
似乎在对随机森林对象应用预测时,我只得到每个观察的预测结果(即A或B)。是否有解决方法来检索预测响应的概率?
非常感谢你的帮助!
C.B。
答案 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
看一看