从Sklearn绘制混淆矩阵时出错



我正在尝试使用sklearn混淆矩阵类来绘制混淆矩阵。

这是我使用的代码:

from sklearn.metrics import roc_curve, auc, plot_confusion_matrix
import matplotlib.pyplot as plt
disp = plot_confusion_matrix(self.g_cv.best_estimator_ , self.test_X, self.test_Y,
cmap=plt.cm.Blues)
plt.title('Confusion Matrix')
plt.plot(disp)

这是基于Sklearn网站上的这个例子:

https://scikit-learn.org/stable/modules/generated/sklearn.metrics.plot_confusion_matrix.html

然而,当调用此函数时,我遇到了一个错误。

TypeError: float() argument must be a string or a number, not 'ConfusionMatrixDisplay'

它确实绘制了它,但也抛出了这个错误。正在绘制的返回对象是否有问题?

尝试绘制disp = plot_confusion_matrix(...返回的ConfusionMatrixDisplay对象时引发错误。这是为了立即创造一个情节。

使用plt.show()而不是plt.plot(disp)就足够了。matplotlib.pyplot.plot()期望两个数组作为输入。

要么你可以立即用绘制混淆矩阵

disp = plot_confusion_matrix(self.g_cv.best_estimator_ , self.test_X, self.test_Y, cmap=plt.cm.Blues)
plt.show()

或者你先创建它,然后显示

disp = ConfusionMatrixDisplay(self.g_cv.best_estimator_ , self.test_X, self.test_Y)
disp = disp.plot(cmap=plt.cm.Blues)
plt.show()

最新更新