confusionmat
计算分类问题的混淆矩阵
语法
描述
例子
显示混淆矩阵
显示有两个错误分类和一个缺失分类的数据的混淆矩阵。
为已知组和预测组创建向量。
G1 = [3 2 2 3 1 1]';%已知组g2 = [4 2 3 NaN 1 1]';预测组
返回混淆矩阵。
C = confusimat (g1,g2)
C =4×42 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0
混淆矩阵的行和列的下标C
是否相同,并且默认按照的顺序排列(g1, g2)
,也就是说,(1,2,3,4)
.
混淆矩阵表明,组1中已知的两个数据点被正确分类。对于第2组,有一个数据点被错误地分类到第3组。此外,已知属于第3组的一个数据点被错误地归类到第4组。confusionmat
将南
值g2
的行和列中未包含该值C
.
将混淆矩阵绘制为混淆矩阵图confusionchart
.
confusionchart (C)
你不需要先计算混淆矩阵,然后绘制它。相反,通过使用,直接从真实和预测的标签绘制混淆矩阵图confusionchart
.
Cm =混淆图(g1,g2)
cm = ConfusionMatrixChart with properties: NormalizedValues: [4x4 double] ClassLabels: [4x1 double]显示所有属性
的ConfusionMatrixChart
对象中存储数字混淆矩阵NormalizedValues
属性中的类ClassLabels
财产。使用点表示法显示这些属性。
厘米。NormalizedValues
ans =4×42 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0
厘米。ClassLabels
ans =4×11 2 3 4
指定混淆矩阵的组顺序
显示两个错误分类和一个缺失分类的数据的混淆矩阵,并指定分组顺序。
为已知组和预测组创建向量。
G1 = [3 2 2 3 1 1]';%已知组g2 = [4 2 3 NaN 1 1]';预测组
指定分组顺序并返回混淆矩阵。
C = confismat (g1,g2,“秩序”,[4 3 2 1])
C =4×40 0 0 0 1 0 0 0 1 1 0 0 0 0 2
混淆矩阵的行和列的下标C
是相同的,并且按照组序指定的顺序排列,即:(4、3、2、1)
.
混淆矩阵的第二行C
显示已知在第3组中的一个数据点被错误地分类到第4组。第三行C
显示属于组2的一个数据点被错误地分类到组3,第四行显示已知属于组1的两个数据点被正确地分类。confusionmat
将南
值g2
的行和列中未包含该值C
.
分类混淆矩阵
对样本进行分类fisheriris
数据集并显示结果分类的混淆矩阵。
加载费雪的虹膜数据集。
负载fisheriris
将数据中的测量值和分组随机化。
rng (0,“旋风”);%用于再现性numObs =长度(物种);p = randperm(numObs);Meas = Meas (p,:);Species = Species (p);
通过使用数据的前半部分的测量值来训练一个判别分析分类器。
half = floor(numObs/2);训练= meas(1:一半,:);trainingSpecies =物种(1:一半);Mdl = fitcdiscr(training,trainingSpecies);
使用训练过的分类器预测数据后半段测量值的标签。
Sample = meas(half+1:end,:);grouphat = predict(Mdl,样本);
指定分组顺序并显示结果分类的混淆矩阵。
Group = species(half+1:结束);[C,order] = confismat (group,grouphat,“秩序”, {“setosa”,“多色的”,“virginica”})
C =3×329 0 0 0 22 2 0 0 22
订单=3 x1细胞{'setosa'} {'versicolor'} {'virginica'}
混淆矩阵表明,属于setosa和virginica的测量值被正确分类,而属于versicolor的两个测量值被错误分类为virginica。输出订单
包含由组顺序指定的序列中的混淆矩阵的行和列的顺序{“setosa”、“癣”、“virginica '}
.
使用高数组分类的混淆矩阵
对象的高数组上执行分类fisheriris
数据集,为已知和预测的高标签计算一个混淆矩阵confusionmat
函数,并使用confusionchart
函数。
在高数组上执行计算时,MATLAB®使用并行池(如果有并行计算工具箱™,则默认为并行池)或本地MATLAB会话。如果要在具有并行计算工具箱时使用本地MATLAB会话运行示例,可以使用mapreduce
函数。
加载费雪的虹膜数据集。
负载fisheriris
转换内存中的数组量
而且物种
到高数组。
Tx =高(平均);
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:6)。
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);
评估高表达式使用并行池“当地”:——通过1 2:在3.9秒完成,通过2 2:在1.5秒完成评估在7.3秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.88秒完成,通过2 4:在1.6秒完成,通过3 4:在4秒完成,通过4 4:在2.7秒完成评估在11秒完成评估高表达式使用并行池“当地”:——通过1 4:完成0.54秒-通过2 4:在1.2秒完成,通过3 4:完成在3秒-通过4 4:在2秒完成评估在7.6秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.51秒完成,通过2 4:在1.3秒完成,通过3 4:在3.1秒完成,通过4 4:在2.5秒完成评估在8.5秒完成评估高表达式使用并行池“当地”:——通过1 4:在0.42秒内完成-通过2 / 4:在1.2秒内完成-通过3 / 4:在3秒内完成-通过4 / 4:在2.1秒内完成评估在7.6秒内完成
使用训练好的模型预测测试样本的标签。
txTest = tx(~trIdx,:);label = predict(mdl,txTest);
计算结果分类的混淆矩阵。
tyTest = ty(~trIdx);[C,order] = confismat (tyTest,label)
C = m×n×…高阵???...???...? ? ? ... : : : : : : Preview deferred. Learn more. order = M×N×... tall array ? ? ? ... ? ? ? ... ? ? ? ... : : : : : : Preview deferred. Learn more.
使用收集
函数执行延迟计算并返回的结果confusionmat
在内存中。
收集(C)
使用并行池“本地”评估tall表达式:-通过1 / 1:在1.9秒内完成评估,在2.3秒内完成
ans =3×320 0 0 1 30 20 0 22
收集(顺序)
使用并行池“本地”计算tall表达式:在0.032秒内完成计算
ans =3×1细胞{'setosa'} {'versicolor'} {'virginica'}
混淆矩阵显示了彩色类中的三个测量值是错误分类的。所有属于setosa和virginica的测量都被正确分类。
要计算和绘制混淆矩阵,请使用confusionchart
代替。
cm =混淆表(tyTest,label)
使用并行池“本地”评估高表达式:-通过1 / 1:在0.34秒内完成评估,在0.6秒内完成评估,使用并行池“本地”评估高表达式:-通过1 / 1:在0.48秒内完成评估,在0.67秒内完成
NormalizedValues: [3×3 double] ClassLabels: {3×1 cell}显示所有属性
输入参数
集团
- - - - - -已知组
数值向量|逻辑向量|字符数组|字符串数组|字符向量的单元格数组|分类向量
grouphat
- - - - - -预测组
数值向量|逻辑向量|字符数组|字符串数组|字符向量的单元格数组|分类向量
grouporder
- - - - - -组订单
数值向量|逻辑向量|字符数组|字符串数组|字符向量的单元格数组|分类向量
组顺序,指定为数字向量、逻辑向量、字符数组、字符串数组、字符向量的单元格数组或分类向量。
grouporder
分组变量是否包含所有不同的元素集团
而且grouphat
.指定grouporder
的行和列的顺序C
.如果grouporder
包含不在中的元素集团
或grouphat
的对应项C
是0
.
缺省情况下,组顺序取决于的数据类型S = [group;grouphat]
:
对于数值向量和逻辑向量,顺序是的排序顺序
年代
.对于分类向量,其顺序是返回的顺序
.类别
(年代)对于其他数据类型,顺序为中首次出现的顺序
年代
.
例子:“秩序”,{“setosa”、“癣”,“virginica”}
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
|分类
输出参数
C
-混淆矩阵
矩阵
混淆矩阵,返回为方阵,其大小等于中不同元素的总数集团
而且grouphat
参数。C (i, j)
观察数是否已知为一组我
但预计在小组j
.
的行和列C
具有相同组索引的相同顺序。缺省情况下,组顺序取决于的数据类型S = [group;grouphat]
:
对于数值向量和逻辑向量,顺序是的排序顺序
年代
.对于分类向量,其顺序是返回的顺序
.类别
(年代)对于其他数据类型,顺序为中首次出现的顺序
年代
.
若要更改顺序,请指定grouporder
,
的confusionmat
函数把南
,空,和“定义”
的行和列中不包括分组变量中的值C
.
订单
-行和列的顺序
数字向量|逻辑向量|分类向量|字符向量单元数组
中的行和列的顺序C
,作为数字向量、逻辑向量、分类向量或字符向量单元格数组返回。如果集团
而且grouphat
字符数组,字符串数组,或单元格数组的字符向量,然后变量订单
是字符向量的单元格数组。否则,订单
是同类型的集团
而且grouphat
.
选择功能
使用
confusionchart
计算并绘制一个混淆矩阵。此外,confusionchart
显示关于数据的汇总统计信息,并根据分类精度(阳性预测值)、分类召回率(真阳性率)或正确分类观察的总数对混淆矩阵的类别进行排序。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
这个函数完全支持高数组。金宝app有关更多信息,请参见高大的数组.
版本历史
在R2008b中引入
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国家站点没有针对您所在位置的访问进行优化。