MATLAB中plotconfusion函数的应用-绘制混淆矩阵

MATLAB中plotconfusion函数的应用

混淆矩阵是衡量神经网络结果的一个手段,在许多相关论文中都出现过。笔者在撰写研究生期间第一篇论文,考虑使用混淆矩阵来说明神经网络对分类的敏感度。因此进行了简单的研究。主要内容来自下面的链接。https://ww2.mathworks.cn/help/deeplearning/ref/plotconfusion.html?s_tid=srchtitle

混淆矩阵介绍

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

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

(可以不看上面两段)
以下图为例,前两个对角线单元显示了受训网络正确分类的数量和百分比。 例如,有444次1类被正确分类,这占所有样本的63.5%。 同样,有238例2类被正确分类,占所有样本的34%。

有3个2类被错误地分类为1类,这相当于数据中所有样本的0.4%。 同样,1类中有14个被错误地分类为2类,这相当于所有数据的2%。

在444+3=447个1类预测结果中,有99.3%是正确的,而0.7%是错误的。 在14+238=252个2类预测结果中,有94.4%是正确的,而5.6%是错误的。 在44+14=458个1类中,正确预测的占96.9%,错误预测为3.1%。 在241个2类中,正确分类的占98.8%,错误分类的占1.2%。

总体而言,有97.6%的预测是正确的,而有2.4%的预测是错误的。
在这里插入图片描述

函数使用

MATLAB中混淆矩阵函数的使用如下:

plotconfusion(targets,outputs,name) 绘制一个混淆矩阵,并将名称添加到绘图标题的开头。targets为已知的类别标签,outputs是网络的分类结果。 name是图片的名称,输出的名字是“name Confusion Matrix”。

plotconfusion(targets1,outputs1,name1,targets2,outputs2,name2,…,targetsn,outputsn,namen) 在一个图形中绘制多个混淆矩阵,并将名称参数添加到相应图形标题的开头。如果要绘制多个,还会自动压缩图片内单元格的大小,效果如下:
在这里插入图片描述

对数据的要求

如果你使用的是专业的神经网络,如卷积神经网络、循环神经网络等,直接将对应的数据放在函数里就可以。
如果是使用的是其他形式的分类器,注意弄清楚分类结果和真实标签的位置,以及它们的格式。函数要求标签的格式是categorical vectors或者one-of-N (one-hot) 格式,深度学习的输入和输出都会是这种,如果你的标签和输出时double或者其他格式,只要保证是行向量的形式就可以,笔者在绘制SVM二分类混淆矩阵的时候用的就是这种方法。

  • 21
    点赞
  • 116
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: Matlab混淆矩阵plotconfusion适用于多分类问题,可以使用其直观地展示分类结果的准确度。混淆矩阵是一种常用的分类评价指标,用于反映分类器在某个数据集上的分类效果。多分类混淆矩阵是一个N x N矩阵,其N表示分类的种类数,对于第i类和第j类的交叉项,它表明了分类器将第i类的样本判定为第j类的样本的数量。如果分类器的分类效果好,那么在混淆矩阵,主对角线上的值应该尽可能大,而其它非对角线上的值要小。 plotconfusion函数可以根据传入的真值标签和预测标签绘制出真实标签和预测标签之间的混淆矩阵。对于多分类情况下的plotconfusion,它可以表示各个类别之间的真实标签与预测标签的混淆情况,同时也可以通过可视化混淆矩阵来直观判断分类器的分类效果。例如,在绘制混淆矩阵时,我们可以从各个类别的总数和准确率来评估分类器的准确性,同时也可以识别特定类别的误分类情况,然后针对特定类别进行调整和改进分类器的训练方式。 总之,Matlab混淆矩阵plotconfusion函数适用于多分类问题,可以有效评估分类器的准确性,并且通过可视化混淆矩阵来直观判断分类器的表现,从而为改进分类器的训练方式提供参考。 ### 回答2: 混淆矩阵在机器学习算法被广泛应用于分类问题的性能评估。对于一个多分类问题,混淆矩阵由实际类别和预测类别之间相互依赖的交叉项组成。而由于预测结果分布可能不均衡,混淆矩阵的呈现方式通常为生硬和冗长,使得矩阵结构稍微复杂的时候,很难直观地分析分类结果。 MATLAB 提供了一个 plotconfusion 函数,可以用于绘制混淆矩阵并直观地显示多分类的结果。这个函数的输入参数为两个 n×m 的矩阵,其 n 表示实际类别数目,m 表示预测类别数目。其输出为绘制后的混淆矩阵图像。在这个图像上,矩阵的每一行对应于实际的类别,每一列对应于预测的类别。矩阵的每个元素代表真实标签属于某个类别,被预测为另一个类别的数目。因此,对角线上的元素代表分类正确的样本,而非对角线的元素代表分类错误的样本。 在绘制混淆矩阵时,颜色和亮度表示各个类别的出现频率。颜色越深表示该类别被分错的样本越多,颜色越浅则表示错误率越低。总体而言,混淆矩阵的呈现方式易于直观地比较分类器的性能表现,帮助机器学习工程师快速获取结果信息,进而优化算法。 ### 回答3: 混淆矩阵confusion matrix)是评估分类模型性能的重要工具,它可以将分类结果分别放置在四个不同的区域:True Positive,False Positive,True Negative和False Negative。在MATLAB,可以使用plotconfusion函数可视化混淆矩阵。 对于二分类问题,混淆矩阵只有两个类别,将预测值与真实值进行比较,包括True Positive,False Positive,True Negative和False Negative。而对于多分类问题,混淆矩阵的可视化需要更多的定位,并且需要根据问题的性质将结果归入不同的类别,每个类别都分别评估模型对不同类别的预测能力。假设我们需要对数字进行分类,如果我们将数字分为0-9十个类别,此时我们需要到10 × 10=100个分类结果的混淆矩阵,每个类别都用不同的颜色表示。 使用plotconfusion函数可视化多分类混淆矩阵时,必须将原始数据与标记的预测结果放在同一个矩阵,并使用convertLabels函数将标记转换为矩阵的形式。此外,在设置行和列标签时必须注意,它们应该对应于数据集实际标记的类别名,因此它们应该正确地命名并按照数据集的排列顺序设置。 在MATLAB使用plotconfusion函数生成多分类混淆矩阵图形,可以直观的看到分类结果的表现,了解模型对不同数据类型的分类能力,帮助我们提高模型的准确度和泛化性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值