MATLAB中plotconfusion和Confusionmat函数的区别?

我尝试使用plotconfusionConfusionmat这两个函数来显示我的实际和预测值的混淆矩阵,但结果却不同。这对我来说很奇怪。看起来Confusionmatplotconfusion的转置。我该怎么做才能在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市场营销和销售(尽管最近许多开发工作已被内部化)。早期版本的神经网络工具箱主要关注将神经网络应用于控制理论,而不是预测建模。因此,这两个工具箱有不同的历史和目的,并建立了一套不同的惯例。

现在看来,应该逐步使这些工具箱在设计上更加一致和统一,但这还没有实现。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注