La visualizzazione della matrice di confusione della mappa di calore Seaborn non viene visualizzata come previsto
Aug 19 2020
per favore guidami sulla visualizzazione della mappa di calore per la matrice di confusione Ho provato diverse dimensioni del fico ma non ho ottenuto una visualizzazione corretta Il mio codice qui sotto e la schermata

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)
Risposte
Ahx Aug 19 2020 at 21:40
Il primo problema che ho riscontrato è la dimensione del carattere
from seaborn import set
from seaborn import set_style
set(font_scale=1.8)
set_style("darkgrid")
oppure puoi impostare lo stile whitegrid
Hai molte funzionalità, quindi ti consiglio di applicare la maschera per un approccio semplice.
from numpy import zeros_like
from numpy import triu_indices_from
mask = zeros_like(confusion_normalized)
mask[triu_indices_from(mask)] = True
È necessario utilizzare confusion_normalized
poiché si desidera tracciare la matrice di confusione normalizzata.
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')
Un output di esempio