主要内容

confusionchart

为分类问题建立混淆矩阵图

描述

例子

confusionchart (trueLabelspredictedLabels从真标签创建一个混淆矩阵图表trueLabels和预测的标签predictedLabels并返回一个ConfusionMatrixChart对象。混淆矩阵的行对应真实类,列对应预测类。对角线和非对角线单元格分别对应正确分类和错误分类的观测结果。使用厘米在混淆矩阵图创建后对其进行修改。有关属性列表,请参见ConfusionMatrixChart属性

confusionchart (从数值混淆矩阵创建一个混淆矩阵图表.如果工作空间中已经有一个数字混淆矩阵,则使用此语法。

confusionchart (classLabels类中出现的类标签x设在和y设在。如果您已经在工作空间中有一个数字混淆矩阵和类标签,请使用此语法。

confusionchart (___在指定的图、面板或选项卡中创建混淆图表

例子

confusionchart (___名称,值指定附加的ConfusionMatrixChart使用一个或多个名值对参数的属性。在所有其他输入参数之后指定属性。有关属性列表,请参见ConfusionMatrixChart属性

厘米= confusionchart (___返回ConfusionMatrixChart对象。使用厘米在创建图表后修改其属性。有关属性列表,请参见ConfusionMatrixChart属性

例子

全部折叠

载入费雪的虹膜数据集。

负载fisheririsX =量;Y =物种;

X是一个数字矩阵,其中包含150个鸢尾的四个花瓣的测量值。Y是包含相应虹膜种类的字符向量的单元格数组。

训练k-最近邻(KNN)分类器,其中预测器中最近邻的数量(k)是5。一个好的做法是标准化数值预测器数据。

Mdl = fitcknn (X, Y,“NumNeighbors”5,“标准化”1);

预测训练数据的标签。

predictedY = resubPredict (Mdl);

从真实的标签创建一个混淆矩阵图表Y预测的标签predictedY

厘米= confusionchart (Y, predictedY);

图包含一个类型为confusimatrixchart的对象。

混淆矩阵显示每个单元格中的观察总数。混淆矩阵的行对应真实类,列对应预测类。对角线和非对角线单元格分别对应正确分类和错误分类的观测结果。

默认情况下,confusionchart将类按定义的自然顺序排序排序.在本例中,类标签是字符向量,因此confusionchart按字母顺序对类进行排序。使用sortClasses按指定的顺序或按混淆矩阵值对类进行排序。

NormalizedValues属性包含混淆矩阵的值。使用点表示法显示这些值。

厘米。NormalizedValues
ans =3×350 0 0 0 47 3 0 4 46

通过改变属性值来修改混淆矩阵图的外观和行为。添加一个标题。

厘米。Title =“利用KNN进行鸢尾花分类”

添加列和行摘要。

厘米。RowSummary =“row-normalized”;厘米。ColumnSummary =“column-normalized”

图包含一个类型为confusimatrixchart的对象。confusimatrixchart类型的图表标题为“使用KNN进行鸢尾花分类”。

行规范化的行摘要显示每个真实类的正确分类和错误分类观察的百分比。列归一化列摘要显示每个预测类的正确分类和错误分类观察的百分比。

创建一个混淆矩阵图,并根据类明智的真阳性率(召回率)或类明智的阳性预测值(准确率)对图的类进行排序。

加载和检查心律失常数据集。

负载心律失常isLabels =独特(Y);nLabels =元素个数(isLabels)
nLabels = 13
汇总(分类(Y))
数值计数百分比1 245 54.20% 2 44 9.73% 3 15 3.32% 4 15 3.32% 5 13 2.88% 6 25 5.53% 73 0.66% 8 2 0.44% 99 1.99% 10 50 11.06% 14 4 0.88% 15 5 1.11% 16 22 4.87%

数据包含16个不同的标签,描述不同程度的心律失常,但反应(Y)只包含13个不同的标签。

训练一棵分类树,并预测该树的替换响应。

Mdl = fitctree (X, Y);predictedY = resubPredict (Mdl);

从真实的标签创建一个混淆矩阵图表Y预测的标签predictedY.指定“RowSummary”作为“row-normalized”在行摘要中显示真阳性率和假阳性率。同时,指定“ColumnSummary”作为“column-normalized”在列摘要中显示阳性预测值和错误发现率。

无花果=图;厘米= confusionchart (Y, predictedY,“RowSummary”“row-normalized”“ColumnSummary”“column-normalized”);

调整混淆图表的容器的大小,以便在行摘要中显示百分比。

fig_Position = fig.Position;fig_Position (3) = fig_Position (3) * 1.5;fig.Position = fig_Position;

图包含一个类型为confusimatrixchart的对象。

要根据真阳性率对混淆矩阵进行排序,请通过设置归一化财产“row-normalized”然后使用sortClasses.排序后,重置归一化属性回“绝对”显示每个单元格中的观察总数。

厘米。归一化=“row-normalized”;sortClasses(厘米,“descending-diagonal”)厘米。归一化=“绝对”

图包含一个类型为confusimatrixchart的对象。

要根据阳性预测值对混淆矩阵进行排序,请通过设置归一化财产“column-normalized”然后使用sortClasses.排序后,重置归一化属性回“绝对”显示每个单元格中的观察总数。

厘米。归一化=“column-normalized”;sortClasses(厘米,“descending-diagonal”)厘米。归一化=“绝对”

图包含一个类型为confusimatrixchart的对象。

在Fisher虹膜数据集的高数组上执行分类。计算已知和预测的高标签的混淆矩阵图confusionchart函数。

当您在高数组上执行计算时,MATLAB®使用并行池(如果您有并行计算工具箱™则默认)或本地MATLAB会话。若要在拥有“并行计算工具箱”时使用本地MATLAB会话运行示例,请使用mapreduce函数。

mapreduce (0)

载入费雪的虹膜数据集。

负载fisheriris

转换内存中的数组而且物种高大的数组。

tx =高(量);泰=高(物种);

找出高数组中的观测数。

numObs =收集(长度(ty));将高数组收集到内存中

设置随机数生成器的种子rng而且tallrng为再现性,随机选取训练样本。根据工作人员的数量和tall数组的执行环境,结果可能有所不同。有关详细信息,请参见控制代码运行的位置

rng (“默认”) tallrng (“默认”) numTrain = floor(numObs/2);[txTrain, trIdx] = datasample (tx numTrain,“替换”、假);tyTrain =泰(trIdx);

在训练样本上拟合决策树分类器模型。

mdl = fitctree (txTrain tyTrain);
评估高表达式使用当地的MATLAB会话:通过1 2:在0.71秒完成,通过2 2:在0.68秒完成评估在2.2秒完成评估高表达式使用本地MATLAB会话:——通过1 4:在0.32秒完成,通过2 4:在0.42秒完成,通过3 4:在0.44秒完成,通过4 4:在0.67秒完成评估在2.3秒完成评估高表达式使用本地MATLAB会话:4 -通过1:完成0.21秒-通过2 4:在0.3秒完成,通过3 4:在0.29秒完成,通过4 4:在0.59秒完成评估在1.8秒完成评估高表达式使用本地MATLAB会话:——通过1 4:在0.16秒完成,通过2 4:在0.21秒完成,通过3 4:在0.26秒完成,通过4 4:在0.45秒完成评估在1.3秒完成评估高表达式使用本地MATLAB会话:4 -通过1:在0.16秒内完成-通过2 / 4:在0.17秒内完成-通过3 / 4:在0.33秒内完成-通过4 / 4:在0.41秒内完成评估

利用训练好的模型预测测试样本的标签。

txt = tx (~ trIdx:);标签=预测(mdl, txt);

为结果分类创建混淆矩阵图表。

tyTest =泰(~ trIdx);厘米= confusionchart (tyTest标签)
使用本地MATLAB会话计算高表达式:通过1(1):在0.074秒内完成,在0.34秒内完成

图包含一个类型为confusimatrixchart的对象。

NormalizedValues: [3x3 double] ClassLabels: {3x1 cell}显示所有属性

混淆矩阵图显示,在彩色类的三个测量是错误分类。所有属于settosa和virginica的测量值都被正确分类。

输入参数

全部折叠

分类问题的真标签,指定为类别向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果trueLabels是一个向量,那么每个元素对应一个观察结果。如果trueLabels是一个字符数组,那么它必须是二维的,每一行对应于一个观察值的标签。

分类问题的预测标签,指定为类别向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果predictedLabels是一个向量,那么每个元素对应一个观察结果。如果predictedLabels是一个字符数组,那么它必须是二维的,每一行对应于一个观察值的标签。

混淆矩阵,指定为一个矩阵。必须是正方形,其元素必须是正整数。的元素m (i, j)是多少次的观察真正的阶级被预言是j类。混淆矩阵图的每个彩色单元格对应于混淆矩阵的一个元素

混淆矩阵图的类标签,指定为类别向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果classLabels是一个向量,那么它必须有与混淆矩阵的行和列相同的元素数量。如果classLabels是一个字符数组,那么它必须是二维的,每一行对应于一个类的标签。

父容器,指定为数字面板选项卡TiledChartLayout,或GridLayout对象。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:cm = confusichart (trueLabels,predictedLabels,'Title','My Title Text','ColumnSummary','column-normalized')

请注意

这里列出的属性只是一个子集。有关完整列表,请参见ConfusionMatrixChart属性

混淆矩阵图表的标题,指定为字符向量或字符串标量。

例子:cm = confusionchart(__,'Title','My Title Text')

例子:厘米。Title = 'My Title Text'

混淆矩阵图的列摘要,指定为以下之一:

选项 描述
“关闭” 不显示列摘要。
“绝对” 显示每个预测类的正确和错误分类观察的总数。
“column-normalized” 显示每个预测类的正确和错误分类的观察数,作为对应预测类的观察数的百分比。正确分类的观察结果的百分比可以被认为是类的精确度(或积极的预测值)。
“total-normalized” 显示每个预测类的正确和错误分类的观察数,作为观察总数的百分比。

例子:厘米= confusionchart(__,‘ColumnSummary’,‘column-normalized’)

例子:厘米。ColumnSummary = ' column-normalized '

混淆矩阵图的行摘要,指定为以下之一:

选项 描述
“关闭” 不显示行摘要。
“绝对” 显示每个真实类的正确和错误分类观察的总数。
“row-normalized” 显示每个真类的正确和错误分类的观察数,作为对应真类的观察数的百分比。正确分类观察结果的百分比可以被认为是类智者回忆(或真阳性率)。
“total-normalized” 显示每个真实类的正确和错误分类的观察数,作为观察总数的百分比。

例子:厘米= confusionchart(__,‘RowSummary’,‘row-normalized’)

例子:厘米。RowSummary = ' row-normalized '

单元格值的规范化,指定为以下之一:

选项 描述
“绝对” 在每个单元格中显示观察的总数。
“column-normalized” 用具有相同预测类别的观察数规范化每个单元格值。
“row-normalized” 用具有相同真实类的观察数规范化每个单元格值。
“total-normalized” 用观察总数归一化每个单元格的值。

修改单元格值的归一化也会影响单元格的颜色。

例子:厘米= confusionchart(__“正常化”,“total-normalized”)

例子:厘米。归一化= ' total-normalized '

输出参数

全部折叠

ConfusionMatrixChart对象,它是一个独立的可视化.使用厘米在创建混淆矩阵图后设置其属性。

限制

  • MATLAB®的代码生成不支持ConfusionMatrixChart对象。

更多关于

全部折叠

独立的可视化

独立可视化是为特殊目的而设计的图表,它独立于其他图表工作。不像其他图表,比如情节而且冲浪,一个独立的可视化有一个预先配置的axis对象内置在它里面,一些定制是不可用的。独立的可视化也具有以下特征:

  • 它不能与其他图形元素(如线、补丁或曲面)组合。因此,持有命令不支持。

  • gca函数可以返回作为当前轴的图表对象。

  • 您可以将图表对象传递给许多接受axis对象作为输入参数的MATLAB函数。例如,可以将图表对象传递给标题函数。

扩展功能

版本历史

介绍了R2018b

Baidu
map