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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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