【发布时间】:2017-02-18 07:47:28
【问题描述】:
在 Matlab 中,我有一个包含 100 个混淆矩阵的单元格。
例如confusionMatrix{1} =
16 1 0
0 12 2
0 10 9
如何从这些混淆矩阵中找出预测率最高和最差的两个混淆矩阵(非对角元素的总和)?
【问题讨论】:
标签: matlab max min confusion-matrix
在 Matlab 中,我有一个包含 100 个混淆矩阵的单元格。
例如confusionMatrix{1} =
16 1 0
0 12 2
0 10 9
如何从这些混淆矩阵中找出预测率最高和最差的两个混淆矩阵(非对角元素的总和)?
【问题讨论】:
标签: matlab max min confusion-matrix
您可以通过对矩阵及其转置使用上移的 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);
【讨论】: