confusionchart
为分类问题建立混淆矩阵图
语法
描述
confusionchart (
从真标签创建一个混淆矩阵图表trueLabels
,predictedLabels
)trueLabels
和预测的标签predictedLabels
并返回一个ConfusionMatrixChart
对象。混淆矩阵的行对应真实类,列对应预测类。对角线和非对角线单元格分别对应正确分类和错误分类的观测结果。使用厘米
在混淆矩阵图创建后对其进行修改。有关属性列表,请参见ConfusionMatrixChart属性.
confusionchart (
从数值混淆矩阵创建一个混淆矩阵图表米
)米
.如果工作空间中已经有一个数字混淆矩阵,则使用此语法。
confusionchart (
类中出现的类标签x设在和y设在。如果您已经在工作空间中有一个数字混淆矩阵和类标签,请使用此语法。米
,classLabels
)
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);
混淆矩阵显示每个单元格中的观察总数。混淆矩阵的行对应真实类,列对应预测类。对角线和非对角线单元格分别对应正确分类和错误分类的观测结果。
默认情况下,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 =元素个数(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;
要根据真阳性率对混淆矩阵进行排序,请通过设置归一化
财产“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 =高(量);泰=高(物种);
找出高数组中的观测数。
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秒内完成
NormalizedValues: [3x3 double] ClassLabels: {3x1 cell}显示所有属性
混淆矩阵图显示,在彩色类的三个测量是错误分类。所有属于settosa和virginica的测量值都被正确分类。
输入参数
trueLabels
- - - - - -真标签的分类问题
分类向量|数值向量|字符串向量|字符数组|字符向量的单元格数组|逻辑向量
分类问题的真标签,指定为类别向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果trueLabels
是一个向量,那么每个元素对应一个观察结果。如果trueLabels
是一个字符数组,那么它必须是二维的,每一行对应于一个观察值的标签。
predictedLabels
- - - - - -预测标签的分类问题
分类向量|数值向量|字符串向量|字符数组|字符向量的单元格数组|逻辑向量
分类问题的预测标签,指定为类别向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果predictedLabels
是一个向量,那么每个元素对应一个观察结果。如果predictedLabels
是一个字符数组,那么它必须是二维的,每一行对应于一个观察值的标签。
米
- - - - - -混淆矩阵
矩阵
混淆矩阵,指定为一个矩阵。米
必须是正方形,其元素必须是正整数。的元素m (i, j)
是多少次的观察我
真正的阶级被预言是j
类。混淆矩阵图的每个彩色单元格对应于混淆矩阵的一个元素米
.
classLabels
- - - - - -类标签
分类向量|数值向量|字符串向量|字符数组|字符向量的单元格数组|逻辑向量
混淆矩阵图的类标签,指定为类别向量、数字向量、字符串向量、字符数组、字符向量的单元格数组或逻辑向量。如果classLabels
是一个向量,那么它必须有与混淆矩阵的行和列相同的元素数量。如果classLabels
是一个字符数组,那么它必须是二维的,每一行对应于一个类的标签。
父
- - - - - -父容器
数字
对象|面板
对象|选项卡
对象|TiledChartLayout
对象|GridLayout
对象
父容器,指定为数字
,面板
,选项卡
,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'
ColumnSummary
- - - - - -列总结
“关闭”
(默认)|“绝对”
|“column-normalized”
|“total-normalized”
混淆矩阵图的列摘要,指定为以下之一:
选项 | 描述 |
---|---|
“关闭” |
不显示列摘要。 |
“绝对” |
显示每个预测类的正确和错误分类观察的总数。 |
“column-normalized” |
显示每个预测类的正确和错误分类的观察数,作为对应预测类的观察数的百分比。正确分类的观察结果的百分比可以被认为是类的精确度(或积极的预测值)。 |
“total-normalized” |
显示每个预测类的正确和错误分类的观察数,作为观察总数的百分比。 |
例子:厘米= confusionchart(__,‘ColumnSummary’,‘column-normalized’)
例子:厘米。ColumnSummary = ' column-normalized '
RowSummary
- - - - - -行总结
“关闭”
(默认)|“绝对”
|“row-normalized”
|“total-normalized”
混淆矩阵图的行摘要,指定为以下之一:
选项 | 描述 |
---|---|
“关闭” |
不显示行摘要。 |
“绝对” |
显示每个真实类的正确和错误分类观察的总数。 |
“row-normalized” |
显示每个真类的正确和错误分类的观察数,作为对应真类的观察数的百分比。正确分类观察结果的百分比可以被认为是类智者回忆(或真阳性率)。 |
“total-normalized” |
显示每个真实类的正确和错误分类的观察数,作为观察总数的百分比。 |
例子:厘米= confusionchart(__,‘RowSummary’,‘row-normalized’)
例子:厘米。RowSummary = ' row-normalized '
归一化
- - - - - -单元格值的规范化
“绝对”
(默认)|“column-normalized”
|“row-normalized”
|“total-normalized”
单元格值的规范化,指定为以下之一:
选项 | 描述 |
---|---|
“绝对” |
在每个单元格中显示观察的总数。 |
“column-normalized” |
用具有相同预测类别的观察数规范化每个单元格值。 |
“row-normalized” |
用具有相同真实类的观察数规范化每个单元格值。 |
“total-normalized” |
用观察总数归一化每个单元格的值。 |
修改单元格值的归一化也会影响单元格的颜色。
例子:厘米= confusionchart(__“正常化”,“total-normalized”)
例子:厘米。归一化= ' total-normalized '
限制
MATLAB®的代码生成不支持
ConfusionMatrixChart
对象。
更多关于
独立的可视化
独立可视化是为特殊目的而设计的图表,它独立于其他图表工作。不像其他图表,比如情节
而且冲浪
,一个独立的可视化有一个预先配置的axis对象内置在它里面,一些定制是不可用的。独立的可视化也具有以下特征:
它不能与其他图形元素(如线、补丁或曲面)组合。因此,
持有
命令不支持。的
gca
函数可以返回作为当前轴的图表对象。您可以将图表对象传递给许多接受axis对象作为输入参数的MATLAB函数。例如,可以将图表对象传递给
标题
函数。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
这个函数完全支持高数组。有关更多信息,请参见高大的数组.
版本历史
介绍了R2018b
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。