我尝试使用plotconfusion
和Confusionmat
这两个函数来显示我的实际和预测值的混淆矩阵,但结果却不同。这对我来说很奇怪。看起来Confusionmat
是plotconfusion
的转置。我该怎么做才能在plotconfusion
上显示与Confusionmat
相似的结果呢?
plotconfusion: 59 0 00 68 00 3 48
和
Confusionmat:59 0 00 68 30 0 48
回答:
你的理解是正确的——plotconfusion
生成的混淆矩阵是confusionmat
生成的混淆矩阵的转置。
这在文档中有说明——在plotconfusion
的文档中提到
行对应预测类别(输出类别),列显示真实类别(目标类别)。
而在confusionmat
的文档中提到
C(i,j) 是已知属于第i组但预测为第j组的观测值计数
如果你想在这两者之间转换,只需使用'
进行转置即可。
为什么会这样?主要是因为不太好的原因。plotconfusion
来自神经网络工具箱,而confusionmat
来自统计工具箱,这两个工具箱有不同的历史、目的和惯例。
统计工具箱一直是由MathWorks直接开发的。相比之下,神经网络工具箱最初是由外部学术作者开发,并由MathWorks市场营销和销售(尽管最近许多开发工作已被内部化)。早期版本的神经网络工具箱主要关注将神经网络应用于控制理论,而不是预测建模。因此,这两个工具箱有不同的历史和目的,并建立了一套不同的惯例。
现在看来,应该逐步使这些工具箱在设计上更加一致和统一,但这还没有实现。