I have a confusion matrix created with sklearn.metrics.confusion_matrix
.
Now, I would like to plot it with sklearn.metrics.plot_confusion_matrix
, but the first parameter is the trained classifier, as specified in the documentation. The problem is that I don't have a classifier; the results were obtained doing manual calculations.
Is it still possible to plot the confusion matrix in one line via scikit-learn, or do I have to code it myself with matplotlib?
The fact that you can import plot_confusion_matrix
directly suggests that you have the latest version of scikit-learn (0.22) installed. So you can just look at the source code of plot_confusion_matrix()
to see how its using the estimator
.
From the latest sources here, the estimator is used for:
confusion_matrix
So if you have those two things already, you just need the below part:
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()
Do look at the NOTE in comment.
For older versions, you can look at how the matplotlib part is coded here