python中实现混淆矩阵
时间: 2023-12-04 18:32:02 浏览: 155
混矩阵是用来评估分类模型性能的一种方法。在Python中,可以使用NumPy库来实现混淆矩阵。下面是一个实现混淆矩阵的示例代码:
```python
import numpy as np
# 确定输出和标签
y_true = ["A"]*20 + ["B"]*20 + ["C"]*20 + ["D"]*20 + ["E"]*20
y_pred = ["D"]*5 + ["A"]*30 + ["B"]*15 + ["C"]*25 + ["D"]*20 + ["E"]*5
# 初始化混淆矩阵
classes_num = 5
confusion_matrix = np.zeros((classes_num, classes_num))
# 对混淆矩阵进行赋值
for true_label, pred_label in zip(y_true, y_pred):
confusion_matrix[true_label, pred_label] += 1
print(confusion_matrix)
```
相关问题
python如何实现混淆矩阵归一化
在Python中,可以使用scikit-learn库中的confusion_matrix函数来计算混淆矩阵。要将混淆矩阵归一化,可以将normalize参数设置为True。具体实现代码如下:
```
from sklearn.metrics import confusion_matrix
import matplotlib.pyplot as plt
# 计算混淆矩阵
cnf_matrix = confusion_matrix(y_true, y_pred)
# 归一化混淆矩阵
normalized_cnf_matrix = cnf_matrix.astype('float') / cnf_matrix.sum(axis=1)[:, np.newaxis]
# 绘制归一化混淆矩阵
plt.imshow(normalized_cnf_matrix, interpolation='nearest', cmap=plt.cm.Blues)
plt.title("Normalized Confusion Matrix")
plt.colorbar()
tick_marks = np.arange(len(classes))
plt.xticks(tick_marks, classes, rotation=45)
plt.yticks(tick_marks, classes)
plt.tight_layout()
plt.ylabel('True label')
plt.xlabel('Predicted label')
plt.show()
```
其中,y_true和y_pred分别是真实标签和预测标签,classes是类别列表。绘制出来的归一化混淆矩阵可以更直观地反映分类器的性能。
python中怎么实现混淆矩阵
在Python中,可以使用numpy库来实现混淆矩阵。首先,我们需要确定输出和标签。然后,可以通过创建一个全零矩阵来表示混淆矩阵,并根据预测结果对相应的位置赋值为1。最后,可以打印混淆矩阵。下面是一个实现混淆矩阵的示例代码:
```python
import numpy as np
# 确定输出和标签
y_true = ["A"]*20 + ["B"]*20 + ["C"]*20 + ["D"]*20 + ["E"]*20
y_pred = ["A"]*10 + ["B"]*20 + ["C"]*30 + ["D"]*15 + ["E"]*25
# 创建一个全零矩阵表示混淆矩阵
labels = ["A", "B", "C", "D", "E"]
confusion_matrix = np.zeros((len(labels), len(labels)))
# 根据预测结果对相应的位置赋值为1
for true, pred in zip(y_true, y_pred):
confusion_matrix[labels.index(true), labels.index(pred)] += 1
# 打印混淆矩阵
print(confusion_matrix)
```
阅读全文