Oggi ho provato a tracciare la matrice di confusione dal mio modello di classificazione.Matstotlib matshow con molte stringhe
Dopo la ricerca in alcune pagine, ho trovato che matshow
da pyplot
può aiutarmi.
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
def plot_confusion_matrix(cm, title='Confusion matrix', cmap=plt.cm.Blues, labels=None):
fig = plt.figure()
ax = fig.add_subplot(111)
cax = ax.matshow(cm)
plt.title(title)
fig.colorbar(cax)
if labels:
ax.set_xticklabels([''] + labels)
ax.set_yticklabels([''] + labels)
plt.xlabel('Predicted')
plt.ylabel('True')
plt.show()
Funziona bene se ho alcune etichette
y_true = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'a', 'c', 'd', 'b', 'a', 'b', 'a']
y_pred = ['a', 'b', 'c', 'd', 'a', 'b', 'b', 'a', 'c', 'a', 'a', 'a', 'a', 'a']
labels = list(set(y_true))
cm = confusion_matrix(y_true, y_pred)
plot_confusion_matrix(cm, labels=labels)
Ma se ho molte etichette, alcune etichette non mostrano correttamente
y_true = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n']
y_pred = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n']
labels = list(set(y_true))
cm = confusion_matrix(y_true, y_pred)
plot_confusion_matrix(cm, labels=labels)
La mia domanda è: come posso visualizzare TUTTE le etichette nella trama di matshow? Ho provato qualcosa come fontdict
ma ancora non funziona
ha funzionato. grazie Tom Un'altra domanda, sai come trarre valore dalla matrice di confusione nella trama di matshow? –
probabilmente è meglio fare una nuova domanda con maggiori dettagli di quello che vuoi – tom