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