草庐IT

confusionchart()混淆矩阵绘图函数介绍(MATLAB)

Colbert_Z 2023-05-01 原文

confusionchart()函数用于创建分类问题的混淆矩阵图

目录

confusionchart()函数用法:

描述:

示例1(通过trueLabels和predictedLabels创建混淆矩阵图):

 示例2(通过现有的混淆矩阵创建混淆矩阵图):

 示例3(按精度或召回率排序类):


confusionchart()函数用法:

confusionchart(trueLabels,predictedLabels)
confusionchart(m)
confusionchart(m,classLabels)
confusionchart(parent,___)
confusionchart(___,Name,Value)
cm = confusionchart(___)

描述:

confusionchart(trueLabels,predictedLabels)

用真实标签trueLabel和预测标签predictedLabel创建一个混淆矩阵图,并返回一个ConfusionMatrixChart对象。混淆矩阵的行对应于真实类,列对应于预测类。对角线和非对角线单元格分别对应于正确和错误分类的观察结果。创建混淆矩阵图后,使用cm修改混淆矩阵图。有关属性列表,可以参阅ConfusionMatrixChart属性。

confusionchart(m)用数字混淆矩阵m创建混淆矩阵图。如果工作区中已经有了混淆矩阵,可以使用此语法。

confusionchart(m,classLabels)指定沿x轴和y轴出现的类标签。如果工作区中已有混淆矩阵和类标签,可以使用此语法。

confusionchart(parent,___)在指定的图形、面板或选项卡中创建混淆图。

confusionchart(___,Name,Value)使用一个或多个名称值对参数指定其他ConfusionMatrixChart属性。在所有其他输入参数之后指定属性。有关属性列表,可以参阅ConfusionMatrixChart属性。

cm=confusionchart(___)返回ConfusionMatrixChart对象。创建图表后,使用cm修改图表的属性。有关属性列表,可以参阅ConfusionMatrixChart属性。

示例1(通过trueLabels和predictedLabels创建混淆矩阵图):

创建混淆矩阵图,trueLabels是分类问题的真实标签,predictedLabels是预测标签

load('Cifar10Labels.mat','trueLabels','predictedLabels');

figure %创建混淆矩阵图
cm = confusionchart(trueLabels,predictedLabels);

通过更改属性值或者添加列和行的摘要以及标题可以来修改混淆矩阵图的外观。

列规范化列摘要(column-normalized column summary)显示每个预测类别的正确和错误分类的观察值的数量,作为相应预测类别的观察值数量的百分比。

行规范化的行摘要(row-normalized row summary)显示每个真实类的正确和错误分类的观察值的数量,作为相应真实类的观察值数量的百分比。

cm.ColumnSummary = 'column-normalized';
cm.RowSummary = 'row-normalized';
cm.Title = 'CIFAR-10 Confusion Matrix';

 示例2(通过现有的混淆矩阵创建混淆矩阵图):

如果你的工作区里已经有了混淆矩阵m,你可以直接通过他创建混淆矩阵图。

加载示例混淆矩阵m和关联的类标签classLabels

load('Cifar10ConfusionMat.mat','m','classLabels');
m

classLabels是混淆矩阵侧面的标签名,需要是 categorical类型,可以通过以下方法转换为categorical类型。

classLabels
 
%%%%转换为categorical类型的演示代码
state ={'MA','ME','CT','VT','ME','NH','VT','MA','NH','CT','RI'};
state = categorical(state)

 这里使用了和混淆矩阵m阶数相同的classLabels。

 建立混淆矩阵图

cm = confusionchart(m,classLabels);

 示例3(按精度或召回率排序类):

精度P(Precision) 召回率R(Recall)为评价指标

首先用示例1的方法创建混淆矩阵图

load('Cifar10Labels.mat','trueLabels','predictedLabels');
figure
cm = confusionchart(trueLabels,predictedLabels, ...
    'ColumnSummary','column-normalized', ...
    'RowSummary','row-normalized');

要按召回率R(Recall)对混淆矩阵的类进行排序,需要将每行中的单元格的值进行归一化,即按具有相同真实类(True Class)的观察值的数量进行归一化。根据相应的对角单元格值对类进行排序,并重置单元格值的标准化。现在对这些类进行排序,可以使右侧行摘要蓝色单元格中的数值按照百分比降序。

cm.Normalization = 'row-normalized';
sortClasses(cm,'descending-diagonal');
cm.Normalization = 'absolute';

同样的,要按精度P(Precision)对混淆矩阵的类进行排序,需要将每列中的单元格值进行归一化,即按具有相同预测类(Predicted Class)的观察值的数量进行归一化。根据相应的对角单元格值对类进行排序,并重置单元格值的标准化。现在对这些类进行排序,可以使底侧行摘要蓝色单元格中的数值按照百分比降序。

cm.Normalization = 'column-normalized';
sortClasses(cm,'descending-diagonal');
cm.Normalization = 'absolute';

有关confusionchart()混淆矩阵绘图函数介绍(MATLAB)的更多相关文章

  1. ruby - 在没有 sass 引擎的情况下使用 sass 颜色函数 - 2

    我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re

  2. ruby-on-rails - 在 ruby​​ 中使用 gsub 函数替换单词 - 2

    我正在尝试用ruby​​中的gsub函数替换字符串中的某些单词,但有时效果很好,在某些情况下会出现此错误?这种格式有什么问题吗NoMethodError(undefinedmethod`gsub!'fornil:NilClass):模型.rbclassTest"replacethisID1",WAY=>"replacethisID2andID3",DELTA=>"replacethisID4"}end另一个模型.rbclassCheck 最佳答案 啊,我找到了!gsub!是一个非常奇怪的方法。首先,它替换了字符串,所以它实际上修改了

  3. ruby - 在 Ruby 中有条件地定义函数 - 2

    我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin

  4. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  5. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  6. ruby - 在 Ruby 中按名称传递函数 - 2

    如何在Ruby中按名称传递函数?(我使用Ruby才几个小时,所以我还在想办法。)nums=[1,2,3,4]#Thisworks,butismoreverbosethanI'dlikenums.eachdo|i|putsiend#InJS,Icouldjustdosomethinglike:#nums.forEach(console.log)#InF#,itwouldbesomethinglike:#List.iternums(printf"%A")#InRuby,IwishIcoulddosomethinglike:nums.eachputs在Ruby中能不能做到类似的简洁?我可以只

  7. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  8. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  9. C51单片机——实现用独立按键控制LED亮灭(调用函数篇) - 2

    说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时

  10. MIMO-OFDM无线通信技术及MATLAB实现(1)无线信道:传播和衰落 - 2

     MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO

随机推荐