【总结】一文了解所有的机器学习评价指标
最近在做深度學習的目標檢測方向,評價指標涉及mAP,Precision,Recall等指標。
真可謂 剪不斷,理還亂
索性總結了下機器學習和深度學習常見的評價指標,包括有
真陽性率 True Positive(TP)、
假陽性率 False Positive(FP)、
真陰性率 True Negative(TN)、
假陰性率 Fause Negative(FN)、
總體精度 Overall Accuracy(OA)、
Kappa系數、
生產者精度 Producer’s Accuracy(PA)、
用戶精度 User’s Accuracy(UA)、
精確率 / 查準率 Precision、
召回率 / 查全率 Recall、
F1分數 F1 Score(F1)、
交并比 Intersection over Union(IoU)、
平均交并比 mean Intersection over Union(mIoU)、
置信度 Confidence
平均精確率 Average Precision(AP)、
平均精確率平均值 mean Average Precision(mAP)、
平均絕對誤差 Mean Absolute Error(MAE)、
均方誤差 Mean Squared Error(MSE)、
均方根誤差 Root Mean Squared Error(RMSE)、
R2分數 R2 Score(R2)。
好家伙,這些指標總結下來,都可以出一套試卷了。
接下來小葵花媽媽課堂開課啦,孩子機器學習老不好,多半是沒看到這篇文章。
首先我們以最簡單的分類問題舉個例子,比如說我們有10個小動物,它們依次是:
🐯🐯🐯🐯🐯😼😼😼😼😼
現在我們訓練好的模型對其進行預測,結果是:
😼🐯🐯🐯🐯😼😼😼🐯🐯
可以看到,有3只小動物分錯了(第1、第9和第10個),那怎么評價這次預測結果呢?聰明的人類發明了若干種評價標準。
這里我們令🐯為正樣本(陽性)記作“1”,令😼為負樣本(陰性)記作“0”,生成混淆矩陣,如下圖
TP、FP、TN、FN
這4個都是由兩部分組成,P和N指的是這個樣本的預測結果是Positive還是Negative,T和F指的我預測的結果和真實標簽對比是Ture還是Fause。那么對應到我們例子上,就是:
TP:預測是🐯,實際為🐯
FP:預測是🐯,實際為😼
TN:預測是😼,實際為😼
FN:預測是😼,實際為🐯
想的時候,先想想預測結果是P還是N,再想想這個P或N與真實標簽對比是T還是F。對應到混淆矩陣就是:
OA
所謂總體精度,就是所有的樣本我預測對了幾個。最好理解用的也比較多,公式如下:
OA = (TN+TP) / (TN+TP+FN+FP) = (3+4) / (3+4+2+1) = 0.7
注:OA = 對角線加起來除全部的加起來
Kappa
OA效果不是挺好的嗎?為什么還需要其他指標呢?
下面我們再舉個例子:
真實情況:🐯🐯🐯🐯🐯🐯🐯🐯🐯😼
預測情況:🐯🐯🐯🐯🐯🐯🐯🐯🐯🐯
之后都討論這個例子!
OA = (TN+TP) / (TN+TP+FN+FP) = (0+9) / (0+9+1+0) = 0.9
精度為90%,好像沒什么問題,但是如果😼是恐怖分子呢?一旦漏掉了他,后果不堪設想,而這90%的精度也就沒了意義。所以針對這種樣本不平衡的情況,我們推出了Kappa系數,公式如下:
Kappa = (Po-Pe) / (1-Pe),其中,
Po = OA = 0.9
Pe = ( (TN+FN)×(TN+FP)+(FP+TP)×(FN+TP) ) / (TN+TP+FN+FP)^2 = 0.9
注:Pe = 每一行乘對應的每一列,再把乘積的結果加起來,用來除總數的平方
計算得 Kappa = 0,哇,好慘一Kappa~
kappa計算結果為-1~ 1,但通常kappa是落在 0 ~ 1 間,可分為五組來表示不同級別的一致性:0.0~ 0.20極低的一致性(slight)、0.21~ 0.40一般的一致性(fair)、0.41~ 0.60 中等的一致性(moderate)、0.61~ 0.80 高度的一致性(substantial)和0.81~ 1幾乎完全一致(almost perfect)。
UA
用戶精度,就是說在某一類的預測結果中,有百分之多少是對的?
對上面的例子而言,
🐯: UA = TP / (TP+FP) = 9 / 10 = 0.9
😼: UA = TN / (TN+FN) = 0 / 0 = NUNE
注:UA = 對角線元素除其對應的預測標簽數
可以看到對于用戶精度,😼直接人沒了。
PA
生產者精度,就是說在某一類的真實樣本中,我預測對了百分之多少?
🐯: PA = TP / (TP+FN) = 9 / 9 = 1
😼: PA = TN / (TN+FP) = 0 / 1 = 0
注:PA = 對角線元素除其對應的真實標簽數
從生產者精度來說,🐯預測的很好,😼則不行。
可以發現UA和PA的差別就在分母上,也就是用預測對的樣本數除誰的問題。
上述指標一般在傳統的機器學習中用的比較多,然而在深度學習的發展中還誕生了一些新的指標。
下面將來到演出下半場,同學們可以稍微休息十分鐘。
好滴,歡迎回來,我們繼續上課。
在用深度學習做分類時,其實評價指標和上述機器學習的指標大同小異,然而在目標檢測和實例分割等領域,就出現了一些不同。
Precision
有的直譯為精確率,單是這三個漢字,容易和OA搞混。其代表在我預測的正樣本中,由百分之多少是對的,所以也有人譯為查準率,更符合其在當下環境中的實際意義,計算公式如下:
Precision = TP / (TP+FP)
誒?你往上翻翻,這不就是🐯的UA嗎?
沒錯,UA是針對每一類樣本的用戶精度(每一行都有一個),而Precision就是只針對TP,也可以理解成正樣本的用戶精度。
Recall
了解了精確率 / 查準率,召回率 / 查全率是不是就容易多了,其代表在我真實的正樣本中,我預測對了百分之多少。公式如下:
Recall = TP / (TP+FN)
Recall對應的就是只針對正樣本的生產者精度。
F1
F1分數,是F1方程式的一項指標 。
人們往往可以使用上述Precision和Recall,從查準和查全的角度評價一個模型的好壞,但是這兩者往往是矛盾。比如我可以在一張圖上生成無數個框,這樣查全率有100%,但是查準率就近似為0了。
所以人們發明了一種新指標,用來調和Precision和Recall,史稱 F1 Score,計算公式如下:
F1 = 2×Precision×Recall / (Precision+Recall)
這個好像看不出怎么調和的,下面看看其推導過程就很簡單了~
IoU
交并比是目標檢測中的一個概念,所謂目標檢測就是一張圖上畫個框,將目標框出來,而這個框就是我的預測結果。
那么問題來了,對于一個框我怎么去判斷他是Ture還是False呢?
聰明的人們想到一個好方法,就是如果預測的框和真實的框重疊越多,那么他就越有可能是Ture,而這個重疊的指標也就是交并比,即兩個框交集的面積除并集的面積,如下圖所示:
有了交并比的概念,人們就很容易劃分TP、FP、TN和FN了~
mIoU
交并比知道了,那給他前面加個 m 是啥意思呢?
這個設問句好像有點弱智,mean當然是求均值啦!
一張圖上有多個目標時,就會畫多個框,就會有多個IoU,對其求均值,就得到了mIoU,這個指標在語義分割中好像用的更多一點。
Confidence
置信度,又是目標檢測里的新詞匯。
細心的同學可能發現上圖中小貓和小狗的框上不僅有標簽 “cat” 和 “dog” 還有兩個數字,而這兩個數字就是置信度,其代表模型預測出來的框,有多大的可信度。圖中的 0.9 已經是蠻好的情況了。
AP
這個平均精確率和精確率有啥關系呢?和上面類似是每個框精確率的平均值嗎?
NoNoNo👋
AP不是 mean Precision 而是 Precision-Recall 曲線所圍成圖形的面積大小。其中這個曲線圖是在各個置信度閾值下的Precision和Recall值所構成的。
感覺有點繞哈~ 下面我們來舉個例子,對路飛三兄弟進行人臉識別。
首先,設置IoU的閾值為0.5,即大于0.5的是正樣本,否則是負樣本。很明顯路飛(左邊第一個)和艾斯(右邊第一個)是TP,薩博(中間那個人)是FP。
然后,設置Confidence的閾值為0.9,無視所有小于0.9的預測框。那么模型預測的所有框即TP+FP=1,即路飛是TP,那么Precision=1/1。因為所有的label=3,所以Recall=1/3。這樣就得到一組P、R值。
接著,設置閾值為0.8,無視所有小于0.8的預測框。那么模型預測的所有框即TP+FP=2,因為路飛是TP,薩博是FP,那么Precision=1/2=0.5。因為所有的label=3,所以Recall=1/3=0.33。這樣就又得到一組P、R值。
最后,設置閾值為0.7,無視所有小于0.7的預測框。那么模型預測的所有框即TP+FP=3,因為路飛是TP,薩博是FP,艾斯是TP,那么Precision=2/3=0.67。因為所有的label=3,所以Recall=2/3=0.67。這樣就得到最后一組P、R值。
最最后,根據上面3組PR值繪制PR曲線如下。然后每個“峰值點”往左畫一條線段直到與上一個峰值點的垂直線相交。這樣畫出來的紅色線段與坐標軸圍起來的面積就是AP值。
其中 AP = 1×0.33+0.67×0.33 = 0.55
mAP
相信知道了mIoU的小聰明們,已經可以領會mAP是啥意思了,上述的AP是針對檢測路飛三兄弟的指標,而他們三個都有一個統一的標簽就是海賊,如果我們的模型目的是同時檢測出海賊和海軍,那么我們就還會有一組海軍的AP,而對這兩個AP取平均,就是mAP啦~
可以發現海軍三大將的臉部預測框都不準,同時置信度也很低。這是由于他們的臉部面積占比很小,屬于目標檢測中的小目標識別,存在一定的難度,后面有緣再講~
MAE
剛看懂mAP,怎么又來一個MAE?想必已經有同學呼之欲出mmp。
先別著急mmp,想想那個迪士尼,這個押韻很神奇,下面繼續來做題。skr~
上面這些指標不論是機器學習還是深度學習,他們有個共同的特點,就是你都學不懂 ,就是都在做分類,區分是🐯還是😼,海賊還是海軍,大佬還是你~
那么和分類相對的就是回歸,比如用最小二乘法來擬合一條直線。
曲線擬合出來后,要怎么評價其精度呢?
最簡單的就是,預測值減真實值再求平均就好啦,也就是這里所說的平均絕對誤差,公式如下:
其中 fi 是預測值,yi 是真實值,下面的公式都一樣。
MSE
均方誤差計算的是預測值和實際值的平方誤差,公式如下:
RMSE
由于MSE與我們的目標變量的量綱不一致,為了保證量綱一致性,我們需要對MSE進行開方,即均方根誤差,公式如下:
R2
這個2其實是平方,也就是R^2,又稱為 The Coefficient of Determination。判斷的是預測模型和真實數據的擬合程度,最佳值為1,公式如下:
其中
終于走到了自傳最終章,已瀏覽所有指標的風光。
不知不覺竟然寫了整整一天,學術淺陋難免有錯誤,歡迎大家再評論區批評指正,同時也可以掃描下方二維碼,加入群聊,你想看的,這里也不知道有沒有,哈哈哈~
猜你喜歡:👇🏻
?【算法】深度學習神經網絡都調哪些參數?
?【總結】機器學習劃分數據集的幾種方法
?【隨筆】深度學習的數據增強還分在線和離線?
參考文獻:
[1] 說一說機器學習中TP、TN 、FP 、FN
[2] 圖像分類精度評價
[3] kappa系數簡介
[4] 目標檢測的評價指標(TP、TN、FP、FN、Precision、Recall、IoU、mIoU、AP、mAP)
[5] 理解目標檢測當中的mAP
[6] 回歸模型評估指標
總結
以上是生活随笔為你收集整理的【总结】一文了解所有的机器学习评价指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【随笔】深度学习的数据增强还分在线和离线
- 下一篇: 快毕业才发现自己找不到工作,为什么实习经