ROC曲線
- 定義
在信號檢測理論中,接收者操作特徵曲線(receiver operating characteristic curve,或者叫ROC曲線)是一種座標圖式的分析工具,用於
(1) 選擇最佳的信號偵測模型、捨棄次佳的模型。
(2) 在同一模型中設定最佳閾值。
這裏我們只要記得
ROC曲線
主要是用來確定一個模型的 閾值。
-
理解
既然我們想要直白來理解 ROC曲線,那麼例子是肯定少不了的:
假設1:感冒有三種特徵,咳嗽,發燒,流鼻涕。
假設2:如果想確定一個人是否得了感冒,可以根據三種特徵來打分,每個特徵可以打 0-1 分。打分越高,得感冒概率越高。
假設3:現在你是一個醫生,有100個病人來看病,你需要根據這些人的三個感冒特徵給他們打分,得到如下一組數據(編號,分數)
:(1,2) (2,2.4) (2,0.4)....(100,3)
假設4:我是一個神醫,能百分百確定別人是否得了感冒。然後我看了你的報告,並給每個數據都給了確定的答案,所以數據就變成了
(編號,是否真感冒,分數)
(其中感冒60人,正常40人)(1,0,2) (2,1,2.4) (2,0,0.4)....(100,1,3)
好了,現在問題來了,你是給每個病人打分了,病人也知道分數越高得感冒得概率越高,但是,到底得沒得感冒卻沒有一個標準,這個標準就是上面說的 閾值,所以接下來就是要想辦法確定這個 閾值或者標準了,那麼我們採用辦法呢?對於這種 二分類 問題的閾值,就是我們 ROC 曲線大展身手的時候了。
-
ROC 曲線 和 閾值
- 閾值比較小的時候:
如果我們認爲打 1 分以上的就是感冒患者,那麼只要有一點症狀就可以確診爲感冒了,這時候100個人,確診感冒的可能有 80 人,但是實際呢?可能80個人中只有50個是真感冒的,。如下圖
閾值=1 診斷感冒 診斷正常 合計 真感冒 50 10 60 真正常 30 10 40 合計 80 20 100 - 閾值比較大的時候:
如果我們認爲打 2 分以上的纔是感冒患者,這時候100個人,確診感冒的可能有 20 人,但是實際呢?真正感冒的可是60人,你確診20個,可能其中還有一個是誤診呢?如下圖
閾值=2 診斷感冒 診斷正常 合計 真感冒 19 41 60 真正常 1 39 40 合計 20 80 100 那麼我們期望的是閾值不大不小,換句話理解就是,我們希望得到一個使得
診斷感冒
/真感冒
趨於 1(如果你感冒了,我們儘量確診),診斷感冒
/真正常
趨於 0(如果你正常,儘量不誤診)的閾值。在 ROC曲線中我們叫做 真陽率 和 假陽率-
所以我們一點點改變閾值,就可以得到一組又一組的
真陽率 和 假陽率
,將這一組組真陽率 和 假陽率
在座標軸上表示出來,就是我們要的 ROC曲線,通過圖形化,我們就可以很直觀的取一個合適的閾值了。(這個圖只是隨便在網上找的,可不是這個列子的圖噢,我們大概看下 ROC曲線的 樣子就好了,哈哈)
- 閾值比較小的時候:
好了,到這裏我們大概就講了下 ROC曲線 的由來:主要就是爲了方便我們直觀的求一個合適的 閾值罷了,並沒有什麼太高深的東西,值得一提的是,ROC 是從 預測爲真的角度來看待問題的,所以我們只需要考慮 診斷感冒 這個方面來計算