主要内容

confusionmat

计算混淆矩阵的分类问题

描述

例子

C= confusionmat (集团,grouphat)返回混淆矩阵C由已知的并预测组织集团grouphat,分别。

例子

C= confusionmat (集团,grouphat,“秩序”,grouporder)使用grouporder的行和列C

例子

(C,订单)= confusionmat (___)还返回的行和列的顺序C在变量订单使用任何输入参数在以前的语法。

例子

全部折叠

显示数据的混淆矩阵有两个错误,一个失踪的分类。

创建向量组和预测组。

g1 = (3 2 2 3 1 1) ';%被组g2 =[4 2 3南1 1]';%预测组

返回混淆矩阵。

C = confusionmat (g1, g2)
C =4×42 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0

指数的混淆矩阵的行和列C是相同的和默认的顺序安排的吗(g1, g2),也就是说,(1、2、3、4)

混淆矩阵表明,组1的两个数据点已知正确分类。2组,一组数据点分类错误的3。同样,一个已知的数据点在3组被误诊成4组。confusionmat在分组变量值g2作为一个缺失值和不包括它的行和列C

情节混淆矩阵的混淆矩阵表使用confusionchart

confusionchart (C)

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

你不需要计算混淆矩阵,然后情节。相反,情节混淆矩阵图直接从真实和预测标签使用confusionchart

厘米= confusionchart (g1, g2)

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

厘米= ConfusionMatrixChart属性:NormalizedValues: [4 x4双]ClassLabels: [4 x1双]显示所有属性

ConfusionMatrixChart对象存储的数字混淆矩阵NormalizedValues属性和类ClassLabels财产。使用点符号显示这些属性。

cm.NormalizedValues
ans =4×42 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0
cm.ClassLabels
ans =4×11 2 3 4

显示数据的混淆矩阵有两个错误,一个失踪分类,并指定该组织秩序。

创建向量组和预测组。

g1 = (3 2 2 3 1 1) ';%被组g2 =[4 2 3南1 1]';%预测组

指定组织秩序和返回混淆矩阵。

C = confusionmat (g1, g2,“秩序”[4 3 2 1])
C =4×40 0 0 0 1 0 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);量=量(p:);物种=物种(p);

火车判别分析分类器通过使用测量上半年的数据。

一半=地板(numObs / 2);培训=量(1:一半,:);trainingSpecies =物种(1:一半);Mdl = fitcdiscr(培训、trainingSpecies);

预测下半年标签的测量数据通过使用训练分类器。

示例=量(5 + 1:最终,);grouphat =预测(Mdl、样本);

指定组秩序和显示结果分类混淆矩阵。

