Matlab 中混淆矩阵的最小值和最大值

Min and Max of Confusion matrices in Matlab

在 Matlab 中,我有一个包含 100 个混淆矩阵的单元格。

例如confusionMatrix{1} =

16     1     0
 0    12     2
 0    10     9

如何从这些混淆矩阵中找到具有最佳和最差预测率(非对角线元素之和)的两个混淆矩阵?

您可以通过对矩阵及其转置使用向上置换的 triu 来区分矩阵 A 的 non-diagonal 个元素:triu(A,1) 和 triu(A',1):

sum(sum(triu(a,1)+triu(a',1)'))

如果你想对 confusionMatrix{:} 中的所有单元格都这样做,你可以使用 cellfun,然后排序:

prediction_rate=cellfun(@(a)  sum(sum(triu(a,1)+triu(a',1)')), confusionMatrix);
[r,idx]=sort(prediction_rate);
best_rate=r(end);
best_rated=idx(end);
worst_rate=r(1);
worst_rated=idx(1);