分類算法中的ROC與PR指標

基本概念

  1. True Positives,TP:預測爲正樣本,實際也爲正樣本的特徵數
  2. False Positives,FP:預測爲正樣本,實際爲負樣本的特徵數(錯預測爲正樣本了,所以叫False)
  3. True Negatives,TN:預測爲負樣本,實際也爲負樣本的特徵數
  4. False Negatives,FN:預測爲負樣本,實際爲正樣本的特徵數(錯預測爲負樣本了,所以叫False)

接着往下做做小學的計算題:

  • TP+FP+FN+FN:特徵總數(樣本總數)
  • TP+FN:實際正樣本數
  • FP+TN:實際負樣本數
  • TP+FP:預測結果爲正樣本的總數
  • TN+FN:預測結果爲負樣本的總數

有些繞,爲做區分,可以這樣記:相同的後綴(P或N)之和表示__預測__正樣本/負樣本總數,前綴加入T和F;實際樣本總數的4個字母完全不同,含TP(正正得正)表示實際正樣本,含FP(負正得負)表示實際負樣本。

ROC曲線和PR曲線

True Positive Rate(TPR)和False Positive Rate(FPR)分別構成ROC曲線的y軸和x軸。

  1. TPR=TP/(TP+FN),實際正樣本中被預測正確的概率
  2. FPR=FP/(FP+TN),實際負樣本中被錯誤預測爲正樣本的概率

實際學習算法中,預測率100%的話,TPR=100%和FPR=0,所以TPR越大而FPR越小越好。僅用其中一個作爲衡量指標可以嗎?考慮這麼一種情況,一幅圖片假如600x480個像素,其中目標(正樣本)僅有100個像素,假如有某種算法,預測的目標爲包含所有像素600x480,這種情況下TPR的結果是TPR=100%,但FPR卻也接近於100%。明顯,TPR滿足要求但結果卻不是我們想要的,因爲FPR太高了。

Precision和Recall(有人中文翻譯成召回率)則分別構成了PR曲線的y軸和x軸。

  1. Precision=TP/(TP+FP),預測結果爲有多少正樣本是預測正確了的
  2. Recall=TP/(TP+FN),召回率很有意思,這個其實就=TPR,相對於Precision只不過參考樣本從預測總正樣本數結果變成了實際總正樣本數。

同理,Precision和Recall同時考慮才能確定算法好壞。好了,原來一切盡在盡在下圖中,

圖:Confusion Matrix

圖:Confusion Matrix

既然ROC和PR都是同時要考慮兩個指標,一個我好一個你好,到底誰好?畫到ROC空間一看便知,如下圖,將TPR和FPR分別畫在兩個座標軸上,則沿着對角線的方向,離右上角越近,算法效果越好。(由於ROC和PR類似,以下僅討論ROC空間和ROC曲線。)

圖:ROC空間

圖:ROC空間

一個分類算法,找個最優的分類效果,對應到ROC空間中的一個點。通常分類器的輸出都是Score,比如SVM、神經網絡,有如下的預測結果:

TABLE 一般分類器的結果都是Score表
no. True Hyp Score
1 p Y 0.99999
2 p Y 0.99999
3 p Y 0.99993
4 p Y 0.99986
5 p Y 0.99964
6 p Y 0.99955
7 n Y 0.68139
8 n Y 0.50961
9 n N 0.48880
10 n N 0.44951

True表示實際樣本屬性,Hyp表示預測結果樣本屬性,第4列即是Score,Hyp的結果通常是設定一個閾值,比如上表就是0.5,Score>0.5爲正樣本,小於0.5爲負樣本,這樣只能算出一個ROC值,爲更綜合的評價算法的效果,通過取不同的閾值,得到多個ROC空間的值,將這些值描繪出ROC空間的曲線,即爲ROC曲線。

圖:ROC曲線繪製

圖:ROC曲線繪製

我們只要明白這個基本的點,詳細的ROC曲線繪製已經有很多代碼了,資料1就提供了Prel直接根據Score繪製ROC曲線的代碼,Matlab也有,下載鏈接:

  1. Local: prec_rec.m
  2. Mathworks: prec_rec.m

有了ROC曲線,更加具有參考意義的評價指標就有了,在ROC空間,算法繪製的ROC曲線越凸向西北方向效果越好,有時不同分類算法的ROC曲線存在交叉,因此很多文章裏用AUC(即Area Under Curve曲線下的面積)值作爲算法好壞的評判標準。關於這裏的凸理論可參考文章開頭的[資料2]。

與ROC曲線左上凸不同的是,PR曲線是右上凸效果越好,下面是兩種曲線凸向的簡單比較:

圖:算法在ROC空間與PR空間的不同比較

圖:算法在ROC空間與PR空間的不同比較

作爲衡量指標,選擇ROC或PR都是可以的。但是資料3顯示,ROC和PR雖然具有相同的出發點,但並不一定能得到相同的結論,在寫論文的時候也只能參考着別人已有的進行選擇了。

引自:http://blog.csdn.net/xiahouzuoxin/article/details/43165253

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章