confusionchart
为分类问题创建混淆矩阵图
语法
描述
confusionchart (
从真正的标签创建一个混淆矩阵图表trueLabels
,predictedLabels
)trueLabels
预测标签predictedLabels
并返回一个ConfusionMatrixChart
对象。混淆矩阵的行对应真实的类别,列对应预测的类别。对角线单元格和非对角线单元格分别对应正确分类和错误分类的观测值。使用厘米
对创建后的混淆矩阵图进行修改。有关属性列表,请参见ConfusionMatrixChart属性.
confusionchart (
从数字混淆矩阵创建一个混淆矩阵图表米
)米
.如果您在工作空间中已经有一个数字混淆矩阵,请使用此语法。
confusionchart (
类中出现的类标签x设在和y设在。如果在工作空间中已经有数字混淆矩阵和类标签,则使用此语法。米
,classLabels
)
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);
混淆矩阵显示了每个单元格中的观察总数。混淆矩阵的行对应真实的类别,列对应预测的类别。对角线单元格和非对角线单元格分别对应正确分类和错误分类的观测值。
默认情况下,confusionchart
按定义的自然顺序对类进行排序排序
.在这个例子中,类标签是字符向量,所以confusionchart
按字母顺序对类进行排序。使用sortClasses
按指定的顺序或混淆矩阵值对类进行排序。
的NormalizedValues
属性包含混淆矩阵的值。使用点表示法显示这些值。
厘米。NormalizedValues
ans =3×350 0 0 0 47 3 0 4 46
通过更改属性值修改混淆矩阵图的外观和行为。添加一个标题。
厘米。Title =“基于KNN的鸢尾花分类”;
添加列和行摘要。
厘米。RowSummary =“row-normalized”;厘米。ColumnSummary =“column-normalized”;
行规范化行摘要显示每个真实类的正确分类和错误分类观察值的百分比。列规范化列摘要显示每个预测类的正确分类和错误分类观测值的百分比。
通过精度或召回排序类
创建一个混淆矩阵图,并根据类真阳性率(召回率)或类阳性预测值(精确度)对图表的类进行排序。
装载和检查心律失常
数据集。
负载心律失常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;
要根据真阳性率对混淆矩阵进行排序,请将每行的单元格值归一化归一化
财产“row-normalized”
然后使用sortClasses
.排序后,重置归一化
财产返回“绝对”
以显示每个单元格中的观察总数。
厘米。归一化=“row-normalized”;sortClasses(厘米,“descending-diagonal”)厘米。归一化=“绝对”;
要根据阳性预测值对混淆矩阵进行排序,请将每列中的单元格值归一化归一化
财产“column-normalized”
然后使用sortClasses
.排序后,重置归一化
财产返回“绝对”
以显示每个单元格中的观察总数。
厘米。归一化=“column-normalized”;sortClasses(厘米,“descending-diagonal”)厘米。归一化=“绝对”;
使用高数组分类的混淆矩阵
对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秒内完成
NormalizedValues: [3x3 double] ClassLabels: {3x1 cell}显示所有属性
混淆矩阵图显示彩色类中有三个测量值被错误分类。所有属于setosa和virginica的测量都被正确分类。
输入参数
trueLabels
- - - - - -分类问题的真实标签
分类向量|数值向量|字符串向量|字符数组|字符向量的单元格数组|逻辑向量
分类问题的真标签,指定为分类向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果trueLabels
是一个向量,那么每个元素对应一个观测值。如果trueLabels
是字符数组,则它必须是二维的,每一行对应一个观察值的标签。
predictedLabels
- - - - - -分类问题的预测标签
分类向量|数值向量|字符串向量|字符数组|字符向量的单元格数组|逻辑向量
分类问题的预测标签,指定为分类向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果predictedLabels
是一个向量,那么每个元素对应一个观测值。如果predictedLabels
是字符数组,则它必须是二维的,每一行对应一个观察值的标签。
米
- - - - - -混淆矩阵
矩阵
混淆矩阵,指定为矩阵。米
必须是平方,它的元素必须是正整数。的元素m (i, j)
是一次观察的次数吗我
真正的阶级被预言为j
类。混淆矩阵图的每个彩色单元对应于混淆矩阵的一个元素米
.
classLabels
- - - - - -类标签
分类向量|数值向量|字符串向量|字符数组|字符向量的单元格数组|逻辑向量
混淆矩阵图的类标签,指定为分类向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果classLabels
是一个向量,那么它必须有相同数量的元素,因为混淆矩阵有行和列。如果classLabels
是字符数组,则它必须是二维的,每一行对应一个类的标签。
父
- - - - - -父容器
数字
对象|面板
对象|选项卡
对象|TiledChartLayout
对象|GridLayout
对象
父容器,指定为数字
,面板
,选项卡
,TiledChartLayout
,或GridLayout
对象。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:cm = confusionchart(trueLabels,predictedLabels,'Title','My Title Text','ColumnSummary','column-normalized')
请注意
这里列出的属性只是一个子集。有关完整列表,请参见ConfusionMatrixChart属性.
标题
- - - - - -标题
”
(默认)|特征向量|字符串标量
混淆矩阵图的标题,指定为字符向量或字符串标量。
例子:cm = confusionchart(__,'Title','My Title Text')
例子:厘米。标题= '我的标题文本'
ColumnSummary
- - - - - -列总结
“关闭”
(默认)|“绝对”
|“column-normalized”
|“total-normalized”
混淆矩阵图的列摘要,指定为下列之一:
选项 | 描述 |
---|---|
“关闭” |
不显示列摘要。 |
“绝对” |
显示每个预测类的正确和错误分类观测值的总数。 |
“column-normalized” |
显示每个预测类的正确和错误分类观测值的数量,作为相应预测类观测值数量的百分比。正确分类的观测值的百分比可以被认为是分类精度(或正预测值)。 |
“total-normalized” |
显示每个预测类的正确和错误分类观测值的数量,作为观测值总数的百分比。 |
例子:cm = confusionchart(__,'ColumnSummary','column-normalized')
例子:厘米。ColumnSummary = 'column-normalized'
RowSummary
- - - - - -行总结
“关闭”
(默认)|“绝对”
|“row-normalized”
|“total-normalized”
混淆矩阵图的行摘要,指定为下列之一:
选项 | 描述 |
---|---|
“关闭” |
不显示行摘要。 |
“绝对” |
显示每个真实类的正确和错误分类观测值的总数。 |
“row-normalized” |
显示每个真实类的正确和错误分类观测值的数量,作为对应真实类观测值数量的百分比。正确分类的观察结果的百分比可以被认为是按类别的回忆(或真阳性率)。 |
“total-normalized” |
显示每个真实类的正确和错误分类观测值的数量,作为观测值总数的百分比。 |
例子:cm = confusionchart(__,'RowSummary','row-normalized')
例子:厘米。RowSummary = '行规范化'
归一化
- - - - - -单元格值的规范化
“绝对”
(默认)|“column-normalized”
|“row-normalized”
|“total-normalized”
单元格值的归一化,指定为下列之一:
选项 | 描述 |
---|---|
“绝对” |
显示每个单元格中的观察总数。 |
“column-normalized” |
用具有相同预测类别的观测数据的数量归一化每个单元格值。 |
“row-normalized” |
用具有相同真实类的观察数规范化每个单元格值。 |
“total-normalized” |
用观察的总数归一化每个单元格的值。 |
修改单元格值的规范化也会影响单元格的颜色。
例子:cm = confusionchart(__,'Normalization','total-normalized')
例子:厘米。归一化= 'total-normalized'
限制
MATLAB®不支持代码生成金宝app
ConfusionMatrixChart
对象。
更多关于
独立的可视化
独立可视化是为特殊目的而设计的图表,它独立于其他图表。不像其他图表,比如情节
而且冲浪
,一个独立的可视化有一个预先配置的axis对象内置于其中,并且一些自定义不可用。一个独立的可视化也有这些特征:
它不能与其他图形元素(如线、补丁或曲面)组合。因此,
持有
不支持命令。金宝app的
gca
函数可以将图表对象返回为当前轴。可以将图表对象传递给许多接受axis对象作为输入参数的MATLAB函数。方法传递图表对象
标题
函数。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
这个函数完全支持高数组。金宝app有关更多信息,请参见高大的数组.
版本历史
在R2018b中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。