python是不是有绘制混淆矩阵的函数,怎么来实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python是不是有绘制混淆矩阵的函数,怎么来实现相关的知识,希望对你有一定的参考价值。

# -*- coding: UTF-8 -*-
"""绘制混淆矩阵图"""
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix


def confusion_matrix_plot_matplotlib(y_truth, y_predict, cmap=plt.cm.Blues):
    """Matplotlib绘制混淆矩阵图
    parameters
    ----------
        y_truth: 真实的y的值, 1d array
        y_predict: 预测的y的值, 1d array
        cmap: 画混淆矩阵图的配色风格, 使用cm.Blues,更多风格请参考官网
    """
    cm = confusion_matrix(y_truth, y_predict)
    plt.matshow(cm, cmap=cmap)  # 混淆矩阵图
    plt.colorbar()  # 颜色标签

    for x in range(len(cm)):  # 数据标签
        for y in range(len(cm)):
            plt.annotate(cm[x, y], xy=(x, y), horizontalalignment=\'center\', verticalalignment=\'center\')

    plt.ylabel(\'True label\')  # 坐标轴标签
    plt.xlabel(\'Predicted label\')  # 坐标轴标签
    plt.show()  # 显示作图结果


if __name__ == \'__main__\':
    y_truth = [1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0]
    y_predict = [1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0]
    confusion_matrix_plot_matplotlib(y_truth, y_predict)
参考技术A -- plt.annotate(cm[x, y], xy=(x, y)
++ plt.annotate(cm[x, y], xy=(y, x)

上述详细答案应该修改如上,要不然 pred,  truth 方向就反了,

此外,还可参考:

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

以上是关于python是不是有绘制混淆矩阵的函数,怎么来实现的主要内容,如果未能解决你的问题,请参考以下文章

python绘制混淆矩阵

matlab混淆矩阵怎么变大

如何在python中使用修改后的输出大小绘制混淆矩阵并输出为.svg图像?

如何用最少的代码在 Python 中绘制不同类型的混淆矩阵?

Matlab如何在matlab利用plotconfusion中绘制混淆矩阵

python绘制混淆矩阵(2s-AGCN结果分析)