【问题标题】:Error Plotting Confusion matrix from Sklearn错误绘制来自 Sklearn 的混淆矩阵
【发布时间】:2021-03-13 01:08:34
【问题描述】:

我正在尝试使用 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'

它确实会绘制它,但也会引发此错误。正在绘制的返回对象是否有问题?

【问题讨论】:

    标签: python matplotlib scikit-learn


    【解决方案1】:

    在尝试绘制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()
    

    【讨论】:

      猜你喜欢
      • 2019-10-15
      • 2013-10-14
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2018-07-26
      相关资源
      最近更新 更多