主要内容

plotconfusion

地块分类混淆矩阵

描述

例子

plotconfusion (目标输出为真实标签绘制一个混淆矩阵目标预测标签输出.将标签指定为分类向量,或指定为n - 1 (one-hot)形式。

提示

plotconfusion不建议用于分类标签。使用confusionchart代替。

在混淆矩阵图上,行对应于预测的类(输出类),列对应于真实的类(目标类)。对角线的单元格对应的是被正确分类的观察结果。非对角线的单元格对应于分类错误的观察结果。每个单元格中都显示了观测值的数量和观测值总数的百分比。

图中最右边的一列显示了预测属于每个类别的所有示例的正确和不正确分类的百分比。这些指标通常分别被称为精度(或阳性预测值)和错误发现率。图底部的一行显示了属于每个类别的所有示例的正确和不正确分类的百分比。这些指标通常分别被称为召回率(或真阳性率)和假阴性率。图右下方的单元格显示了总体的准确性。

plotconfusion (目标输出的名字绘制一个混淆矩阵并相加的名字以剧情标题开头。

plotconfusion (targets1、outputs1 name1、targets2 outputs2, name2,…,targetsn, outputsn,以)在一个图中绘制多个混淆矩阵,并添加的名字对应情节标题开头的参数。

例子

全部折叠

加载由手写数字合成图像组成的数据。XTrain是一个28 × 28 × 1 × 5000的图像数组和YTrain包含图像标签的分类向量。

[XTrain,YTrain] = digitTrain4DArrayData;谁YTrain
名称大小字节类属性YTrain 5000x1 6062 category

定义卷积神经网络的结构。

图层= [imageInputLayer([28 28 1])卷积2dlayer (3,8,“填充”“相同”卷积2dlayer (3,16,“填充”“相同”“步”,2)卷积2dlayer (3,32,“填充”“相同”“步”,2) batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];

指定培训选项并对网络进行培训。

选项= trainingOptions(“个”...“MaxEpochs”5,...“详细”假的,...“阴谋”“训练进步”);net = trainNetwork(XTrain,YTrain,图层,选项);

使用训练过的网络加载和分类测试数据。

[XTest,YTest] = digitTest4DArrayData;ypredict = category (net,XTest);

绘制真实测试标签的混淆矩阵欧美预测的标签YPredicted

YPredicted plotconfusion(欧美)

行对应于预测类(输出类),列对应于真实类(目标类)。对角线的单元格对应的是被正确分类的观察结果。非对角线的单元格对应于分类错误的观察结果。每个单元格中都显示了观测值的数量和观测值总数的百分比。

图中最右边的一列显示了预测属于每个类别的所有示例的正确和不正确分类的百分比。这些指标通常分别被称为精度(或阳性预测值)和错误发现率。图底部的一行显示了属于每个类别的所有示例的正确和不正确分类的百分比。这些指标通常分别被称为召回率(或真阳性率)和假阴性率。图右下方的单元格显示了总体的准确性。

关闭所有数字。

关闭(findall(大的,“类型”“图”))

方法加载样例数据cancer_dataset函数。XTrain是一个9乘699的矩阵,定义了699个活组织检查的9个属性。YTrain是一个2 × 699的矩阵,其中每一列表示相应观测的正确类别。的每一列YTrain有一个元素等于第一行或第二行中的1,分别对应于良性癌症或恶性癌症。有关此数据集的详细信息,请键入帮助cancer_dataset在命令行。

rng默认的[XTrain,YTrain] = cancer_dataset;YTrain (: 1:10)
ans =2×101 1 1 1 1 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 1 1 1 0

创建一个模式识别网络,并使用样本数据训练它。

Net = patternnet(10);net = train(net,XTrain,YTrain);

使用训练过的网络估计癌症状况。矩阵的每一列YPredicted分别包含属于第1类和第2类的每个观测的预测概率。

ypredict = net(XTrain);YPredicted (: 1:10)
ans =2×100.9980 0.9979 0.9894 0.0578 0.9614 0.9960 0.0026 0.0023 0.0084 0.9944 0.0020 0.0021 0.0106 0.9422 0.0386 0.0040 0.9974 0.9977 0.9916 0.0056

绘制混淆矩阵。为了创造情节,plotconfusion根据最高类概率标记每个观测值。

plotconfusion (YTrain YPredicted)

在该图中,前两个对角线单元格显示了经过训练的网络正确分类的数量和百分比。例如,446例活检被正确地归类为良性。这相当于699例活检中的63.8%。同样,236例被正确分类为恶性。这相当于所有活组织检查的33.8%。

5个恶性活检被错误地分类为良性,这相当于数据中699个活检中的0.7%。同样,12个良性活检被错误地分类为恶性,这相当于所有数据的1.7%。

在451个良性预测中,98.9%是正确的,1.1%是错误的。在248个恶性预测中,95.2%正确,4.8%错误。在458例良性病例中,97.4%被正确预测为良性,2.6%被预测为恶性。在241例恶性病例中,97.9%被正确分类为恶性,2.1%被正确分类为良性。

总体而言,97.6%的预测是正确的,2.4%是错误的。

输入参数

全部折叠

True类标签,指定以下之一:

  • 分类向量,其中每个元素是一个观察值的类标签。的输出而且目标参数必须具有相同数量的元素。如果分类向量定义了底层类,那么plotconfusion显示所有基础类,即使没有观察到某些基础类。如果参数是有序分类向量,那么它们必须以相同的顺序定义相同的基础类别。

  • 一个N——- - - - - -矩阵,N是班级的数量和是观测的数量。矩阵的每一列必须是1 - n (one-hot)形式,其中单个元素等于1表示真标签,所有其他元素等于0。

预测类标签,指定以下之一:

  • 分类向量,其中每个元素是一个观察值的类标签。的输出而且目标参数必须具有相同数量的元素。如果分类向量定义了底层类,那么plotconfusion显示所有基础类,即使没有观察到某些基础类。如果参数是有序分类向量,那么它们必须以相同的顺序定义相同的基础类别。

  • 一个N——- - - - - -矩阵,N是班级的数量和是观测的数量。矩阵的每一列可以是n - 1 (one-hot)形式,其中单个元素等于1表示预测标签,或者以概率之和为1的形式。

混淆矩阵的名称,指定为字符数组。plotconfusion添加指定的的名字以剧情标题开头。

数据类型:字符

版本历史

在R2008a中引入