2017-07-19 107 views
0

我繪製了一個將混淆矩陣作爲輸入數據的熱圖。混淆矩陣具有形狀:在熱圖中轉置混淆矩陣的原因

[[37 0 0 0 0 0 0 0 0 0] 
[ 0 42 0 0 0 1 0 0 0 0] 
[ 1 0 43 0 0 0 0 0 0 0] 
[ 0 0 0 44 0 0 0 0 1 0] 
[ 0 0 0 0 37 0 0 1 0 0] 
[ 0 0 0 0 0 47 0 0 0 1] 
[ 0 0 0 0 0 0 52 0 0 0] 
[ 0 0 0 0 1 0 0 47 0 0] 
[ 0 1 0 1 0 0 0 1 45 0] 
[ 0 0 0 0 0 2 0 0 0 45]] 

繪製熱圖的代碼是:

fig2=plt.figure() 
fig2.add_subplot(111) 
sns.heatmap(confm.T,annot=True,square=True,cbar=False,fmt="d") 
plt.xlabel("true label") 
plt.ylabel("predicted label") 

其產生:

enter image description here

正如你可以看到,輸入矩陣「 confm「被轉置(confm.T)。這是什麼原因?我必須這樣做嗎?

+0

有一些錯誤,情節和矩陣包含不同的值。 – Johannes

+2

你正在做'confm.T',你想知道爲什麼你的數據被轉置? –

+0

不,我不知道,但我想知道爲什麼我必須分別調換混淆矩陣,這樣做的好處是什麼? – 2Obe

回答

2

當我用代碼繪製你的數據,你提供我得到這個: enter image description here

沒有轉和交換x和y標籤,當你得到:

fig2=plt.figure() 
fig2.add_subplot(111) 
sns.heatmap(confm,annot=True,square=True,cbar=False,fmt="d") 
plt.xlabel("predicted label") 
plt.ylabel("true label") 

enter image description here

這導致了相同的混淆矩陣。轉換的真正作用是交換哪一個是預測,哪個是基本事實(真實標籤)。你需要使用什麼取決於數據的格式。

0

只有在您要切換哪個軸將放置哪些數據時,您才需要進行移調。我通常使用混淆矩陣:y - 真標籤,x - 預測標籤。只有當您喜歡它時,才需要轉置矩陣和交換標籤:y - 預測的標籤,x - 真正的標籤。