首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Python中绘制带有自定义x和y轴的混淆矩阵?

在Python中绘制带有自定义x和y轴的混淆矩阵,可以使用matplotlib库来实现。混淆矩阵是用于评估分类模型性能的一种矩阵表示方法,它展示了模型预测结果与真实标签之间的对应关系。

下面是一个示例代码,演示如何使用matplotlib库在Python中绘制带有自定义x和y轴的混淆矩阵:

代码语言:txt
复制
import numpy as np
import matplotlib.pyplot as plt

# 定义混淆矩阵数据
confusion_matrix = np.array([[10, 2, 3],
                             [4, 15, 6],
                             [7, 8, 20]])

# 定义自定义x和y轴标签
labels = ['Class 1', 'Class 2', 'Class 3']

# 绘制混淆矩阵
fig, ax = plt.subplots()
im = ax.imshow(confusion_matrix, cmap='Blues')

# 设置颜色条
cbar = ax.figure.colorbar(im, ax=ax)

# 设置x和y轴刻度
ax.set_xticks(np.arange(len(labels)))
ax.set_yticks(np.arange(len(labels)))
ax.set_xticklabels(labels)
ax.set_yticklabels(labels)

# 在矩阵格子中显示数值
for i in range(len(labels)):
    for j in range(len(labels)):
        text = ax.text(j, i, confusion_matrix[i, j],
                       ha='center', va='center', color='black')

# 设置图表标题和标签
ax.set_title('Confusion Matrix')
ax.set_xlabel('Predicted Label')
ax.set_ylabel('True Label')

# 显示图表
plt.show()

在这个示例代码中,我们首先定义了一个3x3的混淆矩阵,然后使用matplotlib库创建一个图表,并使用imshow函数绘制混淆矩阵的热力图。接着,我们设置了自定义的x和y轴标签,并使用set_xticks和set_yticks函数设置刻度。然后,使用set_xticklabels和set_yticklabels函数设置刻度标签。接下来,我们使用text函数在每个矩阵格子中显示对应的数值。最后,我们设置了图表的标题和标签,并使用show函数显示图表。

这是一个简单的示例,你可以根据自己的需求进行进一步的定制和优化。关于混淆矩阵的更多信息和应用场景,你可以参考腾讯云机器学习平台的相关文档:混淆矩阵介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python—结巴分词原理理解,Hmm转移概率矩阵混淆矩阵

结巴分词过程: jieba分词python 代码 结巴分词准备工作 开发者首先根据大量的人民日报训练了得到了字典库、Hmm转移概率矩阵混淆矩阵。 1....加载字典, 生成trie树 为什么要加载字典树呢,是因为如果没有字典树,那么扫描将会是一个庞大工程,有了字典树就可以该分支上扫描。...但是现在就不会了,只要把“中国人民”“中国人民银行”之间节点搜索一遍就行了,大大节省了时间。有句话叫以空间换时间,最适合用来表达这个意思。 2....给定待分词句子, 使用正则获取连续 中文字符英文字符, 切分成 短语列表, 对每个短语使用DAG(查字典)动态规划, 得到最大概率路径, 对DAG那些没有字典查到字, 组合成一个新片段短语..., 使用HMM模型进行分词, 也就是作者说识别新词, 即识别字典外新词.

1.6K50

python—结巴分词原理理解,Hmm转移概率矩阵混淆矩阵

结巴分词过程: jieba分词python 代码 结巴分词准备工作 开发者首先根据大量的人民日报训练了得到了字典库、Hmm转移概率矩阵混淆矩阵。 1....加载字典, 生成trie树 为什么要加载字典树呢,是因为如果没有字典树,那么扫描将会是一个庞大工程,有了字典树就可以该分支上扫描。...但是现在就不会了,只要把“中国人民”“中国人民银行”之间节点搜索一遍就行了,大大节省了时间。有句话叫以空间换时间,最适合用来表达这个意思。 2....给定待分词句子, 使用正则获取连续 中文字符英文字符, 切分成 短语列表, 对每个短语使用DAG(查字典)动态规划, 得到最大概率路径, 对DAG那些没有字典查到字, 组合成一个新片段短语..., 使用HMM模型进行分词, 也就是作者说识别新词, 即识别字典外新词.

