Tampilan matriks kebingungan peta panas Seaborn tidak ditampilkan seperti yang diharapkan

Aug 19 2020

tolong pandu saya di tampilan peta panas untuk matriks kebingungan.Saya telah mencoba ukuran ara yang berbeda tetapi tidak mendapatkan tampilan yang tepat. kode saya di bawah dan tangkapan layar

def show_confusion_matrix(test_labels,predictions):
    confusion=sk_metrics.confusion_matrix(np.argmax(test_labels,axis=1),np.argmax(predictions,axis=1))
    confusion_normalized=confusion.astype('float')/confusion.sum(axis=1)
    #confusion_normalized=confusion_matrix(np.argmax(y_test,axis=1),np.argmax(predictions,axis=1))
    axis_labels=list(uniquelabel) ## unique labels has 120 dog breed names
    fig,ax=plt.subplots(figsize=(30,70))
    ax=sns.heatmap(confusion_normalized,xticklabels=axis_labels,yticklabels=axis_labels,
                   linewidths=0.10,cmap='Blues',annot=True,fmt='.2f',square=True)
    plt.title('Confusion_matrix')
    plt.ylabel("True Label")
    plt.xlabel("Predicted Label")

show_confusion_matrix(y_test,predictions)  

Jawaban

Ahx Aug 19 2020 at 21:40

Masalah pertama yang saya temukan adalah ukuran font

from seaborn import set
from seaborn import set_style

set(font_scale=1.8)
set_style("darkgrid")

atau Anda dapat mengatur gaya whitegrid

Anda memiliki banyak fitur, oleh karena itu saya sarankan Anda menerapkan topeng untuk pendekatan yang sederhana.

from numpy import zeros_like
from numpy import triu_indices_from

mask = zeros_like(confusion_normalized)
mask[triu_indices_from(mask)] = True

Anda perlu menggunakan confusion_normalizedkarena Anda ingin memplot matriks konfusi yang dinormalisasi.

from seaborn import axes_style
from matplotlib.pyplot import subplots

with axes_style("white"):
    f, ax = subplots(figsize=(15, 15))
    ax = heatmap(confusion_normalized, 
                 annot=True, 
                 mask=mask, 
                 vmax=1,
                 vmin=0,
                 square=True, 
                 cmap="YlGnBu",
                 linewidths=1.5, 
                 annot_kws={"size": 18})
    
savefig('heatmap.png')

Output Contoh