考慮我有一個像A
的分類及其分類的結果給了我如下表:如何使用混淆矩陣的值繪製ROC曲線?
TP TN FP FN
A 225 100 175 100
TP是真陽性
TN是真陰性
FP是假模型正
FN是假陰性
如何我ca n繪製ROC的曲線曲線?
我知道,我可以定義一個變量,並嘗試基於A預測它,然後創建一個完全模擬上述值的數據幀,最後,我可以使用this代碼。但我認爲應該有一個更簡單的方法?
考慮我有一個像A
的分類及其分類的結果給了我如下表:如何使用混淆矩陣的值繪製ROC曲線?
TP TN FP FN
A 225 100 175 100
TP是真陽性
TN是真陰性
FP是假模型正
FN是假陰性
如何我ca n繪製ROC的曲線曲線?
我知道,我可以定義一個變量,並嘗試基於A預測它,然後創建一個完全模擬上述值的數據幀,最後,我可以使用this代碼。但我認爲應該有一個更簡單的方法?
這是不可能的,因爲您對分類器的某個(未知)閾值只有一個混淆矩陣。 ROC曲線包含有關所有可能閾值的信息。
混淆矩陣對應於你的ROC曲線的單點:
靈敏度= TP/TP + FN
1 - Specificy = TN/TN + FP
您對此有何看法? https://www.researchgate.net/post/How_can_I_draw_a_ROC_curve_having_TP_Rate_and_FP_Rate_Values – user5363938
您應該針對不同的閾值建立這樣的表格,獲得不同的點以及ROC曲線的形狀。 – R18
@ user5363938在鏈接的討論中,我們給出了每個觀察的分數和真實值。你只在你的問題中提供了一個混淆矩陣。 – AlexR
我不明白你爲什麼'd模擬一個新的變量。你基本上要求從單一點繪製曲線,這是不可能的。相反,您應該在訓練或測試數據中使用因變量來訓練模型。這將允許您找到您認爲最佳的截止點。
pROC軟件包允許我們輕鬆繪製ROC曲線。 假設我們有一個數據幀名爲測試和模型命名爲MyModel,我們可以使用這樣的事情:
library('pROC')
plot(roc(test$y, predict(mymodel, test, type = "prob"))
請注意,ROC需要預測的_probability_而不是預測的_class_。 – AlexR
ROC曲線繪製的概率,而不是「閾限」的預測。 嘗試從模型中獲取原始輸出。 – JanLauGe