1. 程式人生 > >機器學習mAP之我見

機器學習mAP之我見

mAP(mean Average Precision)

Precision and Recall

       在模型評估時,我們往往會參照一些效能指標,最基本的如準確率和召回率。看過西瓜書的同學應該對下面這張表格很熟悉:

predicted:P predicted:F
actual:P TP FN
actual:N FP TN

       這張表其實很好記憶,橫著看(actual:P和actual:N)代表實際所屬的類別;豎著看(predicted:P和predicted:N)代表預測的型別。如果實際和預測都一樣,那就是真正例(TP)和真反例(TN),對應表格的主對角線。如果實際是反例卻預測成了正例,那就是假正例(FP),注意,這都是與實際的標籤(actual)來對比的

,同理可推出FN。
       在瞭解了表格的意義之後,就很好解釋準確率(P)和召回率(R)了:

P=TPTP+FP

R=TPTP+FN

       準確率P是評估你預測的準不準(看預測列),而召回率R是看你找的全不全(看實際行)。如果處理平衡資料集用這些效能指標還好說,但是一旦你的資料集不平衡,那麼這些指標可參考的價值就不那麼具備參考性了。舉個例子:對於一個二分類問題,如果其中90%是正樣本,只有10%是負樣本的話,而我的模型就是全部輸出為正樣本的分類器,那麼準確率依然高達90%,但是這樣並沒有意義。所以提出了AP的概念。

Average Precision

       所謂的AP,其實就是平均準確率。這裡的平均是相對於不同驗證集而言的。
這裡寫圖片描述
       假設我們想要訓練一個貓咪分類器,如果是基於畫素點級別的,那麼就可以將它轉換為一個二分類任務,判斷這個畫素點是不是屬於貓的。這樣,我們可以得到屬於貓咪的畫素點的準確率P1=TPTP+FP,當然,我麼還有其他很多的驗證圖片,這樣還可以得到P2,P3,…而AP就是對於這些求平均值:
AP=i=0NPiN.

mean Average Precision

       所謂的mAP,其實就是對m個類別的AP取平均值,對於上文講的貓咪分類器,其實就是一個二分類器,它的mAP就等於正樣本的準確率與負樣本的準確率的平均值,多分類任務也可以如法炮製。
       相比於P,R,mAP這個效能指標對於資料不平衡問題就靠譜很多。還是拿之前舉的例子來說:90%的正樣本,10%的負樣本,如果採用全部輸出為正的分類器,那麼P

=0.9,P=0,而mAP=0.45.

Tips:
1.本文只是一個學習筆記,內容可能會有錯誤,僅供參考。
2.如果你發現文中的錯誤,歡迎留言指正,謝謝!