MATLAB 中的 plotconfusion 和 Confusionmat 函数有什么区别?
What's the difference between plotconfusion and Confusionmat function in MATLAB?
我尝试在同时使用函数 plotconfusion
和 Confusionmat
时根据实际值和预测值显示我的混淆矩阵。两者给出不同的结果。这对我来说真的很奇怪。似乎 Confusionmat
是 plotconfusion
的转置。我应该怎么做才能在 plotconfusion
上绘制 Confusionmat
的类似结果?
plotconfusion:
59 0 0
0 68 0
0 3 48
和
Confusionmat:
59 0 0
0 68 3
0 0 48
您理解正确 - plotconfusion
生成的混淆矩阵是 confusionmat
生成的混淆矩阵的转置。
这已记录在案 - 在 plotconfusion
的文档中说
the rows correspond to the predicted class (Output Class), and the columns show the true class (Target Class).
在 confusionmat
的文档中说
C(i,j) is a count of observations known to be in group i but predicted to be in group j
如果你想在两者之间转换,只需使用 '
.
调换它们
为什么会这样?主要是出于不太充分的理由。 plotconfusion
来自 Neural Network Toolbox,而 confusionmat
来自 Statistics Toolbox,这两个工具箱有不同的历史、目的和约定。
Statistics Toolbox 一直由 MathWorks 直接开发。相比之下,Neural Network Toolbox 最初由外部学术作者开发,并由 MathWorks 进行营销和销售(尽管最近在内部进行了很多开发)。 Neural Network Toolbox 的早期版本主要侧重于将神经网络应用于控制理论,而不是预测建模。所以工具箱有不同的历史和用途,并建立了一套不同的约定。
现在逐渐使工具箱在设计上更加一致和统一是有意义的,但这还没有完成。
我尝试在同时使用函数 plotconfusion
和 Confusionmat
时根据实际值和预测值显示我的混淆矩阵。两者给出不同的结果。这对我来说真的很奇怪。似乎 Confusionmat
是 plotconfusion
的转置。我应该怎么做才能在 plotconfusion
上绘制 Confusionmat
的类似结果?
plotconfusion:
59 0 0
0 68 0
0 3 48
和
Confusionmat:
59 0 0
0 68 3
0 0 48
您理解正确 - plotconfusion
生成的混淆矩阵是 confusionmat
生成的混淆矩阵的转置。
这已记录在案 - 在 plotconfusion
的文档中说
the rows correspond to the predicted class (Output Class), and the columns show the true class (Target Class).
在 confusionmat
的文档中说
C(i,j) is a count of observations known to be in group i but predicted to be in group j
如果你想在两者之间转换,只需使用 '
.
为什么会这样?主要是出于不太充分的理由。 plotconfusion
来自 Neural Network Toolbox,而 confusionmat
来自 Statistics Toolbox,这两个工具箱有不同的历史、目的和约定。
Statistics Toolbox 一直由 MathWorks 直接开发。相比之下,Neural Network Toolbox 最初由外部学术作者开发,并由 MathWorks 进行营销和销售(尽管最近在内部进行了很多开发)。 Neural Network Toolbox 的早期版本主要侧重于将神经网络应用于控制理论,而不是预测建模。所以工具箱有不同的历史和用途,并建立了一套不同的约定。
现在逐渐使工具箱在设计上更加一致和统一是有意义的,但这还没有完成。