首页
学习
活动
专区
工具
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相比,判断模型的拟合效果,代码如下...# 去除x轴和y轴标签 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.6K40

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

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

    26410

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

    分类模型 分类问题其实在生活中处处可见,比如我们在大街上看妹纸,会把妹纸的外貌分为好看和非常好看(求生欲。。。);再比如我们刷微博,会把微博推送给我们的内容分为喜欢的和不喜欢的。...我们将微博的文字内容,图片内容等特征X代入到分类模型F中,得到分类结果是y_hat = [1, 1, 0, 0, 0]。...混淆矩阵 如何解决准确率的陷阱呢,接下来轮到混淆矩阵矩阵出场了。混淆矩阵,顾名思义,就是可以让你混淆各种模型评价指标的矩阵。...如果我们让阈值从1逐渐降低到0,会得到很多对TPR和1 - 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

    97130

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

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

    2.5K10

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

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

    1.4K10

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

    分类模型 分类问题其实在生活中处处可见,比如我们在大街上看妹纸,会把妹纸的外貌分为好看和非常好看(求生欲。。。);再比如我们刷微博,会把微博推送给我们的内容分为喜欢的和不喜欢的。...我们将微博的文字内容,图片内容等特征X代入到分类模型F中,得到分类结果是y_hat = [1, 1, 0, 0, 0]。...混淆矩阵 如何解决准确率的陷阱呢,接下来轮到混淆矩阵矩阵出场了。混淆矩阵,顾名思义,就是可以让你混淆各种模型评价指标的矩阵。...如果我们让阈值从1逐渐降低到0,会得到很多对TPR和1 - 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

    机器学习中分类任务的常用评估指标和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...这是一条曲线,绘制在y轴的TPR(正确率)和x轴的FPR(错误率)之间,其中TPR和FPR定义为- ? 如果您注意到,TPR和Recall具有相同的表示形式,就像您正确分类了多少正确样本一样。...在代码中,w1和w2分别对应正类和负类的权重。

    1.7K10

    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。

    49030

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

    以时下最流行的Python语言为工具,对图像处理技术的具体操作进行详细讲述,上一次的内容中已经为大家介绍了PIL python图像处理类库的使用,包括读取图像,转换灰度图像,创建缩略图,裁剪图像区域,调整尺寸和旋转...它可以很好地帮助我们处理数学运算,绘制图表,或者在图像上绘制点、直线和曲线,具有比PIL更强大的绘图功能。Matplotlib中的PyLib接口包含很多方便用户创建图像的函数。...▌绘制点和线 下面,我们来看一下在已绘制的图像上绘制点和线。...那么我们回过头来看一下上面的代码:首先为绘制原始图像,然后再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方法添加格式字符串参数来为坐标轴上的每条线自定义绘图样式。...在本示例中,我们将看到一种从三维数据绘制表面和绘制三维数据等高线的方法。 准备就绪 要绘制三维数据,需要将其排列成x、y和z分量的二维数组,其中x和y分量必须与z分量的形状相同。...在图 3.1的右侧,我们使用y轴上的对数刻度绘制近似误差。...我们使用对数缩放的y轴来绘制误差,因为有趣的是数量级。在非缩放的y轴上绘制它会得到一条非常靠近x轴的线,这不会显示出随着t值的变化误差的增加。对数缩放的y轴清楚地显示了这种增加。

    18100

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

    在最简单的形式中,可以按如下方式创建图形和轴域: fig = plt.figure() ax = plt.axes() 在Matplotlib中,图形(plt.Figure类的实例)可以视为单个容器,...轴域(plt.Axes类的实例)就是我们在上面看到的:带有刻度和标签的边界框,它最终将包含构成我们可视化的绘图元素。在本书中,我们通常使用变量名fig来引用图形实例,而ax来引用一个或一组轴域实例。...plt.axis()(注意这里axes(复数形式)与axis(单数形式)之间可能存在混淆,前者带有e而后者带有i)。...plt.axis()方法允许你通过一次调用来设置x和y限制,通过一个指定[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)绘制等高线图,其中X和Y表示坐标点的网格,Z表示对应位置的数据值。 10.

    16610

    【Python篇】matplotlib超详细教程-由入门到精通(下篇)

    前言 接上篇:【Python篇】matplotlib超详细教程-由入门到精通(上篇) 建议把代码复制到pycharm等IDE上面看实际效果,方便理解嗷❤️ 第六部分:保存与导出图表 在实际的应用场景中,...这样可以控制保存图像的实际尺寸。 6.5 解决中文乱码问题 在绘制带有中文标题或标签的图表时,可能会遇到显示乱码的问题。这是由于 matplotlib 默认使用的字体不支持中文。...接下来我们继续深入,学习 matplotlib 的更多高级功能,例如: 绘制 3D 图形 动态图表 动画的创建 第七部分:高级图表定制 在实际的数据可视化中,我们可能不仅仅满足于绘制简单的图表。...(x, y) # 自定义 X 轴和 Y 轴的刻度 plt.xticks([0, 1, 2, 3, 4, 5, 6], ['零', '一', '二', '三', '四', '五', '六']) # 自定义...add_artist():将第一个图例添加到当前的轴 (axes) 上,这样第二个图例可以独立添加。 拓展: 多个图例的使用有助于在一张图表中展示大量数据时,避免混淆,保持数据的清晰和可读性。

    43510

    超强,必会的机器学习评估指标

    model_precision = precision_score(y_test, y_pred) print("Precision:", model_precision)1.3 混淆矩阵混淆矩阵是一个表格...在 Python 中绘制混淆矩阵的一种简单方法是:from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay# 计算混淆矩阵...,作为性能的基准线plt.plot([0, 1], [0, 1], 'k--') # 设定图像的x轴和y轴的显示范围plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05])...# 设置x轴标签为“误报率”和y轴标签为“真阳性率”,即ROC曲线的标准轴标签plt.xlabel('误报率') plt.ylabel('真阳性率') # 设置图表标题为“接收器操作特征”,即ROC曲线的常见名称...在 Python 中,使用 scikit-learn:from sklearn.metrics import mean_squared_error # 注意修正导入函数名的大小写# 利用模型对数据集X

    17400
    领券