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中使用修改后的输出大小绘制混淆矩阵并输出为.svg图像?
如何用最少的代码在 Python 中绘制不同类型的混淆矩阵?