主要内容

plotconfusion

图分类混淆矩阵

描述

例子

plotconfusion (目标输出绘制真实标签的混淆矩阵目标和预测的标签输出.将标签指定为分类向量,或以n的一种(一次性)形式。

提示

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

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

layers = [imageInputLayer([28 28 1])]“填充”“相同”) batchNormalizationLayer reluLayer convolution2dLayer(3,16,“填充”“相同”“步”,2) batchNormalizationLayer reluLayer convolution2dLayer(3,32,)“填充”“相同”“步”,2) batchNormalizationLayer reluLayer fulllyconnectedlayer (10) softmaxLayer classificationLayer];

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

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

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

[XTest,欧美]= digitTest4DArrayData;YPredicted =分类(净,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 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0

建立一个模式识别网络,并利用样本数据对其进行训练。

网= patternnet (10);网=火车(网,XTrain, YTrain);

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

YPredicted =净(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)

Figure Confusion (plotconfusion)包含一个轴对象。带有标题混淆矩阵的axis对象包含29个类型为patch, text, line的对象。

在这个图中,前两个对角的单元格显示了经过训练的网络正确分类的数量和百分比。例如,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班级的数量是多少为观察次数。矩阵的每一列必须是one-of-N (one-hot)形式,其中一个元素等于1表示真标签,其他所有元素都等于0。

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

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

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

混淆矩阵的名称,指定为字符数组。plotconfusion添加指定的的名字到故事开头的标题。

数据类型:字符

介绍了R2008a