一、Confusion matrix 混淆矩陣
是一種可視化工具,特別用于監(jiān)督學(xué)習(xí)。通過(guò)這個(gè)矩陣,可以很清晰地看出機(jī)器是否將兩個(gè)不同的類混淆了。
上圖的表格其實(shí)就是confusion matrix
- True/False: 預(yù)測(cè)結(jié)果是否正確
- Positive/Negative:預(yù)測(cè)的方向是正方向還是負(fù)方向
- 真陽(yáng)性(True Positive, TP): 預(yù)測(cè)為正樣本,實(shí)際為正樣本,預(yù)測(cè)正確
- 真陰性(True Negative, TN):預(yù)測(cè)為負(fù)樣本,實(shí)際為負(fù)樣本,預(yù)測(cè)正確
- 假陽(yáng)性(False Positive, FP):預(yù)測(cè)為正樣本,實(shí)際為負(fù)樣本,預(yù)測(cè)錯(cuò)誤(預(yù)測(cè)為正樣本是錯(cuò)的)
- 假陰性(False Negative, FN):預(yù)測(cè)為負(fù)樣本,實(shí)際為正樣本,預(yù)測(cè)錯(cuò)誤(預(yù)測(cè)為負(fù)樣本是錯(cuò)的)
舉例說(shuō)明:
假設(shè)識(shí)別貓
類別,其中加了狗的圖片,即認(rèn)為狗圖片為負(fù)樣本,貓圖片為正樣本。
- 貓的圖片被預(yù)測(cè)為貓,為TP;
- 狗的圖片被預(yù)測(cè)為狗,為TN;
- 狗的圖片被預(yù)測(cè)為貓,為FP;
- 貓的圖片被預(yù)測(cè)為狗,為FN;
二、由混淆矩陣衍生出的指標(biāo)
1、Accuracy 準(zhǔn)確率
被分對(duì)的樣本/總樣本數(shù)
一般來(lái)說(shuō),正確率越高,分類器越好。
但只用這個(gè)指標(biāo)不夠全面,因?yàn)槿?code>負(fù)樣本的數(shù)量遠(yuǎn)>正樣本數(shù)量,雖然正確率仍可以很高,但完全錯(cuò)分類正樣本仍能達(dá)到較高的Acc。
2、 Error rate 錯(cuò)誤率
與accuray相對(duì),描述被分類器錯(cuò)分的比例。
3、 Sensitive 靈敏度
表示所有正例中被分對(duì)的比例,和改良分類器對(duì)正例的識(shí)別能力。在所有真實(shí)值是positive的結(jié)果中,模型預(yù)測(cè)對(duì)的比重。
4、Specificity 特效度
所有負(fù)例中被分對(duì)的比例,衡量分類器對(duì)負(fù)例的識(shí)別能力
5、Precision 精度
度量精確性,表示被分為正例的示例中實(shí)際為正例的比例。
在模型預(yù)測(cè)為正樣本的所有結(jié)果中,有多少真正為正樣本的比例。
6、Recall 召回率
度量覆蓋面,由多少個(gè)正例被分為正例
三、指標(biāo)對(duì)比分析
1、precision 和 recall
上文提到,Accuracy
并不能完全反映檢測(cè)結(jié)果,所以需要Precision
和Recall
。
(下面的空格橫線只是為了讓等號(hào)對(duì)齊,沒有任何意義)
- 提高
Precision
= 提高二分類器預(yù)測(cè)正樣本門檻
_____________= 使二分類預(yù)測(cè)的正樣本盡可能是真實(shí)正樣本 - 提高
Recall
= 降低二分類器預(yù)測(cè)正樣本門檻
_____________=使得二分類器盡可能將真實(shí)的正例挑選出來(lái)
(1)在意TP
由公式可以看到,Precision
和Recall
的分子都是True Positive
:
-
Precision
看的是,在預(yù)測(cè)正向的情況下,實(shí)際的【精準(zhǔn)度】是多少; -
Recall
看的是,在實(shí)際為正向的狀況下,預(yù)測(cè)模型【能召回多少】實(shí)際正向的答案。
Precision
和Recall
的結(jié)果看重哪一個(gè),主要取決于具體的項(xiàng)目情況。例如:
- 指紋識(shí)別門鎖,我們更在意預(yù)測(cè)正向(開門)的答對(duì)了多少,不是很在意實(shí)際正向(主人)的答對(duì)了多少。也就是說(shuō),在意
Precision
,不在意Recall
。 - 廣告投放中,我們?cè)谝?mark>實(shí)際正向(潛在客戶)的答對(duì)了多少,而不是很在意預(yù)測(cè)正向(廣告投放)的答對(duì)了多少。
(2)不在意TF
這個(gè)結(jié)果沒有什么意思,在指紋識(shí)別門鎖中,是陌生人按指紋不開門。通常情況下,實(shí)際上為正樣本的結(jié)果比負(fù)樣本要少,預(yù)測(cè)為正樣本的一定會(huì)比預(yù)測(cè)為負(fù)樣本少,所以True Negative
的數(shù)量最多,也沒有什么討論意義。
2、F1 Score 綜合評(píng)價(jià)指標(biāo)
若一個(gè)任務(wù)中,Precision
和Recall
同等重要,想要用一個(gè)指標(biāo)統(tǒng)一,則有了F1 Score
,也稱為F1 Measure
。它是精確率和召回率的調(diào)和平均數(shù),最大為1(最好),最小為0(最差)。
當(dāng)beta=1時(shí),F(xiàn)1-Measure = F1 Score
把兩個(gè)值綜合變?yōu)橐粋€(gè)值,就方便做模型對(duì)比了。
(1)為什么采用調(diào)和平均的方法?
調(diào)和平均常用于計(jì)算平均速率,在固定距離下,所花時(shí)間就是平均速率,這和數(shù)據(jù)成倒數(shù)關(guān)系,而F1 Measure
也同樣是這樣的數(shù)據(jù)特性,在固定TP
的情況下,有不同的分母,所以這里使用調(diào)和平均較為適當(dāng)。
四、檢測(cè)結(jié)果出來(lái)的圖怎么看?
1、P曲線
P_curve.png:準(zhǔn)確率precision
與置信度confidence
的關(guān)系圖。
【置信度confidence
:用來(lái)判斷邊界框內(nèi)的物體是正樣本還是負(fù)樣本,大于置信度閾值的判定為正樣本,小于置信度閾值的判定為負(fù)樣本即背景?!?br>
畫圖的代碼在yolov5代碼的utils
文件夾下的metrics.py
文件中,代碼如下:
def plot_mc_curve(px, py, save_dir='mc_curve.png', names=(), xlabel='Confidence', ylabel='Metric'):
# Metric-confidence curve
fig, ax = plt.subplots(1, 1, figsize=(9, 6), tight_layout=True)
if 0 < len(names) < 21: # display per-class legend if < 21 classes
for i, y in enumerate(py):
ax.plot(px, y, linewidth=1, label=f'{names[i]}') # plot(confidence, metric)
else:
ax.plot(px, py.T, linewidth=1, color='grey') # plot(confidence, metric)
y = py.mean(0)
ax.plot(px, y, linewidth=3, color='blue', label=f'all classes {y.max():.2f} at {px[y.argmax()]:.3f}')
ax.set_xlabel(xlabel)
ax.set_ylabel(ylabel)
ax.set_xlim(0, 1)
ax.set_ylim(0, 1)
plt.legend(bbox_to_anchor=(1.04, 1), loc="upper left")
fig.savefig(Path(save_dir), dpi=250)
從代碼中可以看到,下面這句話對(duì)應(yīng)圖例中最后一句。
ax.plot(px, y, linewidth=3, color='blue', label=f'all classes {y.max():.2f} at {px[y.argmax()]:.3f}')
y.max
是指圖上所有類別的precious
的最大值,這里是1。下面的PR曲線可以看到是0.991。argmax
函數(shù)百度一下定義:
這個(gè)函數(shù)大約是為了體現(xiàn)這個(gè)模型的最終展示效果。因?yàn)榭梢钥吹剑?個(gè)類別的曲線,有的精度比較好,有的不太好,通過(guò)整合成一條曲線來(lái)展示一個(gè)綜合性能。(這點(diǎn)是猜測(cè),如有其他見解歡迎討論)
2、R曲線
3、P-R曲線
precious
與recall
之間的關(guān)系,PR曲線下圍城的面積稱作AP,所有類別AP的平均值即為mAP。
如果一個(gè)學(xué)習(xí)器的PR曲線A完全包住另一個(gè)學(xué)習(xí)器B的PR曲線,則可斷言A的性能優(yōu)于B。但是A和B發(fā)生交叉,那性能該如何判斷呢?我們可以根據(jù)曲線下方的面積大小來(lái)進(jìn)行比較,但更常用的是平衡點(diǎn)F1。平衡點(diǎn)(BEP)是 P=R
(準(zhǔn)確率 = 召回率)時(shí)的取值,即斜率為1,F(xiàn)1值越大,我們可以認(rèn)為該學(xué)習(xí)器的性能較好。
4、result.png
Box:YOLO V5使用
GIOU Loss
作為bounding box
的損失,Box推測(cè)為GIoU損失函數(shù)均值,越小方框越準(zhǔn);
Objectness:推測(cè)為目標(biāo)檢測(cè)loss均值,越小目標(biāo)檢測(cè)越準(zhǔn);
Classification:推測(cè)為分類loss均值,越小分類越準(zhǔn);
Precision:精確率(所有分類正確中的正樣本比例);
Recall:召回率(有多少正樣本被找到)
val Box: 驗(yàn)證集bounding box
損失
val Objectness:驗(yàn)證集目標(biāo)檢測(cè)loss
均值
val classification:驗(yàn)證集分類loss
均值
mAP@0.5:閾值大于0.5的平均mAP
?!酒渲?,mAP指PR曲線下的面積AP的平均值,@后面的數(shù)表示判定IoU
為正負(fù)樣本的閾值】
mAP@0.5:0.95:表示在不同IoU
閾值(從0.5到0.95,步長(zhǎng)0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP
?!継0.5:0.95表示閾值取0.5:0.05:0.95后取均值】
一般訓(xùn)練結(jié)果主要觀察精確率和召回率波動(dòng)情況(波動(dòng)不是很大則訓(xùn)練效果較好),然后觀察mAP@0.5 & mAP@0.5:0.95 評(píng)價(jià)訓(xùn)練結(jié)果。
5、 F1_curve.png
F1-score
與置信度間的關(guān)系。F1-score
是分類問(wèn)題的一個(gè)衡量指標(biāo),是精確率precision
和召回率recall
的調(diào)和平均數(shù),最大為1,最小為0。【1是最好,0是最差】
6、Labels.jpg
第一個(gè)圖:classes
每個(gè)類別的數(shù)據(jù)量
第二個(gè)圖 :labels
標(biāo)簽
第三個(gè)圖 :center xy
第四個(gè)圖 :labels
的長(zhǎng)和寬文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-425275.html
參考博文
秒懂Confusion Matrix之混淆矩陣詳解
yolov5 訓(xùn)練結(jié)果解析
關(guān)于yolov5的一些說(shuō)明(txt文件、訓(xùn)練結(jié)果分析等)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-425275.html
到了這里,關(guān)于深度學(xué)習(xí)圖像識(shí)別筆記(三):yolov5檢測(cè)結(jié)果分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!