什么是性能指標
用於評價模型的好壞,當然使用不同的性能指標對模型進行評價往往會有不同的結果,也就是說模型的好壞是“相對”的,什么樣的模型好的,不僅取決於算法和數據,還決定於任務需求。因此,選取一個合理的模型評價指標是非常有必要的。
錯誤率 & 精度
針對數據集D和學習器f而言:
1、錯誤率:分類錯誤的樣本數占總樣本的比例
2、精度:分類正確的樣本數占總樣本的比例

2、精度:分類正確的樣本數占總樣本的比例

召回率 & 准確率
為什么引入
精度和錯誤率雖然常用,但還是不能滿足所有的需求。舉個例子:
信息檢索中,我們經常會關系“
檢索出的信息有多少比例是用戶感興趣的”以及“
用戶感興趣的信息中有多少被檢索出來了”,用精度和錯誤率就描述出來了,這就需要引入
准確率(precision,亦稱查准)和
召回率(recall,亦稱查全)。

准確率
預測為正的結果中,究竟有多少是真的正?(找出來的對的比例)

召回率
所有正樣本中,你究竟預測對了多少?(找回來了幾個)

P-R曲線
一般來說,我們希望上述兩個指標都是越高越好,然而沒有這么好的事情,准確率和召回率是一對矛盾的度量,一個高時另一個就會偏低,當然如果兩個都低,那肯定時哪點除了問題。

當我們根據學習器的預測結果對樣例進行排序(排在前面的時學習器認為“最可能”是正例的樣本),然后按此順序依次吧樣本喂給學習器,我們把每次的准確率和召回率描出來就會得到一個P-R曲線(稱為P-R圖)。根據這個圖怎么評估不同的學習器的好壞呢?
直觀感受:如果一個學習器的P-R被另一個學習器的該曲線包圍,則可以斷言后面的要好些。
但是如果兩個曲線有交叉,那就很難說清楚了。一個比較合理的判據是我比較下兩個曲線下面的面積大小,他能在一定程度上反應P和R“雙高”的比例,但問題是這個面積值不太容易估算啊。那有沒有綜合考慮這兩個指標的指標呢?當然是有的,且看下面
平衡點(Break-Even Point, BEP)
就是找一個
准確率 = 召回率 的值,就像上面的圖那樣。

mAP
mAP是什么
多標簽圖像分類任務中圖片的標簽不止一個,因此評價不能用普通單標簽圖像分類的標准,即mean accuracy,該任務采用的是和信息檢索中類似的方法—mAP(mean Average Precision),雖然其字面意思和mean accuracy看起來差不多,但是計算方法要繁瑣得多。
計算過程
保存所有樣本的confidence score
首先用訓練好的模型得到所有測試樣本的confidence score,每一類(如car)的confidence score保存到一個文件中(如comp1_cls_test_car.txt)。假設共有20個測試樣本,每個的id,confidence score和ground truth label如下:

對confidence score進行排序

計算precision和recall
上面我們一共有20個測試樣本,如果把這20個樣本放在一起,按照表1給出的把他們分成4類,就可以得到下面的示意圖:

其中,圓圈內(真正 + 假正)是我們模型預測為正的元素,比如對測試樣本在訓練好的car模型上分類(如果是car,輸出label = 1,反之=0),現在假設我們想得到top-5的結果,也就是說圓圈內一共有5個數據,即排序好的表的前面5個:

好了,上表就是我們預測為正的元素啦,他的准確率是多少?

召回率是多少呢?在這里請注意我們的所有測試樣本一共有多少個car(也就是label=1有幾條數據),在下表中很容易找到6條記錄,那我們預測出來的結果找到幾個car呢?上面的top-5中我們只找到了2個car。

也就是說,召回率為:

實際多類別分類任務中,我們通常不滿足只通過top-5來衡量一個模型的好壞,而是需要知道從top-1到top-N(N是所有測試樣本個數,本文中為20)對應的precision和recall。顯然隨着我們選定的樣本越來也多,recall一定會越來越高,而precision整體上會呈下降趨勢。把recall當成橫坐標,precision當成縱坐標,即可得到常用的precision-recall曲線。這個例子的precision-recall曲線如下:

計算AP
接下來說說AP的計算,此處參考的是PASCAL VOC CHALLENGE的計算方法。首先設定一組閾值,[0, 0.1, 0.2, …, 1]。然后對於recall大於每一個閾值(比如recall>0.3),我們都會得到一個對應的最大precision。這樣,我們就計算出了11個precision。AP即為這11個precision的平均值。這種方法英文叫做11-point interpolated average precision。
當然PASCAL VOC CHALLENGE自2010年后就換了另一種計算方法。新的計算方法假設這N個樣本中有M個正例,那么我們會得到M個recall值(1/M, 2/M, …, M/M),對於每個recall值r,我們可以計算出對應(r’ > r)的最大precision,然后對這M個precision值取平均即得到最后的AP值。計算方法如下:
注:這里倒數第二列,top-6的Max Precision應該為3/6(而不是4/7),上面圖片有點問題。

注:這里倒數第二列,top-6的Max Precision應該為3/6(而不是4/7),上面圖片有點問題。
AP衡量的是學出來的模型在給定類別上的好壞,而mAP衡量的是學出的模型在所有類別上的好壞,得到AP后mAP的計算就變得很簡單了,就是取所有AP的平均值。