1.4K20
  • 从零开始学Python【38】--朴素贝叶斯模型(实战部分)

    【前言】 《从零开始学Python【37】--朴素贝叶斯模型(理论部分)》我们详细介绍了朴素贝叶斯算法基本概念理论知识,在这一期我们继续介绍该算法实战案例。...为检验模型测试数据集上预测效果,需要构建混淆矩阵绘制ROC曲线,其中混淆矩阵用于模型准确率、覆盖率、精准率指标的计算;ROC曲线用于计算AUC值,并将AUC值与0.8相比,判断模型拟合效果,代码如下...# 去除xy标签 plt.xlabel('Real') plt.ylabel('Predict') # 显示图形 plt.show() ?...(X_test) # 构建混淆矩阵 cm = pd.crosstab(mnb_pred,y_test) # 绘制混淆矩阵图 sns.heatmap(cm, annot = True, cmap = '...# 模型测试数据集上预测 bnb_pred = bnb.predict(X_test) # 构建混淆矩阵 cm = pd.crosstab(bnb_pred,y_test) # 绘制混淆矩阵图 sns.heatmap

    2.5K40

    机器学习扩展包MLXtend绘制多种图形

    图像:支持图像数据处理分析,扩展了机器学习视觉领域应用。...legend:一个布尔值,默认为True,表示是否图中显示图例。xlim:一个数组或字符串,默认为'auto',表示X限制范围。如果为'auto',则自动计算合适X范围。...混淆矩阵是一个机器学习模式识别中常用表,它展示了算法特定数据集上分类性能。具体来说,混淆矩阵显示了算法预测类别与实际类别之间关系。...axis:MatplotlibAxes对象,如果提供,则在该对象上绘制混淆矩阵,否则创建一个新Axes对象,默认为None。...colorbar=True, # 颜色柱 show_absolute=False, # 不显示绝对值 show_normed=True # 是否标准化)plt.show()11.4 自定义类别名混淆矩阵使用自定义类别名

    21110

    tensorflow2.2使用Keras自定义模型指标度量

    这里,我们将展示如何基于混淆矩阵(召回、精度f1)实现度量,并展示如何在tensorflow 2.2非常简单地使用它们。...本文中,我将使用Fashion MNIST来进行说明。然而,这并不是本文唯一目标,因为这可以通过训练结束时简单地验证集上绘制混淆矩阵来实现。...我们在这里讨论是轻松扩展keras.metrics能力。用来训练期间跟踪混淆矩阵度量,可以用来跟踪类特定召回、精度f1,并使用keras按照通常方式绘制它们。...由于tensorflow 2.2,可以透明地修改每个训练步骤工作(例如,一个小批量中进行训练),而以前必须编写一个自定义训练循环中调用无限函数,并且必须注意用tf.功能启用自动签名。...6左右,但是训练本身是稳定(情节没有太多跳跃)。 最后,让我们看看混淆矩阵,看看类6发生了什么 ? 在混淆矩阵,真实类y上,预测类x上。

    2.5K10

    分类模型评估方法及Python实现

    分类模型 分类问题其实在生活处处可见,比如我们大街上看妹纸,会把妹纸外貌分为好看非常好看(求生欲。。。);再比如我们刷微博,会把微博推送给我们内容分为喜欢不喜欢。...我们将微博文字内容,图片内容等特征X代入到分类模型F,得到分类结果是y_hat = [1, 1, 0, 0, 0]。...混淆矩阵 如何解决准确率陷阱呢,接下来轮到混淆矩阵矩阵出场了。混淆矩阵,顾名思义,就是可以让你混淆各种模型评价指标的矩阵。...如果我们让阈值从1逐渐降低到0,会得到很多对TPR1 - TNR,将这些值当做数据点,以TPR为y,1 - TNR为x绘制出一条曲线,这条曲线就是ROC曲线。...10.6 预测值集中0.5左右ROC曲线 阈值为0.5时,我们让预测值有80%可能性是正确预测,但值集中0.5左右 seed(220)def f(x): if x == 1: if rand

    96130

    分类模型评估方法及Python实现

    分类模型 分类问题其实在生活处处可见,比如我们大街上看妹纸,会把妹纸外貌分为好看非常好看(求生欲。。。);再比如我们刷微博,会把微博推送给我们内容分为喜欢不喜欢。...我们将微博文字内容,图片内容等特征X代入到分类模型F,得到分类结果是y_hat = [1, 1, 0, 0, 0]。...混淆矩阵 如何解决准确率陷阱呢,接下来轮到混淆矩阵矩阵出场了。混淆矩阵,顾名思义,就是可以让你混淆各种模型评价指标的矩阵。...如果我们让阈值从1逐渐降低到0,会得到很多对TPR1 - TNR,将这些值当做数据点,以TPR为y,1 - TNR为x绘制出一条曲线,这条曲线就是ROC曲线。...10.6 预测值集中0.5左右ROC曲线 阈值为0.5时,我们让预测值有80%可能性是正确预测,但值集中0.5左右 seed(220) def f(x): if x == 1:

    1.3K10

    机器学习分类问题:9个常用评估指标总结

    混淆矩阵只不过是一个具有两个维度表,即“实际”“预测”,此外,这两个维度都有“真阳性(TP)”、“真阴性(TN)”、“假阳性(FP)”“假阴性(FN)”,如下所示: 与混淆矩阵相关术语解释如下...1,预测数据点类别为0 我们可以使用sklearn混淆矩阵函数confusion_matrix,用于计算分类模型混淆矩阵度量。...我们可以通过混淆矩阵,借助以下公式轻松计算: 我们可以使用sklearnaccuracy_score函数,计算分类模型准确性指标 3 Precision precision定义为ML模型预测结果:...从数学上讲,可以通过绘制不同阈值下TPR(真阳性率),即specificity或recall与FPR(假阳性率),下图显示了ROC、AUC,y为TPR,x为FPR: 我们可以使用sklearn...它基本上定义概率估计上,并测量分类模型性能,其中输入是介于01之间概率值。 通过精确区分,可以更清楚地理解它。

    1.3K10

    机器学习中分类任务常用评估指标python代码实现

    混淆矩阵 混淆矩阵定义为(类x类)大小矩阵,因此对于二进制分类,它是2x2,对于3类问题,它是3x3,依此类推。为简单起见,让我们考虑二元分类并了解矩阵组成部分。 ?...(y, y_pred): return metrics.confusion_matrix(y, y_pred) 如图1所示,混淆矩阵成分是TP,TN,FP,FN,您也可以使用普通python计算它们...return metrics.accuracy_score(y, y_pred) 也可以使用Python混淆矩阵组件中计算出来,如下所示- def calculate_accuracy(y, y_pred...这是一条曲线,绘制yTPR(正确率)xFPR(错误率)之间,其中TPRFPR定义为- ? 如果您注意到,TPRRecall具有相同表示形式,就像您正确分类了多少正确样本一样。...代码,w1w2分别对应正类负类权重。

    1.6K10

    facet_share {ggpol} 共享分面

    , fill = "yellow") + ggtitle(label = "geom_tshighlight 可以用来高亮时间序列一个时段") 半箱线图一半 jitter 散点图 # geom_boxjitter...用于绘制混合箱线图: # 一半箱线图一半 jitter 散点图,以及可选误差线。...来设置点形状大小 # 如果将 boxplot.expand 参数设置为 TRUE,则会隐藏 jitter 点图, # 其功能就类似于 geom_boxplot 绘制完整箱线图,但添加了误差线...混淆矩阵 ## geom_confmat 可以用于绘制混淆矩阵 x <- sample(LETTERS[seq(4)], 50, replace = TRUE) y <- sample(LETTERS...# # 如果想要将以镜像方式放置,需要将其中一个分面乘上 -1, # 如果想要水平方式,则将放置左边分面乘上 -1, # 如果是竖直放置,则将下面的分面乘上 -1。

    47930

    【干货】计算机视觉实战系列02——用Python做图像处理

    以时下最流行Python语言为工具,对图像处理技术具体操作进行详细讲述,上一次内容已经为大家介绍了PIL python图像处理类库使用,包括读取图像,转换灰度图像,创建缩略图,裁剪图像区域,调整尺寸旋转...它可以很好地帮助我们处理数学运算,绘制图表,或者图像上绘制点、直线和曲线,具有比PIL更强大绘图功能。MatplotlibPyLib接口包含很多方便用户创建图像函数。...▌绘制线 下面,我们来看一下绘制图像上绘制线。...那么我们回过头来看一下上面的代码:首先为绘制原始图像,然后再x,y列表给定点x坐标,y坐标上绘制出蓝色五角星状标记点,注意,我们取x[:2]意为取x列表元素第零个第一个,不包含第二个元素,y列表同理...绘图时有很多选项可以控制图像颜色样式: plot(x,y) #默认为蓝色实线 plot(x,y,’r*’) #红色星状标记 plot(x,y,’go-’) #带有圆圈标记绿线

    3.4K130

    Python 数学应用(一)

    第一个参数是x数据,第二个是y数据。该函数返回一个用于绘制数据对象句柄: plt.plot(x, y) 这将在新图形上绘制y值与x值。...为了防止 Matplotlib 每个数据点之间绘制线条,我们可以将绘图样式更改为“关闭”线条绘制。在这个示例,我们将通过向plot方法添加格式字符串参数来为坐标每条线自定义绘图样式。...本示例,我们将看到一种从三维数据绘制表面绘制三维数据等高线方法。 准备就绪 要绘制三维数据,需要将其排列成xyz分量二维数组,其中xy分量必须与z分量形状相同。...图 3.1右侧,我们使用y对数刻度绘制近似误差。...我们使用对数缩放y绘制误差,因为有趣是数量级。非缩放y绘制它会得到一条非常靠近x线,这不会显示出随着t值变化误差增加。对数缩放y清楚地显示了这种增加。

    14700

    数据科学 IPython 笔记本 8.4 简单折线图

    最简单形式,可以按如下方式创建图形域: fig = plt.figure() ax = plt.axes() Matplotlib,图形(plt.Figure类实例)可以视为单个容器,...域(plt.Axes类实例)就是我们在上面看到带有刻度标签边界框,它最终将包含构成我们可视化绘图元素。本书中,我们通常使用变量名fig来引用图形实例,而ax来引用一个或一组域实例。...plt.axis()(注意这里axes(复数形式)与axis(单数形式)之间可能存在混淆,前者带有e而后者带有i)。...plt.axis()方法允许你通过一次调用来设置xy限制,通过一个指定[xmin, xmax, ymin, ymax]列表: 注:本书中,如果axes指代两个围成区域,一律翻译为“域”。...指定格式化图形图例更多信息,可以plt.legend文档字符串中找到;此外,我们将在“自定义图例”,介绍一些更高级图例选项。

    1K30

    【深度学习】 Python NumPy 系列教程(十四):Matplotlib详解:1、2d绘图(下):箱线图、热力图、面积图、等高线图、极坐标图

    Python本身是一种伟大通用编程语言,一些流行库(numpy,scipy,matplotlib)帮助下,成为了科学计算强大环境。...图表自定义:Matplotlib提供了丰富图表自定义选项,可以调整图表标题、标签、坐标、线条样式、颜色等。这使得您能够创建符合特定需求和品味高质量图表。...多子图布局:Matplotlib允许您在单个图像创建多个子图,以便同时展示多个相关图表或数据视图。您可以自定义子图布局排列,以满足特定展示需求。...Z = np.sin(np.sqrt(X**2 + Y**2)) # 绘制等高线图 plt.contour(X, Y, Z) # 添加标题标签 plt.title("等高线图示例") plt.xlabel...通过对坐标点进行某种运算,生成了对应二维数据。 使用plt.contour(X, Y, Z)绘制等高线图,其中XY表示坐标点网格,Z表示对应位置数据值。 10.

    14410
    领券