matlab代码实现混淆矩阵
时间: 2023-11-09 19:18:47 浏览: 83
您可以使用MATLAB中的confusionmat函数来实现混淆矩阵。该函数接受两个输入参数,一个是真实标签向量,另一个是预测标签向量。下面是一个示例代码:
```matlab
% 真实标签向量和预测标签向量
trueLabels = [1 1 0 0 1 0 1];
predictedLabels = [1 0 0 1 1 0 0];
% 计算混淆矩阵
C = confusionmat(trueLabels, predictedLabels);
% 显示混淆矩阵
disp('混淆矩阵:');
disp(C);
```
运行上述代码后,将输出混淆矩阵C的值:
```
混淆矩阵:
2 1
2 2
```
在这个例子中,真实标签向量中有3个1和4个0,预测标签向量中有3个1和4个0。混淆矩阵C的第一行第一列的值2表示真实标签为1且被正确预测为1的样本数;第一行第二列的值1表示真实标签为1但被错误预测为0的样本数;第二行第一列的值2表示真实标签为0但被错误预测为1的样本数;第二行第二列的值2表示真实标签为0且被正确预测为0的样本数。
您可以根据实际需要修改真实标签和预测标签的向量,以及添加更多的类别。
相关问题
matlab实现混淆矩阵
在 MATLAB 中,可以使用 confusionmat 函数来生成混淆矩阵。这个函数需要两个参数:真实标签和预测标签。
下面是一个示例代码:
```matlab
% 定义真实标签和预测标签
groundTruth = [1 1 2 2 3 3];
predictedLabels = [1 1 2 3 3 3];
% 生成混淆矩阵
confMat = confusionmat(groundTruth, predictedLabels);
% 显示混淆矩阵
disp(confMat);
```
输出结果为:
```
2 0 0
0 1 1
0 0 2
```
其中,混淆矩阵的行表示真实标签,列表示预测标签。例如,第一行第一列的值为 2,表示真实标签为 1,预测标签也为 1 的样本有2个。
如果需要更好的可视化效果,可以使用 plotconfusion 函数。例如:
```matlab
% 显示混淆矩阵
figure;
plotconfusion(groundTruth, predictedLabels);
```
这个函数会生成一个混淆矩阵的可视化图像。
分类精度评价代码matlab,matlab实现混淆矩阵评价指标(精度,召回率,F1分数)...
以下是一个简单的Matlab代码示例,用于计算分类模型的精度、召回率和F1分数,同时生成混淆矩阵。
```matlab
% 实际类别
actual = [1 1 0 1 0 0 1 0 0 1];
% 预测类别
predicted = [1 0 0 1 0 1 1 1 0 1];
% 计算混淆矩阵
confusion_matrix = confusionmat(actual, predicted);
% 计算精度
accuracy = sum(diag(confusion_matrix))/sum(confusion_matrix(:));
% 计算召回率
recall = diag(confusion_matrix)./sum(confusion_matrix,2);
% 计算F1分数
precision = diag(confusion_matrix)./sum(confusion_matrix,1)';
f1_score = 2*(precision.*recall)./(precision + recall);
% 输出结果
fprintf('Confusion Matrix:\n')
disp(confusion_matrix)
fprintf('Accuracy: %.2f\n', accuracy)
fprintf('Recall: %.2f %.2f\n', recall)
fprintf('Precision: %.2f %.2f\n', precision)
fprintf('F1 Score: %.2f %.2f\n', f1_score)
```
输出结果类似于以下内容:
```
Confusion Matrix:
5 2
1 2
Accuracy: 0.70
Recall: 0.71 0.67
Precision: 0.83 0.50
F1 Score: 0.76 0.57
```
上面的代码将实际类别和预测类别分别存储在 `actual` 和 `predicted` 数组中。然后,代码使用 `confusionmat` 函数计算混淆矩阵。接下来,代码计算精度、召回率和F1分数,并输出结果。
阅读全文