2017-04-20 801 views
0

我在包含7个变量的大约1000个观测值的数据集上生长了一个随机森林模型(使用包'party'的cforest)。答案是二元的(比如结果A和结果B),6个预测变量都是分类的。我的问题是,我想获得1000个结果中的每一个的概率,例如在逻辑回归模型中。在后一种情况下,我们可以使用预测(yourmodel,type =“response”)来获得每个结果的概率,在这种情况下,当p> = 0.5时,结果A更受青睐,而结果B更受青睐。从随机森林中检索结果的概率

看来,当对一个随机森林物体应用预测时,我只能得到每个观测的预测结果(即A或B)。是否有解决方法来检索预测响应的概率?

非常感谢您的帮助!

C.B.

回答

2

从文档:

类型响应的一个,概率。或投票,表示输出的类型:预测值,类概率矩阵或投票计数矩阵。类是允许的,但自动转换为“响应”,以实现向后兼容。

那么试试这个:

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

谢谢你的帮助。我已经尝试过了,但我仍然只需要访问列表中每个元素的第二个元素。尝试以下方法返回第一行中第二个结果的概率: predict.prob < - < - probs [[1]] [2] 但是,我无法设法访问每行的概率,使用for-loop时,将其存储在向量中。 – CBechet

-1

我使用H2O随机森林包来训练我的模型。 在做预测时,每个观测返回一个概率值(由模型的置信度)

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

待办事项看看

+0

感谢您的分享。我不想使用另一个软件包,而且对我来说h2o似乎更加棘手。 – CBechet

0

现在我知道浩生成和提取的p值仿佛在看一个逻辑回归的预测响应:

1)生成两者的预测概率成果

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

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

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

我希望这将有助于兴趣,我们如何可以提取概率其他读者名单。

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

C.B.