组=物种(5 + 1:结束);[C,顺序]= confusionmat(组、grouphat“秩序”,{“setosa”,“多色的”,“virginica”})
C =3×329日22 0 0 0 2 0 0 22
订单=3 x1细胞{' setosa}{“癣”}{' virginica '}

混淆矩阵表明,测量属于setosa virginica分类正确,而两个测量并被错误地归类为virginica属于杂色的。输出订单包含的顺序混淆矩阵的行和列指定的序列组订单{“setosa”、“癣”、“virginica '}

执行一系列高的分类fisheriris的数据集,计算已知的混淆矩阵,预测高标签使用confusionmat函数,绘制混淆矩阵使用confusionchart函数。

当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。如果你想运行这个示例使用当地的MATLAB会话并行计算工具箱后,你可以改变全球执行环境使用mapreduce函数。

加载费雪的虹膜数据集。

负载fisheriris

把内存中的数组物种高大的数组。

tx =高(量);
开始平行池(parpool)使用“本地”概要文件…连接到平行池(工人数量:6)。
泰=高(物种);

在高数组找到观测的数量。

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

设置使用随机数生成器的种子rngtallrng再现性和随机选择训练样本。结果取决于工人的数量和执行环境高数组。有关详细信息,请参见控制你的代码运行

rng (“默认”)tallrng (“默认”)numTrain =地板(numObs / 2);[txTrain, trIdx] = datasample (tx numTrain,“替换”、假);tyTrain =泰(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秒完成

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

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

计算结果的混淆矩阵分类。

tyTest =泰(~ trIdx);[C,顺序]= confusionmat (tyTest、标签)
C = M×N×……高大的数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : : Preview deferred. Learn more. order = M×N×... tall array ? ? ? ... ? ? ? ... ? ? ? ... : : : : : : Preview deferred. Learn more.

使用收集函数执行的延迟计算并返回结果confusionmat在内存中。

收集(C)
评估高表达式使用并行池“当地”:通过1对1:在1.9秒完成评估在2.3秒完成
ans =3×320 30 0 0 1 2 0 0 22
收集(顺序)
评估高表达式使用并行池“当地”:评估在0.032秒完成
ans =3×1细胞{' setosa}{“癣”}{' virginica '}

混淆矩阵显示三个测量杂色的类被误诊。所有的测量属于setosa和virginica正确分类。

计算和绘制混淆矩阵,使用confusionchart代替。

厘米= confusionchart (tyTest标签)
评估高表达式使用并行池“当地”:通过1对1:在0.34秒完成评估在0.6秒完成评估高表达式使用并行池“当地”:通过1对1:在0.48秒完成评估在0.67秒完成

厘米= ConfusionMatrixChart属性:NormalizedValues:[3×3双]ClassLabels:{} 3×1细胞显示所有属性

使用confusionmat函数来创建一个矩阵显示的航班数量之间的旅游机场一个高大的列表中列出。

当你执行计算高数组,MATLAB®使用一个平行池(默认如果你有并行计算工具箱™)或当地的MATLAB会话。要运行示例使用当地的MATLAB会话并行计算工具箱后,改变全球执行环境使用mapreduce函数。

mapreduce (0)

创建一个数据存储airlinesmall.csv数据集。治疗“NA”值缺失的数据,这样他们所取代值。选择的变量起源桌子包括数据存储。

varnames = {“起源”,“桌子”};ds =数据存储(“airlinesmall.csv”,“TreatAsMissing”,“NA”,“SelectedVariableNames”,varnames);

创建一个高数据存储中的数据的数组。因为数据在ds是表格,结果是一个高大的表。如果数据没有表格创建一个高的单元阵列。

T =高(ds)
T =(高表起源Dest ____ ____{“宽松”}{‘SJC} {‘SJC}{“钻”}{‘圣’}{SMF的}{“钻”}{‘SJC} {SMF的}{“宽松”}{“宽松”}{‘SJC}{‘圣’}{“旧金山”}{‘海’}{“宽松”}::::

高的显示表显示的行数的数据是未知的。

创建一个矩阵显示列之间的航班数量T.OriginT.Dest。这个矩阵不是混淆矩阵,因为两列不包含已知从分类和预测价值。然而,您可以使用confusionmat函数创建一个矩阵的频率。

(助教、结核病)= confusionmat (T.Origin T.Dest)
ta = MxNx……高大的数组?吗?吗?…吗?吗?吗?…吗? ? ? ... : : : : : : tb = MxNx... tall array ? ? ? ... ? ? ? ... ? ? ? ... : : : : : :

执行延迟计算通过使用收集函数,返回的结果confusionmat在内存中。

[freqMatrix, airportOrder] =收集(助教、结核病);
评估高表达式使用当地的MATLAB会话:通过1 1:在2.5秒完成评估在3.2秒完成

显示矩阵的前五行freqMatrix和相应的行和列的顺序airportOrder

:freqMatrix (1:5)
ans =5×3230 153 169 0 91 161 322 0 44 6 56 24 0 0 23 180 122 150 63 77 134 51 37 10 0 3 0 1 311 0 15 0 32 0 9 2 15 12 293 81 30 53 20 38 1 73 0 41 168 0 75 59 79 76 0 6 14 0 1 0 0 0 51 54 60 0 5 0 1 5 0 0 0 0 1 0 0 0 0 0 8 67 55 50 0 0 0 0 18 1 59 1 0 0 11 0 4 187 87 0 0 78 39 120 0 14 1 18 19 0 0 0 98 95 2 19 3 14 14 72 108 0 0 0 0 0 0 0 0 1 0 1 31 4 14 0 1 0 3 9 172 5 13 0 21 0 10 0 0 0 61 58 25 83 23 3 2 1 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 21日13 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 67 114 88 73 0 70 20 5 4 47 1 3 0 0 0 39 40 0 1 0 0 3 57 50 0 0 0 0 0 0 0 0 1 0 1 28 1 0 0 0 0 0 2 58 5 0 0 21 0 0
airportOrder (1:5)
ans =5 x1细胞{“宽松”}{‘SJC}{‘圣’}{“钻”}{SMF的}

矩阵freqMatrix显示的航班出发地机场(行)到目的地机场(列)。例如,总共168年航班离开SJC和到达宽松的(见freqMatrix (2, 1))。同样的,88年航班离开SMF和到达(见freqMatrix (5,3))。正如前面提到的,freqMatrix不是一个混淆矩阵,但显示了一个机场之间的航班。正如所料,对角元素都是0,因为来源和目的地机场总是不同的。

输入参数

全部折叠

已知分类的观察组,指定为一个数值向量,逻辑向量,字符数组,字符串数组,单元阵列特征向量,或分类向量。

集团是一个分组变量相同类型的吗grouphat。的集团参数必须有相同数量的观察grouphat描述的一样,分组变量。的confusionmat函数对字符数组和字符串数组作为细胞阵列的特征向量。此外,confusionmat对待空的,“定义”集团作为缺失值,不数不同的团体或类别。

例子:{'男','女','女','男','女'}

数据类型:||逻辑|字符|字符串|细胞|分类

预测分类的观察组,指定为一个数值向量,逻辑向量,字符数组,字符串数组,单元阵列特征向量,或分类向量。

grouphat是一个分组变量相同类型的吗集团。的grouphat参数必须有相同数量的观察集团描述的一样,分组变量。的confusionmat函数对字符数组和字符串数组作为细胞阵列的特征向量。此外,confusionmat对待空的,“定义”grouphat作为缺失值,不数不同的团体或类别。

例子:(1 0 0 1 0)

数据类型:||逻辑|字符|字符串|细胞|分类

组,指定为一个数值向量,逻辑向量,字符数组,字符串数组,单元阵列特征向量,或分类向量。

grouporder是一个分组变量包含所有的元素集团grouphat。指定grouporder定义的行和列的顺序C。如果grouporder包含的元素并不在集团grouphat,相应的条目C0

默认情况下,该组织顺序取决于的数据类型s =[集团;grouphat]:

  • 对数字和逻辑向量,订单的顺序年代

  • 对于分类向量,秩序是返回的顺序类别(年代)

  • 对于其他数据类型,秩序是第一次出现在的顺序年代

例子:“秩序”,{“setosa”、“癣”,“virginica”}

数据类型:||逻辑|字符|字符串|细胞|分类

输出参数

全部折叠

混淆矩阵,作为一个方阵的大小等于返回不同的元素的总数集团grouphat参数。C (i, j)观察组已知的数吗但预计集团j

的行和列C有相同的顺序相同的指数。默认情况下,该组织顺序取决于的数据类型s =[集团;grouphat]:

  • 对数字和逻辑向量,订单的顺序年代

  • 对于分类向量,秩序是返回的顺序类别(年代)

  • 对于其他数据类型,秩序是第一次出现在的顺序年代

改变订单,指定grouporder,

confusionmat函数把空的,“定义”分组变量中的值作为缺失值,不包括他们的行和列C

行和列的顺序C,作为一个数值向量,返回逻辑向量,分类向量,或单元阵列特征向量。如果集团grouphat字符数组,字符串数组,数组或单元的特征向量,然后变量订单是一个单元阵列的特征向量。否则,订单相同类型的是吗集团grouphat

选择功能

  • 使用confusionchart混淆矩阵计算和情节。此外,confusionchart显示有关您的数据的汇总统计和排序的类来说混淆矩阵根据精度(阳性预测值)来说回忆(真阳性),或总数正确分类的观察。

扩展功能

版本历史

介绍了R2008b