準確率&&精確率&&召回率&&ROC

分類

邏輯迴歸返回的是機率。您能夠「原樣」使用返回的機率(例如,用戶點擊此廣告的機率爲 0.00023),也能夠將返回的機率轉換成二元值(例如,這封電子郵件是垃圾郵件)。爲了將邏輯迴歸值映射到二元類別,您必須指定分類閾值(也稱爲斷定閾值)。若是值高於該閾值,則表示「垃圾郵件」;若是值低於該閾值,則表示「非垃圾郵件」。人們每每會認爲分類閾值應始終爲 0.5,但閾值取決於具體問題,所以您必須對其進行調整算法

選定分類閾值以後, 如何評估相應模型的質量呢?,咱們須要一些新指標,迴歸指標並不夠用。機器學習

讓咱們來試着計算一下如下模型的準確率,該模型將 100 個腫瘤分爲惡性 (正類別)或良性(負類別):學習

clipboard.png

準確率

準確率是指咱們的模型預測正確的結果所佔的比例優化

clipboard.png

準確率爲 0.91,即 91%(總共 100 個樣本中有 91 個預測正確)。這表示咱們的腫瘤分類器在識別惡性腫瘤方面表現得很是出色,對吧?spa

實際上,只要咱們仔細分析一下正類別和負類別,就能夠更好地瞭解咱們模型的效果。3d

在 100 個腫瘤樣本中,91 個爲良性(90 個 TN 和 1 個 FP),9 個爲惡性(1 個 TP 和 8 個 FN)。blog

在 91 個良性腫瘤中,該模型將 90 個正確識別爲良性。這很好。不過,在 9 個惡性腫瘤中,該模型僅將 1 個正確識別爲惡性。這是多麼可怕的結果!9 個惡性腫瘤中有 8 個未被診斷出來!排序

雖然 91% 的準確率可能乍一看還不錯,但若是另外一個腫瘤分類器模型老是預測良性,那麼這個模型使用咱們的樣本進行預測也會實現相同的準確率(100 箇中有 91 個預測正確)。換言之,咱們的模型與那些沒有預測能力來區分惡性腫瘤和良性腫瘤的模型差很少。ip

當您使用分類不平衡的數據集(好比正類別標籤和負類別標籤的數量之間存在明顯差別)時,單單準確率一項並不能反映全面狀況,準確率指標的效果就會大打折扣。假設有一個用於預測展現廣告的廣告點擊率的模型, 咱們要嘗試使用準確率指標來評估此模型的質量。對於展現廣告,點擊率一般爲 千分之1、萬分之一,甚至更低。it

精確率

(全部預測爲正的樣本中,實際也爲正的比例有多少)
在被識別爲正類別的樣本中,實際上確實爲正類別的比例是多少?

精確率的定義以下:

clipboard.png

正:表示預測結果爲正; 真正例TP:表示預測爲正,實際也爲正; 假正例FP:表示預測爲正,但實際不爲正
來來計算一下上一部分中用於分析腫瘤的機器學習模型的精確率:

clipboard.png

clipboard.png

該模型的精確率爲 0.5,也就是說,該模型在預測惡性腫瘤方面的正確率是 50%。

召回率

(全部實際爲正的樣本中,預測也爲正的比例有多少)
全部實際上爲正類別樣本中,被正確預測爲正類別的比例是多少?

clipboard.png

讓咱們來計算一下腫瘤分類器的召回率:

clipboard.png

該模型的召回率是 0.11,也就是說,該模型可以正確識別出全部惡性腫瘤的百分比是 11%。

精確率和召回率:一場拔河比賽

要全面評估模型的有效性,必須同時檢查精確率和召回率。遺憾的是,精確率和召回率每每是此消彼長的狀況。也就是說,提升精確率一般會下降召回率值,反之亦然。請觀察下圖來了解這一律念,該圖顯示了電子郵件分類模型作出的 30 項預測。分類閾值右側的被歸類爲「垃圾郵件」,左側的則被歸類爲「非垃圾郵件」

電子郵件歸類爲垃圾郵件或非垃圾郵件的樣本數據:

clipboard.png

此時的精確率爲:預測爲正的樣本(8個TP,2個FP)中實際也爲正(8個TP)的比例: 8/(2+8)=0.8
召回率:實際爲正的樣本(共11個TP),預測也爲正(閾值右邊有8個TP)的比例:8/(8+3) =0.73

此時咱們提升閾值

clipboard.png

精確率:7/(7+1) = 0.88
召回率: 7/(7+4) = 0.64

相反,下降閾值

clipboard.png

精確率:9/(9+3) = 0.75
召回率: 9/(9+2) = 0.82

因此,通常來講,提升分類閾值會減小假正例,從而提升精確率。下降分類閾值會提升召回率。
他們之間的關係有點像另可錯殺一千,不可放過一個壞人和另可放過一千,不可錯殺一個好人的關係。

ROC 曲線

咱們選擇特定的分類閾值後, 精確率和召回率值便均可以肯定。但咱們可能沒法事先得知最合適的分類閾值, 而咱們仍然想知道咱們的模型質量如何。合理的作法是嘗試使用 許多不一樣的分類閾值來評估咱們的模型。事實上,咱們有一個指標可衡量 模型在全部可能的分類閾值下的效果。該指標稱爲ROC曲線,即接收者操做特徵曲線。

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

clipboard.png

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

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

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

clipboard.png

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

clipboard.png

曲線下面積表示隨機正類別(綠色)樣本位於隨機負類別(紅色)樣本右側的機率。

曲線下面積的取值範圍爲 0-1。預測結果 100% 錯誤的模型的曲線下面積爲 0.0;而預測結果 100% 正確的模型的曲線下面積爲 1.0。

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

  • 曲線下面積的尺度不變。它測量預測的排名狀況,而不是測量其絕對值。(只能比較兩個預測模型得分高低,不能給出模型的具體得分分數,這個分數接近於曲面積的大小,只有一個曲面徹底含括另一個曲面才能說是一個模型比另一個模型要好)
  • 曲線下面積的分類閾值不變。它測量模型預測的質量,而不考慮所選的分類閾值(用來構造ROC曲線的分類閾值是一組全部可能被考慮的數值,並非按須要特定的)

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

  • 並不是老是但願尺度不變。 例如,有時咱們很是須要被良好校準的機率輸出,而曲線下面積沒法告訴咱們這一結果。
  • 並不是老是但願分類閾值不變。 在假負例與假正例的代價存在較大差別的狀況下,儘可能減小一種類型的分類錯誤可能相當重要。例如,在進行垃圾郵件檢測時,您可能但願優先考慮儘可能減小假正例(即便這會致使假負例大幅增長)。對於此類優化,曲線下面積並不是一個實用的指標。
相關文章
相關標籤/搜索