matlab 根据混淆矩阵计算每种类别的分类精度
时间: 2023-12-13 22:00:40 浏览: 36
在MATLAB中,可以根据混淆矩阵计算每个类别的分类精度。混淆矩阵是一个二维矩阵,用于表示分类器在每个类别上的分类结果。假设混淆矩阵为C,其中C(i, j)表示被正确分类为第i类的样本中,有多少个被错误地分类为第j类。
要计算每个类别的分类精度,可以按照以下步骤进行:
1. 首先,计算混淆矩阵C的行和列的和,分别作为每个类别的总样本数和被正确分类的样本数。
2. 然后,对于每个类别i,将C(i, i)(即被正确分类为第i类的样本数)除以该类别的总样本数,得到该类别的分类精度。
下面是用MATLAB实现的代码示例:
```matlab
% 假设混淆矩阵为 C
C = [10 2 1;
3 12 0;
2 1 8];
% 计算每个类别的总样本数和被正确分类的样本数
total_samples = sum(C, 2); % 按行求和
correct_samples = diag(C); % 矩阵的对角线元素
% 计算每个类别的分类精度
classification_accuracy = correct_samples ./ total_samples;
% 打印每个类别的分类精度
for i = 1:length(classification_accuracy)
fprintf('Class %d: %.2f\n', i, classification_accuracy(i));
end
```
以上代码中,存储了一个3x3的混淆矩阵C。通过计算每行的和,可以得到每个类别的总样本数;而通过取混淆矩阵的对角线元素,可以得到每个类别被正确分类的样本数。然后,通过将被正确分类的样本数除以总样本数,即可得到每个类别的分类精度。最后,通过循环打印出每个类别的分类精度。