matlab混淆矩阵 代码
时间: 2024-08-14 14:00:30 浏览: 47
在MATLAB中,混淆矩阵是一个二维数组,用于评估分类模型的表现。它通常包含实际类别(纵坐标)和预测类别(横坐标)的组合。以下是一个简单的例子,假设我们有一个已分类的测试数据和一个分类器的预测结果,我们可以创建并计算混淆矩阵:
```matlab
% 假设 groundTruth 是真实的类别向量,prediction 是模型预测的结果
groundTruth = [1 0 1 0 1]; % 例如,真实标签可能是 {正类, 负类}
prediction = [1 0 0 1 1]; % 预测结果
% 创建混淆矩阵
confMat = confusionmat(groundTruth, prediction);
% 显示混淆矩阵
disp(confMat);
```
运行上述代码后,`confMat`将显示为:
```
2 1
0 1
```
在这个例子中,第一行(True Positives)表示真正为正类的样本中有2个被正确预测为正类,1个被错误预测为负类。第二行(False Positives)表示实际为负类的样本中,有0个被误判为正类,1个被误判为正类。类似地,第三列代表了实际为正类的样本中被预测为负类的数量,第四列代表了实际为负类的样本中被预测为正类的数量。
你可以通过各种统计量如精度(Accuracy)、召回率(Recall)、F1分数等从混淆矩阵进一步分析模型性能。例如:
```matlab
accuracy = sum(diag(confMat)) / sum(confMat(:));
precision = confMat(1,1) / (confMat(1,1) + confMat(1,2));
recall = confMat(1,1) / (confMat(1,1) + confMat(2,1));
```
阅读全文