matlab代码实现混淆矩阵
时间: 2023-11-09 22:18:47 浏览: 80
您可以使用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);
```
这个函数会生成一个混淆矩阵的可视化图像。
maltab代码实现计算混淆矩阵
下面是一个简单的示例代码,用于计算二分类问题的混淆矩阵:
```matlab
% 设定真实标签和预测标签
actual_labels = [1, 1, 0, 1, 0, 0, 1, 0, 1, 0]; % 真实标签
predicted_labels = [1, 0, 0, 1, 0, 1, 1, 0, 1, 0]; % 预测标签
% 计算混淆矩阵
confusion_matrix = zeros(2, 2);
for i = 1:length(actual_labels)
if actual_labels(i) == 1 && predicted_labels(i) == 1
confusion_matrix(1, 1) = confusion_matrix(1, 1) + 1;
elseif actual_labels(i) == 1 && predicted_labels(i) == 0
confusion_matrix(1, 2) = confusion_matrix(1, 2) + 1;
elseif actual_labels(i) == 0 && predicted_labels(i) == 1
confusion_matrix(2, 1) = confusion_matrix(2, 1) + 1;
else
confusion_matrix(2, 2) = confusion_matrix(2, 2) + 1;
end
end
% 显示混淆矩阵
confusion_matrix
```
输出结果为:
```
confusion_matrix =
4 2
1 3
```
其中,混淆矩阵的第一行表示实际为正例的样本中,预测为正例和预测为负例的个数;第二行表示实际为负例的样本中,预测为正例和预测为负例的个数。在本例中,共有4个真正例、3个真负例、2个假负例和1个假正例。
阅读全文