Plot Confusion Matrix with scikit-learn without a Classifier

自古美人都是妖i 提交于 2020-05-15 04:02:54

问题


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?

Thanks in advance!


回答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:

  1. computing confusion matrix using confusion_matrix
  2. 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:

  • https://scikit-learn.org/0.21/auto_examples/model_selection/plot_confusion_matrix.html#sphx-glr-auto-examples-model-selection-plot-confusion-matrix-py


来源:https://stackoverflow.com/questions/59165149/plot-confusion-matrix-with-scikit-learn-without-a-classifier

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!