matplotlib绘制混淆矩阵_混淆矩阵及其可视化
混淆矩陣(Confusion Matrix)是機(jī)器學(xué)習(xí)中用來總結(jié)分類模型預(yù)測結(jié)果的一個(gè)分析表,是模式識(shí)別領(lǐng)域中的一種常用的表達(dá)形式。它以矩陣的形式描繪樣本數(shù)據(jù)的真實(shí)屬性和分類預(yù)測結(jié)果類型之間的關(guān)系,是用來評(píng)價(jià)分類器性能的一種常用方法。
我們可以通過一個(gè)簡單的例子來直觀理解混淆矩陣。
通過分類模型我們得到的預(yù)測結(jié)果以及真實(shí)的屬性可以通過列表的形式展現(xiàn),
y_pred=["ant", "ant", "cat", "cat", "ant", "cat"] #預(yù)測 y_true=["cat", "ant", "cat", "cat", "ant", "bird"] #真實(shí)數(shù)軸的標(biāo)簽表示真實(shí)屬性,而橫軸的標(biāo)簽表示分類的預(yù)測結(jié)果。此矩陣的第一行第一列這個(gè)數(shù)字2表示ant被成功分類成為ant的樣本數(shù)目,第三行第一列的數(shù)字1表示cat被分類成ant的樣本數(shù)目,諸如此類。
混淆矩陣的每一行數(shù)據(jù)之和代表該類別的真實(shí)的數(shù)目,每一列之和代表該類別的預(yù)測的數(shù)目,矩陣的對角線上的數(shù)值代表被正確預(yù)測的樣本數(shù)目。
那么這個(gè)混淆矩陣是如何繪制的呢?
這里給出兩種簡單的方法,一是使用seaborn的熱力圖來繪制,可以直接將混淆矩陣可視化;
C=confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"]) df=pd.DataFrame(C,index=["ant", "bird", "cat"],columns=["ant", "bird", "cat"]) sns.heatmap(df,annot=True)另外一種是使用matplotlib的matshow來繪制。
plt.matshow(C, cmap=plt.cm.Greens) plt.colorbar() for i in range(len(C)): for j in range(len(C)):plt.annotate(C[i,j], xy=(i, j), horizontalalignment='center', verticalalignment='center') plt.ylabel('True label') plt.xlabel('Predicted label') plt.show()效果如下:
利用混淆矩陣的可視化,我們能夠分析類別誤判的結(jié)果,從而對機(jī)器學(xué)習(xí)的模型進(jìn)行調(diào)整。
總結(jié)
以上是生活随笔為你收集整理的matplotlib绘制混淆矩阵_混淆矩阵及其可视化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: grub shell 错误_grub命令
- 下一篇: h5课件制作_Articulate st