2017-04-20 802 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.