主要内容

confusionchart

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

描述

例子

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

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

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

confusionchart (___属性指定的图形、面板或选项卡中创建混淆图

例子

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

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

例子

全部折叠

加载费雪的虹膜数据集。

负载fisheririsX = meas;Y =物种;

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

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

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

预测训练数据的标签。

predictedY = resubPredict(Mdl);

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

cm = 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类型的对象。ConfusionMatrixChart类型的图表标题是使用KNN对鸢尾花进行分类。

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

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

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

负载心律失常isLabels =唯一的(Y);nLabels = number (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”在列摘要中显示阳性预测值和错误发现率。

图;cm =混淆图(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 =高(平均);Ty =高(物种);

求高数组中观测值的个数。

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

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

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

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

mdl = fitctree(txTrain,tyTrain);
评估高表达式使用当地的MATLAB会话:通过1 2:在0.4秒完成,通过2 2:在0.35秒完成评估在1.1秒完成评估高表达式使用本地MATLAB会话:——通过1 4:在0.18秒完成,通过2 4:在0.26秒完成,通过3 4:在0.23秒完成,通过4 4:在0.36秒完成评估在1.3秒完成评估高表达式使用本地MATLAB会话:4 -通过1:完成0.078秒-通过2 4:在0.22秒完成,通过3 4:在0.18秒完成,通过4 4:在0.41秒完成评估在1.1秒完成评估高表达式使用本地MATLAB会话:——通过1 4:在0.1秒完成,通过2 4:在0.14秒完成,通过3 4:在0.14秒完成,通过4 4:在0.26秒完成评估在0.81秒完成评估高表达式使用本地MATLAB会话:4 -通过1:在0.11秒内完成-通过2 / 4:在0.11秒内完成-通过3 / 4:在0.25秒内完成-通过4 / 4:在0.28秒内完成评估在1秒内完成

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

txTest = tx(~trIdx,:);label = predict(mdl,txTest);

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

tyTest = ty(~trIdx);cm =混淆表(tyTest,label)
使用本地MATLAB会话计算tall表达式:-通过1 / 1:在0.043秒内完成,在0.21秒内完成,使用本地MATLAB会话计算tall表达式:-通过1 / 1:在0.17秒内完成,在0.26秒内完成

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

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

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

输入参数

全部折叠

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

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

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

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

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

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

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

请注意

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

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

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

例子:厘米。标题= '我的标题文本'

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

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

例子:cm = confusionchart(__,'ColumnSummary','column-normalized')

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

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

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

例子:cm = confusionchart(__,'RowSummary','row-normalized')

例子:厘米。RowSummary = '行规范化'

单元格值的归一化,指定为下列之一:

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

修改单元格值的规范化也会影响单元格的颜色。

例子:cm = confusionchart(__,'Normalization','total-normalized')

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

输出参数

全部折叠

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

限制

  • MATLAB®不支持代码生成金宝appConfusionMatrixChart对象。

更多关于

全部折叠

独立的可视化

独立可视化是为特殊目的而设计的图表,它独立于其他图表。不像其他图表,比如情节而且冲浪,一个独立的可视化有一个预先配置的axis对象内置于其中,并且一些自定义不可用。一个独立的可视化也有这些特征:

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

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

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

扩展功能

版本历史

在R2018b中引入