1 混淆矩陣定義
混淆矩陣:Confusion Matrix,用于直觀展示每個(gè)類別的預(yù)測(cè)情況,能從中計(jì)算準(zhǔn)確率(Accuracy)、精度(Precision)、召回率(Recall)、交并比(IoU)。
混淆矩陣是n*n
的矩陣(n是類別),對(duì)角線上的是正確預(yù)測(cè)的數(shù)量。
每一行之和是該類的真實(shí)樣本數(shù)量,每一列之和是預(yù)測(cè)為該類的樣本數(shù)量。
2 np.bincount()函數(shù)解讀
返回從0到 array中最大值 每個(gè)數(shù)出現(xiàn)的次數(shù)
np.bincount(array, minlength)
minlength:限制返回列表的最小長(zhǎng)度,不夠用0填
舉例:
if __name__=='__main__':
import numpy as np
x = np.array([1,3,3,4,5,4,7])
x_True_False1 = np.array([True,True,True,True,True,True,True])
x1 = x[x_True_False2] # [3 3 4 5 4 7]
x_True_False2 = np.array([True,True,True,True,True,True,True])
x = x[x_True_False2]
print(x) # [1 3 3 4 5 4 7]
y = np.bincount(x) # 返回從0到輸入array中最大值 每個(gè)數(shù)出現(xiàn)的次數(shù)
print(y) # [0 1 0 2 2 1 0 1]
z = np.bincount(x, minlength=9) # minlength限制返回列表的最小長(zhǎng)度,長(zhǎng)度不夠,0來(lái)湊
print(z) # [0 1 0 2 2 1 0 1 0]
print(z.reshape(3,3))
"""
[[0 1 0]
[2 2 1]
[0 1 0]]
"""
3 生成混淆矩陣
在這里,x和x_label的位置可以交換,但理解方式就不同了,要注意!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-409916.html
if __name__=='__main__':
x = np.array([1,3,3,4,5,4,7])
x_label = np.array([1,3,3,4,5,5,7]) # 假設(shè)有10類
print(np.bincount(10*x.astype(int)+x_label, minlength=10**2).reshape(10,10))
"""
[[0 0 0 0 0 0 0 0 0 0]
[0 1 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 2 0 0 0 0 0 0]
[0 0 0 0 1 1 0 0 0 0]
[0 0 0 0 0 1 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 1 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]]
"""
假設(shè)n=10,有10類,
對(duì)于預(yù)測(cè)正確的像素來(lái)說,n * x + x_label就是對(duì)角線的值,
很明顯,非對(duì)角線上的那個(gè)就是預(yù)測(cè)錯(cuò)的,它把5預(yù)測(cè)成了4,為什么出現(xiàn)在那個(gè)位置:
10*4+5=45,出現(xiàn)在第5行第6列(注意索引和類別的關(guān)系!)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-409916.html
4 感謝鏈接
https://www.jianshu.com/p/42939bf83b8a
到了這里,關(guān)于【np.bincount】np.bincount()用在分割領(lǐng)域生成混淆矩陣的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!