我正在尝试使用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'
它确实绘制了它,但也抛出了这个错误。正在绘制的返回对象中是否存在错误?
发布于 2020-12-01 07:12:16
尝试绘制disp = plot_confusion_matrix(...
返回的ConfusionMatrixDisplay-object时引发错误。它的目的是立即创建一个情节。
使用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()
https://stackoverflow.com/questions/65084962
复制相似问题