生成混淆矩阵代码
时间: 2023-10-22 14:09:29 浏览: 85
以下是一个 Python 代码示例,可以用于生成混淆矩阵:
```python
import numpy as np
def confusion_matrix(actual, predicted, labels):
# 初始化混淆矩阵
matrix = np.zeros((len(labels), len(labels)), dtype=int)
# 遍历每一个预测结果和实际结果
for a, p in zip(actual, predicted):
# 找到对应标签的索引
i = labels.index(a)
j = labels.index(p)
# 将混淆矩阵中对应位置的计数器加一
matrix[i][j] += 1
return matrix
```
这个函数接受三个参数:
- `actual`:一个包含真实标签的数组
- `predicted`:一个包含预测标签的数组
- `labels`:一个包含所有可能标签的列表
函数返回一个二维 `numpy` 数组,表示混淆矩阵。
相关问题
生成混淆矩阵matlab代码
可以使用以下代码生成混淆矩阵(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 命令窗口中。
% 生成混淆矩阵 confusion = confusionmat(labels, data(:, 2));生成混淆矩阵后怎么画出混淆矩阵呢
可以使用 MATLAB 中的 `confusionchart` 函数来画出混淆矩阵。具体步骤如下:
1. 首先,将生成的混淆矩阵 `confusion` 转换为表格形式,以便于使用 `confusionchart` 函数绘制。
```matlab
confusion_table = array2table(confusion);
```
2. 然后,创建一个 `ConfusionChart` 对象,并将转换后的混淆矩阵表格传递给 `confusionchart` 函数。
```matlab
chart = confusionchart(confusion_table);
```
3. 如果需要修改混淆矩阵图表的属性,可以通过 `chart` 对象的各种属性进行修改。例如,可以通过 `Normalization` 属性设置归一化方式,通过 `Title` 属性设置图表标题等。
```matlab
chart.Normalization = 'row-normalized';
chart.Title = 'Confusion Matrix';
```
4. 最后,使用 `drawnow` 函数将图表显示在屏幕上。
```matlab
drawnow;
```
完整代码示例:
```matlab
% 生成混淆矩阵
confusion = confusionmat(labels, data(:, 2));
% 将混淆矩阵转换为表格形式
confusion_table = array2table(confusion);
% 创建混淆矩阵图表对象
chart = confusionchart(confusion_table);
% 修改图表属性
chart.Normalization = 'row-normalized';
chart.Title = 'Confusion Matrix';
% 显示图表
drawnow;
```
阅读全文