混淆矩阵带注释
时间: 2023-06-29 07:19:37 浏览: 108
混淆矩阵
混淆矩阵是一种评估分类模型性能的常用方法,可以用来计算模型的准确率、召回率、精确率等指标。下面是一个混淆矩阵的Python代码实现,并带有注释说明每一步的作用:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import confusion_matrix
# 随机生成一个样本数据
y_true = np.random.randint(0, 2, size=100) # 真实标签
y_pred = np.random.randint(0, 2, size=100) # 预测标签
# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred) # 计算混淆矩阵
# 可视化混淆矩阵
plt.imshow(cm, cmap=plt.cm.Blues) # 用热力图可视化混淆矩阵
plt.colorbar() # 添加颜色条
plt.title('Confusion Matrix') # 添加标题
plt.xlabel('Predicted Label') # 添加X轴标签
plt.ylabel('True Label') # 添加Y轴标签
plt.xticks([0, 1], ['Negative', 'Positive']) # 设置X轴刻度文本及标签
plt.yticks([0, 1], ['Negative', 'Positive']) # 设置Y轴刻度文本及标签
for i in range(2):
for j in range(2):
plt.text(j, i, cm[i, j], ha='center', va='center', color='white') # 在每个矩阵格子中添加文本
plt.show()
# 计算模型的准确率、召回率、精确率等指标
tp = cm[1, 1] # 真正例
tn = cm[0, 0] # 真负例
fp = cm[0, 1] # 假正例
fn = cm[1, 0] # 假负例
acc = (tp + tn) / (tp + tn + fp + fn) # 准确率
precision = tp / (tp + fp) # 精确率
recall = tp / (tp + fn) # 召回率
f1_score = 2 * precision * recall / (precision + recall) # F1得分
print('Accuracy:', acc)
print('Precision:', precision)
print('Recall:', recall)
print('F1 Score:', f1_score)
```
代码中首先使用`numpy`库生成随机样本数据,然后使用`sklearn`库中的`confusion_matrix`函数计算混淆矩阵。计算混淆矩阵后,我们可以使用`matplotlib`库可视化混淆矩阵,同时计算模型的准确率、召回率、精确率等指标。最后通过`print`函数输出计算结果。
阅读全文