import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
# 定义四个模型的混淆矩阵
cm_smedcnn = np.array([[80, 10, 5],
[15, 85, 10],
[5, 10, 75]])
cm_mlp = np.array([[50, 20, 25],
[30, 55, 25],
[10, 20, 60]])
cm_lstm = np.array([[85, 5, 10],
[10, 90, 5],
[5, 10, 70]])
cm_cnn = np.array([[75, 15, 10],
[20, 70, 15],
[10, 15, 65]])
# 类别标签
labels = ['Positive', 'Negative', 'Neutral']
mpl.rcParams['font.size'] = 15
# 设置画布
fig, axes = plt.subplots(2, 2, figsize=(12, 12))
# 绘制每个混淆矩阵
sns.heatmap(cm_smedcnn, annot=True, fmt='d', cmap='Blues', xticklabels=labels, yticklabels=labels, ax=axes[0, 0])
axes[0, 0].set_title('SMEDCNN')
sns.heatmap(cm_mlp, annot=True, fmt='d', cmap='Blues', xticklabels=labels, yticklabels=labels, ax=axes[0, 1])
axes[0, 1].set_title('MLP')
sns.heatmap(cm_lstm, annot=True, fmt='d', cmap='Blues', xticklabels=labels, yticklabels=labels, ax=axes[1, 0])
axes[1, 0].set_title('LSTM')
sns.heatmap(cm_cnn, annot=True, fmt='d', cmap='Blues', xticklabels=labels, yticklabels=labels, ax=axes[1, 1])
axes[1, 1].set_title('CNN')
# 调整布局
plt.tight_layout()
# 保存为高清 PDF 格式
# plt.savefig("/home/featurize/work/1/邮件/实验图/简称/confusion_matrices_hd.svg", format='svg', dpi=dpi, bbox_inches='tight', pad_inches=0.1)
# plt.savefig('/home/featurize/work/1/邮件/实验图/简称/confusion_matrices_hd.pdf', format='pdf')
# 显示图像
plt.show()
混淆矩阵绘制
最新推荐文章于 2025-06-13 09:36:20 发布