機器學習 混淆矩陣及其繪製

2021-09-06 15:43:05 字數 2535 閱讀 1609

混淆矩陣主要用於表示分類精度,利用橫軸為**結果縱軸為標準結果的**圖,視覺化地展示演算法的分類效能。

乙個混淆矩陣的例子

其中第一類有10個,第二類有14個,第三類有21個。而實際的**結果是第一類有乙個樣本錯誤**為了第二類;第二類有5個錯認為第一類,2個錯認為第三類;第三類中有兩個被錯認為第一類,6個第二類。

:d:d

class 1↓

class 2↓

class 3↓

:d:d

實際結果↓

實際結果↓

實際結果↓

**結果→

class195

2**結果→

class217

6**結果→

class302

13而所有正確**的都在對角線上!通過混淆矩陣可以直觀的看到演算法對於哪些分類存在的問題。(行或者列代表**結果/真實結果不影響最終矩陣的表現,因為不在對角線的元素才會顯示演算法的效能,交換行列矩陣只會裝置對稱)

混淆矩陣的視覺化

我們在獲得分類結果後,可以使用matplotlib來進行混淆矩陣的視覺化,具體的計算方法可以參考scikit-learn,tensorflow,matlab

五種分類的情況下,假設混淆矩陣如下所示:

class=[

'a','b','c'

,'d'

,'e'

]#類別標籤

confusion_matrix =[[

9134

00][

2,13,

1,3,

4][1

410013

][31

1170]

[000

114]]

#混淆矩陣

#confusion_matrix

import numpy as np

import matplotlib.pyplot as plt

classes =

['a'

,'b'

,'c'

,'d'

,'e'

]confusion_matrix = np.array([(

9,1,

3,4,

0),(

2,13,

1,3,

4),(

1,4,

10,0,

13),(

3,1,

1,17,

0),(

0,0,

0,1,

14)],dtype=np.float64)

plt.imshow(confusion_matrix, interpolation=

'nearest'

, cmap=plt.cm.oranges)

#按照畫素顯示出矩陣

plt.title(

'confusion_matrix'

)plt.colorbar(

)tick_marks = np.arange(

len(classes)

)plt.xticks(tick_marks, classes, rotation=-45

)plt.yticks(tick_marks, classes)

thresh = confusion_matrix.

max()/

2.#iters = [[i,j] for i in range(len(classes)) for j in range((classes))]

#ij配對,遍歷矩陣迭代器

iters = np.reshape([[

[i,j]

for j in

range(5

)]for i in

range(5

)],(confusion_matrix.size,2)

)for i, j in iters:

plt.text(j, i,

format

(confusion_matrix[i, j]))

#顯示對應的數字

混淆矩陣/10087822?fr=aladdin

機器學習 混淆矩陣及其繪製

混淆矩陣主要用於表示分類精度,利用橫軸為 結果縱軸為標準結果的 圖,視覺化地展示演算法的分類效能。乙個混淆矩陣的例子 其中第一類有10個,第二類有14個,第三類有21個。而實際的 結果是第一類有乙個樣本錯誤 為了第二類 第二類有5個錯認為第一類,2個錯認為第三類 第三類中有兩個被錯認為第一類,6個第...

繪製 混淆矩陣

參考文獻 從而二分類的角度來看,在二分類的模型中,把 情況與實際情況的所有結果進行組合,就會有真正 true positive 假正 false positive 真負 true negative 和假負 false negative 四種情形,分別由tp fp tn fn 表示 t代表 正確,f代...

機器學習(混淆矩陣)

1 混淆矩陣 真實性positive 1 negative 0 值poistive 1 tp true positive 11 fp false positive 01 negative 0 fn false negaative 10 tn true negative 00 2 四種指標 公式意義 ...