Plot Confusion Matrix With Scikit-learn Without A Classifier
Solution 1:
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:
- computing confusion matrix using
confusion_matrix
- getting the labels (unique values of y which correspond to 0,1,2.. in the 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
Solution 2:
The below code is to create confusion matrix from true values and predicted values. If you have already created the confusion matrix you can just run the last line below.
import seaborn as sns
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_true, y_pred)
f = sns.heatmap(cm, annot=True, fmt='d')
Solution 3:
You could use a one-line "identity classifier" if that fits your use case.
IC = type('IdentityClassifier', (), {"predict": lambda i : i, "_estimator_type": "classifier"})
plot_confusion_matrix(IC, y_pred, y_test, normalize='true', values_format='.2%');
( see my original answer in: plot_confusion_matrix without estimator )
Post a Comment for "Plot Confusion Matrix With Scikit-learn Without A Classifier"