matlab绘制3分类混淆矩阵并显示每一类的准确率和错误率
时间: 2023-12-12 19:09:57 浏览: 18
好的,下面是实现步骤:
1. 定义混淆矩阵和类别名称:
```
C = [10 1 3;
2 12 1;
4 0 15];
classnames = {'Class1', 'Class2', 'Class3'};
```
2. 显示混淆矩阵的热力图:
```
figure;
heatmap(C, 'Colormap', hot, 'ColorbarVisible', 'off', ...
'XLabel', 'Predicted Label', 'YLabel', 'True Label', ...
'XTickLabels', classnames, 'YTickLabels', classnames);
title('Confusion Matrix');
```
这里使用了`heatmap`函数来绘制混淆矩阵的热力图,并设置横轴和纵轴的标签和刻度。其中,`XTickLabels`和`YTickLabels`参数用来设置标签的名称。
3. 计算每一类的准确率和错误率:
```
N = sum(C(:));
acc = diag(C)' / sum(C, 2)';
err = 1 - acc;
```
这里使用了`diag`函数将混淆矩阵的对角线元素取出来,表示每一类被正确分类的样本数,再除以该类别的总样本数,即可得到准确率。错误率可以通过准确率求出。
4. 显示每一类的准确率和错误率:
```
for i = 1:length(classnames)
fprintf('%s: ACC=%.2f%%, ERR=%.2f%%\n', classnames{i}, acc(i)*100, err(i)*100);
end
```
这里使用了循环结构,逐一输出每一类的准确率和错误率。
希望这个回答对你有帮助!
阅读全文