生成混淆矩阵matlab代码
时间: 2023-11-09 11:18:47 浏览: 69
可以使用以下代码生成混淆矩阵(Confusion Matrix)的 MATLAB 代码:
```matlab
% 实际标签
actual_labels = [1 0 1 1 0 2 1 0 2 1];
% 预测标签
predicted_labels = [1 0 1 1 0 1 2 0 2 0];
% 类别数量
num_classes = max(actual_labels);
% 初始化混淆矩阵
confusion_matrix = zeros(num_classes, num_classes);
% 填充混淆矩阵
for i = 1:length(actual_labels)
actual = actual_labels(i);
predicted = predicted_labels(i);
confusion_matrix(actual, predicted) = confusion_matrix(actual, predicted) + 1;
end
% 显示混淆矩阵
disp(confusion_matrix);
```
请根据实际情况修改 `actual_labels` 和 `predicted_labels` 数组以适应你的数据。这段代码将生成一个 `num_classes x num_classes` 的混淆矩阵,并将其显示在 MATLAB 命令窗口中。
相关问题
混淆矩阵matlab
混淆矩阵是一种用于评估分类模型性能的工具。在Matlab中,可以使用一些代码来生成和绘制混淆矩阵。引用的代码片段演示了如何计算并归一化混淆矩阵;引用中的函数`draw_cm`可以用于绘制彩色的混淆矩阵图。你可以使用这些代码来创建和可视化混淆矩阵。
以下是一个示例代码,展示了如何使用Matlab生成和绘制混淆矩阵:
```matlab
% 假设你已经有了分类结果和真实标签
predictions = [2 1 1 3 2 2 1 3 3 2]; % 分类结果
labels = [2 1 1 3 2 3 1 2 3 2]; % 真实标签
% 计算混淆矩阵
num_classes = max(labels);
confusion_matrix = zeros(num_classes); % 初始化混淆矩阵
for i = 1:num_classes
for j = 1:num_classes
confusion_matrix(i,j) = sum(predictions(labels==i) == j);
end
end
% 归一化混淆矩阵
sum_per_class = sum(confusion_matrix, 2);
for i = 1:num_classes
confusion_matrix(i,:) = confusion_matrix(i,:) / sum_per_class(i);
end
% 绘制混淆矩阵图
draw_cm(confusion_matrix);
xticks(1:num_classes);
yticks(1:num_classes);
```
这个示例代码展示了如何使用Matlab计算混淆矩阵,并使用`draw_cm`函数绘制彩色的混淆矩阵图。你可以根据自己的数据和需求进行调整和修改。希望对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Matlab生成混淆矩阵(很方便)](https://blog.csdn.net/kardbomb/article/details/123155609)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [MATLAB实现混淆矩阵](https://blog.csdn.net/qigeyonghuming_1/article/details/97934871)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
2×2混淆矩阵代码matlab
2x2混淆矩阵是用来评估分类模型性能的重要工具,可以展示分类器在预测结果上的准确度和误差情况。在MATLAB中,我们可以使用以下代码来生成2x2混淆矩阵:
首先,我们需要准备真实标签和预测标签的数据列向量,假设它们分别为true_labels和predicted_labels。
然后,我们可以使用以下代码来生成混淆矩阵:
```matlab
cm = confusionmat(true_labels, predicted_labels);
```
这行代码将生成一个2x2的混淆矩阵cm,其中行表示真实标签的类别,列表示预测标签的类别。混淆矩阵的四个元素分别代表了真正例(True Positive, TP)、假正例(False Positive, FP)、真反例(True Negative, TN)和假反例(False Negative, FN)的数量。
最后,我们可以使用以下代码来可视化混淆矩阵:
```matlab
heatmap(cm, {'Predicted Class 1', 'Predicted Class 2'}, {'True Class 1', 'True Class 2'});
```
这段代码将生成一个热力图,其中横轴和纵轴分别表示预测标签和真实标签的类别,图中的颜色深浅代表了每个类别的预测准确度。
通过以上这些代码,我们就可以很方便地在MATLAB中生成和可视化2x2混淆矩阵,从而对分类模型的性能进行评估和分析。