web-dev-qa-db-fra.com

Tracer une matrice de confusion avec scikit-learn sans classificateur

J'ai une matrice de confusion créée avec sklearn.metrics.confusion_matrix.

Maintenant, je voudrais le tracer avec sklearn.metrics.plot_confusion_matrix, mais le premier paramètre est le classificateur entraîné, comme spécifié dans documentation . Le problème est que je n'ai pas de classificateur; les résultats ont été obtenus par des calculs manuels.

Est-il encore possible de tracer la matrice de confusion sur une seule ligne via scikit-learn, ou dois-je le coder moi-même avec matplotlib?

Merci d'avance!

8
Irina

Le fait que vous puissiez importer plot_confusion_matrix Suggère directement que vous avez la dernière version de scikit-learn (0.22) installée. Vous pouvez donc simplement regarder le code source de plot_confusion_matrix() pour voir comment il utilise le estimator.

À partir de dernières sources ici , l'estimateur est utilisé pour:

  1. calcul de la matrice de confusion avec confusion_matrix
  2. obtenir les étiquettes (valeurs uniques de y qui correspondent à 0,1,2 .. dans la matrice de confusion)

Donc, si vous avez déjà ces deux choses, vous avez juste besoin de la partie ci-dessous:

import matplotlib.pyplot as plt
from sklearn.metrics import ConfusionMatrixDisplay

disp = ConfusionMatrixDisplay(confusion_matrix=cm,
                              display_labels=display_labels)


# NOTE: Fill all variables here with default values of the plot_confusion_matrix
disp = disp.plot(include_values=include_values,
                 cmap=cmap, ax=ax, xticks_rotation=xticks_rotation)

plt.show()

Regardez la NOTE dans le commentaire.

Pour les anciennes versions, vous pouvez voir comment la partie matplotlib est codée ici:

5
Vivek Kumar