簡體   English   中英

如何制作彩色混淆矩陣(熱圖)? 或者,顯示完整的矩陣?

[英]How can I make a colored Confusion Matrix (heatmap)? Or, show the full matrix?

我正在繪制一個混淆矩陣,顯示總共 26 個類(26 個字母)的預測與實際。

我的代碼如下:

y_pred = np.argmax(predictions, axis=1) # Transform predictions into 1-D array with label number

pd.DataFrame(confusion_matrix(y_test, y_pred), 
             columns=["pA", "pB", "pC", "pD", "pE", "pF", "pG", "pH", "pI", "pJ", "pK", "pL", "pM", "pN", "pO", "pP", "pQ", "pR", "pS", "pT", "pU", "pV", "pW", "pX", "pY", "pZ"],
             index=["aA", "aB", "aC", "aD", "aE", "aF", "aG", "aH", "aI", "aJ", "aK", "aL", "aM", "aN", "aO", "aP", "aQ", "aR", "aS", "aT", "aU", "aV", "aW", "aX", "aY", "aZ"])

我的 Output 看起來像這樣:

在此處輸入圖像描述 問題是,我怎樣才能顯示整個行/列(沒有...)或者使它在視覺上更令人愉悅和易於查看,我怎樣才能將它更改為彩色版本,即使它我也可以不顯示數字。

感謝您抽出時間來 go 並幫助我解決這個問題,干杯!

您可以將 dataframe 視為圖像:

import matplotlib.pyplot as plt

df = pd.DataFrame(confusion_matrix(y_test, y_pred), 
         columns=["pA", "pB", "pC", "pD", "pE", "pF", "pG", "pH", "pI", "pJ", "pK", "pL", "pM", "pN", "pO", "pP", "pQ", "pR", "pS", "pT", "pU", "pV", "pW", "pX", "pY", "pZ"],
         index=["aA", "aB", "aC", "aD", "aE", "aF", "aG", "aH", "aI", "aJ", "aK", "aL", "aM", "aN", "aO", "aP", "aQ", "aR", "aS", "aT", "aU", "aV", "aW", "aX", "aY", "aZ"])

plt.imshow(df[:])

編輯:

您可以使用 plt.annotate 添加值:

cols = ["pA", "pB", "pC", "pD", "pE", "pF", "pG", "pH", "pI", "pJ", "pK", "pL", "pM", "pN", "pO", "pP", "pQ", "pR", "pS", "pT", "pU", "pV", "pW", "pX", "pY", "pZ"]
ix=["aA", "aB", "aC", "aD", "aE", "aF", "aG", "aH", "aI", "aJ", "aK", "aL", "aM", "aN", "aO", "aP", "aQ", "aR", "aS", "aT", "aU", "aV", "aW", "aX", "aY", "aZ"]
data = np.random.randint(0,10,(len(cols), len(ix)))
df = pd.DataFrame(data=data, 
         columns=cols,
         index=ix)

plt.figure(figsize=(10,10))
plt.imshow(df[:])

for r, (i, row) in enumerate(df.iterrows()):
    for c, entry in enumerate(row):
        plt.annotate(entry, xy=(c-0.3,r+.1), fontsize=8) # using annotate with offset for xy, to allow better positioning

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM