Matlab中最小和最大混淆矩阵

时间:2017-02-17 22:18:30

标签: matlab max min confusion-matrix

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

例如confusionMatrix{1} =

16     1     0
 0    12     2
 0    10     9

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

1 个答案:

答案 0 :(得分:1)

你可以通过使用triu向矩阵及其转置移位来区分矩阵A的非对角元素: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);