Roc

從列聯表計算ROC曲線下面積的公式是什麼?

  • October 17, 2018

例如,如果我的表是:

               True Value (gold standard)
                  Positive  | Negative |
        |        |          |          |
Test     | Pos    |    A     |     B    |   
Result   |        |          |          |
        | Neg    |    C     |     D    |
        |        |          |          |

在一般情況下:你不能

ROC 曲線顯示靈敏度和特異性如何在每個可能的閾值下變化。已在單個閾值處計算了一個列聯表,而有關其他閾值的信息已丟失。因此,您無法根據此匯總數據計算 ROC 曲線。

但是我的分類器是二元的,所以我只有一個閾值

二元分類器並不是真正的二元分類器。儘管它們可能隻公開最終的二元決策,但我所知道的所有分類器都依賴於一些底層的定量估計。

  • 二叉決策樹?嘗試構建回歸樹。
  • 分類器 SVM?做一個支持向量回歸。
  • 邏輯回歸?訪問原始概率。
  • 神經網絡?改為使用最後一層的數字輸出。

這將使您有更多的自由來選擇最佳閾值,以獲得滿足您需求的最佳分類。

但我真的很想

你真的不應該。具有很少閾值的 ROC 曲線顯著低估了曲線下的真實面積 (1)。具有單點的 ROC 曲線是最壞的情況,任何與連續分類器的比較都是不准確和誤導的。

只要給我答案!

好吧,好吧,你贏了。對於一個點,我們可以將 AUC 視為兩個三角形 T 和 U 的總和:

具有單個 (SP, SE) 對和兩個三角形的 ROC 曲線

我們可以根據列聯表(您定義的 A、B、C 和 D)獲取它們的區域:

$$ \begin{align*} T = \frac{1 \times SE}{2} &= \frac{SE}{2} = \frac{A}{2(A + C)} \ U = \frac{SP \times 1}{2} &= \frac{SP}{2} = \frac{D}{2(B + D)} \end{align*} $$

獲取 AUC: $$ \begin{align*} AUC &= T + U \ &= \frac{A}{2(A + C)} + \frac{D}{2(B + D)} \ &= \frac{SE + SP}{2} \end{align*} $$

總結

您可以從混淆矩陣技術上計算二元分類器的 ROC AUC。但以防萬一我不清楚,讓我最後再說一遍:不要這樣做!

參考

(1) DeLong ER、DeLong DM、Clarke-Pearson DL:比較兩個或多個相關接收器操作特性曲線下的面積:一種非參數方法。生物識別 1988,44:837-845。 https://www.jstor.org/stable/2531595

引用自:https://stats.stackexchange.com/questions/372236

comments powered by Disqus