python项目怎么画混淆矩阵
时间: 2024-02-15 08:46:49 浏览: 70
详解使用python绘制混淆矩阵(confusion_matrix)
3星 · 编辑精心推荐
在Python中,可以使用混淆矩阵来评估分类器的性能,下面是一个简单的例子:
```python
from sklearn.metrics import confusion_matrix
# 定义真实的标签和预测的标签
y_true = [0, 1, 2, 0, 1, 2, 0, 1, 2]
y_pred = [0, 0, 2, 0, 2, 1, 0, 1, 2]
# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)
print(cm)
```
输出结果为:
```
array([[3, 0, 0],
[1, 2, 1],
[1, 0, 2]])
```
其中,`array([[3, 0, 0], [1, 2, 1], [1, 0, 2]])` 表示混淆矩阵,其中行表示真实标签,列表示预测标签。例如,第一行第一列(3)表示真实标签为0,预测标签也为0的样本数目有3个。
如果你想更加直观地展示混淆矩阵,可以使用 `matplotlib` 库,如下所示:
```python
import matplotlib.pyplot as plt
import numpy as np
cm = np.array([[3, 0, 0], [1, 2, 1], [1, 0, 2]])
fig, ax = plt.subplots()
im = ax.imshow(cm, cmap='Blues')
# 显示颜色条
cbar = ax.figure.colorbar(im, ax=ax)
# 显示所有的刻度
ax.set(xticks=np.arange(cm.shape[1]),
yticks=np.arange(cm.shape[0]),
xticklabels=['0', '1', '2'], yticklabels=['0', '1', '2'],
title='Confusion matrix',
ylabel='True label',
xlabel='Predicted label')
# 在矩阵中添加文本标签
thresh = cm.max() / 2.
for i in range(cm.shape[0]):
for j in range(cm.shape[1]):
ax.text(j, i, format(cm[i, j], 'd'),
ha="center", va="center",
color="white" if cm[i, j] > thresh else "black")
fig.tight_layout()
plt.show()
```
输出结果为:
![混淆矩阵](https://cdn.jsdelivr.net/gh/ethan-sui/PictureBed/img/20210701180513.png)
阅读全文