2017-04-04 308 views
1

考慮我有一個像A的分類及其分類的結果給了我如下表:如何使用混淆矩陣的值繪製ROC曲線?

TP TN FP FN 
A 225 100 175 100 

TP是真陽性

TN是真陰性

FP是假模型正

FN是假陰性

如何我ca n繪製ROC的曲線曲線?

我知道,我可以定義一個變量,並嘗試基於A預測它,然後創建一個完全模擬上述值的數據幀,最後,我可以使用this代碼。但我認爲應該有一個更簡單的方法?

+0

ROC曲線繪製的概率,而不是「閾限」的預測。 嘗試從模型中獲取原始輸出。 – JanLauGe

回答

3

這是不可能的,因爲您對分類器的某個(未知)閾值只有一個混淆矩陣。 ROC曲線包含有關所有可能閾值的信息。

混淆矩陣對應於你的ROC曲線的單點:

靈敏度= TP/TP + FN
1 - Specificy = TN/TN + FP

+0

您對此有何看法? https://www.researchgate.net/post/How_can_I_draw_a_ROC_curve_having_TP_Rate_and_FP_Rate_Values – user5363938

+0

您應該針對不同的閾值建立這樣的表格,獲得不同的點以及ROC曲線的形狀。 – R18

+1

@ user5363938在鏈接的討論中,我們給出了每個觀察的分數和真實值。你只在你的問題中提供了一個混淆矩陣。 – AlexR

0

我不明白你爲什麼'd模擬一個新的變量。你基本上要求從單一點繪製曲線,這是不可能的。相反,您應該在訓練或測試數據中使用因變量來訓練模型。這將允許您找到您認爲最佳的截止點。

pROC軟件包允許我們輕鬆繪製ROC曲線。 假設我們有一個數據幀名爲測試和模型命名爲MyModel,我們可以使用這樣的事情:

library('pROC') 
plot(roc(test$y, predict(mymodel, test, type = "prob")) 
+0

請注意,ROC需要預測的_probability_而不是預測的_class_。 – AlexR