precision(精確率)和recall(召回率)的計算
(模型預測爲正樣本,實際爲正樣本)
(模型預測爲負樣本,實際爲負樣本)
(模型預測爲正樣本,實際爲負樣本)
(模型將預測爲負樣本,實際爲正樣本)
其次,我們需要知道的precision與recall基本成反比的,precison很高則recall會很低,反之,recall會很高。
爲什麼會這樣呢,對於一組我們準備好了的樣本(即已知了正樣本和負樣本情況),之後我們使用模型去對樣本進行檢測從而得到該樣本相對正樣本(該模型的檢測正樣本的)的置信度。我們通過控制置信度來調整recall的值,置信度大於等於的,我們認爲這個樣本是正樣本。對於一個已知的樣本,其實際正樣本數(TP+FN)是已知的。調整置信度會讓模型檢測出的正確的正樣本數變化,從而使recall變化。隨着置信度的調低,檢測出正確的正樣本數會越來越來多,而總的召回率(recall)在不斷提高,而precision會不斷降低。
關於隨着recall增大,precision爲什麼降低,我的觀點是模型是用來檢測正樣本的,所有當我們將置信度從高到低往下排列時,正樣本數是集中序列的前面的,因此隨着recall增大,precision會減少。
這個連接裏面有一個例子,結合我的講解和這個例子,MAP值應當會更好理解。
https://www.jianshu.com/p/82be426f776e
AP(average precision)是什麼?
關於AP的計算,我們參考PASCAL VOC CHALLENGE的計算方法。
我們讓recall在[0,1]裏從0開始取值,步長爲0.1,則最終有十一個recall值,AP就是由這十一不同recall階層precision的評價值而得到
是超過r的recall中對應最大的precision值,例如p_interp(0.6)就是大於0.6的所有recall中對應的最大的precision的值
MAP值是不同類別的AP值的均值
自2010年,PASCAL VOC CHANLLNEGE換了另一種算法。
新的計算方法假設這N個樣本中有M個正例,那麼我們會得到M個recall值(1/M,2/M....M/M),對於每個recall值r,我們可以計算出對應(>r)的最大precision,然後對這M個precision值取平均即得到最後AP值。
MAP的題外話:
MAP相對於precision、Recall是能夠反映全局性能的指標。
,如果一個系統的性能較好,其曲線應當儘可能的向上突出。
更加具體的,曲線與座標軸之間的面積應當越大。
最理想的系統, 其包含的面積應當是1,而所有系統的包含的面積都應當大於0。這就是用以評價信息檢索系統的最常用性能指標,平均準確率mAP其規範的定義如下:(其中P,R分別爲準確率與召回率)