ROC與AUC隨記

developers.google.com/machine-lea…算法

混淆矩陣

咱們作出如下定義:優化

  • 「狼來了」是正類別。
  • 「沒有狼」是負類別。

咱們可使用一個 2x2 混淆矩陣來總結咱們的「狼預測」模型,該矩陣描述了全部可能出現的結果(共四種): google

行是預測結果,列是真實結果

真正例是指模型將正類別樣本正確地預測爲正類別。一樣,真負例是指模型將負類別樣本正確地預測爲負類別。3d

假正例是指模型將負類別樣本錯誤地預測爲正類別,而假負例是指模型將正類別樣本錯誤地預測爲負類別。cdn

準確率

準確率是指咱們的模型預測正確的結果所佔的比例。正式點說,準確率的定義以下: blog

對於二元分類,也能夠根據正類別和負類別按以下方式計算準確率:
其中,TP = 真正例,TN = 真負例,FP = 假正例,FN = 假負例。

精確率

在被識別爲正類別的樣本中,確實爲正類別的比例是多少?排序

精確率的定義以下: get

召回率

在全部正類別樣本中,被正確識別爲正類別的比例是多少?數學

從數學上講,召回率的定義以下: it

F1-score

反映了模型的穩健型

ROC 曲線

ROC 曲線(接收者操做特徵曲線)是一種顯示分類模型在全部分類閾值下的效果的圖表。該曲線繪製瞭如下兩個參數:

  • 真正例率
  • 假正例率

真正例率 (TPR) 是召回率的同義詞,所以定義以下:

假正例率 (FPR) 的定義以下:

ROC 曲線用於繪製採用不一樣分類閾值時的 TPR 與 FPR。下降分類閾值會致使將更多樣本歸爲正類別,從而增長假正例和真正例的個數。下圖顯示了一個典型的 ROC 曲線。

爲了計算 ROC 曲線上的點,咱們可使用不一樣的分類閾值屢次評估邏輯迴歸模型,但這樣作效率很是低。幸運的是,有一種基於排序的高效算法能夠爲咱們提供此類信息,這種算法稱爲曲線下面積。

曲線下面積:ROC 曲線下面積

AUC (Area Under Curve) 被定義爲ROC曲線下的面積,顯然這個面積的數值不會大於1。又因爲ROC曲線通常都處於y=x這條直線的上方,因此AUC的取值範圍通常在0.5和1之間。使用AUC值做爲評價標準是由於不少時候ROC曲線並不能清晰的說明哪一個分類器的效果更好,而做爲一個數值,對應AUC更大的分類器效果更好。

曲線下面積表示「ROC 曲線下面積」。也就是說,曲線下面積測量的是從 (0,0) 到 (1,1) 之間整個 ROC 曲線如下的整個二維面積

曲線下面積對全部可能的分類閾值的效果進行綜合衡量。曲線下面積的一種解讀方式是看做模型將某個隨機正類別樣本排列在某個隨機負類別樣本之上的機率。如下面的樣本爲例,邏輯迴歸預測從左到右以升序排列:

曲線下面積因如下兩個緣由而比較實用:

  • 曲線下面積的尺度不變。它測量預測的排名狀況,而不是測量其絕對值。
  • 曲線下面積的分類閾值不變。它測量模型預測的質量,而不考慮所選的分類閾值。

不過,這兩個緣由都有各自的侷限性,這可能會致使曲線下面積在某些用例中不太實用:

  • 並不是老是但願尺度不變。 例如,有時咱們很是須要被良好校準的機率輸出,而曲線下面積沒法告訴咱們這一結果。

  • 並不是老是但願分類閾值不變。 在假負例與假正例的代價存在較大差別的狀況下,儘可能減小一種類型的分類錯誤可能相當重要。例如,在進行垃圾郵件檢測時,您可能但願優先考慮儘可能減小假正例(即便這會致使假負例大幅增長)。對於此類優化,曲線下面積並不是一個實用的指標。

相關文章
相關標籤/搜索