在Matlab中我有一个100个混淆矩阵的单元格。
例如confusionMatrix{1} =
16 1 0
0 12 2
0 10 9
如何找到具有最佳和最差预测率(非对角元素之和)的两个混淆矩阵?
答案 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);