绘制思路
- 将不同模型训练过程的结果保存
- 读入CSV文件得到结果
- 在图表中进行绘制
学习测试代码
"""
# 模型对比实验
# 实现不同模型的准确率对比图绘制
"""
import pandas as pd
from matplotlib import pyplot as plt
plt.rcParams['pdf.fonttype'] = 42
plt.rcParams['ps.fonttype'] = 42
plt.rc('font', family='Times New Roman', size=12)
# 1. 读取模型的训练过程数据文件
BiTCN = pd.read_csv('../result/BiTCN.csv')
BiTCN_BiLSTM = pd.read_csv('../result/BiTCN-BiLSTM.csv')
BiTCN_Attention = pd.read_csv('../result/BiTCN-Attention.csv')
BiTCN_BiLSTM_Attention = pd.read_csv('../result/BiTCN-BiLSTM-Attention.csv')
# 2. 将数据转换为列表文件
epoch_list = list(range(1, len(BiTCN_BiLSTM_Attention) + 1)) # 假设CSV文件有30行数据
# CSV文件中的列名为 'accuracy' 和 'loss' 分别代表准确率和损失值
BiTCN_BiLSTM_Attention_accuracy = BiTCN_BiLSTM_Attention['accuracy'].tolist()
BiTCN_BiLSTM_Attention_loss = BiTCN_BiLSTM_Attention['loss'].tolist()
# 获取每个模型的准确率和损失值
BiTCN_accuracy = BiTCN['accuracy'].tolist()
BiTCN_loss = BiTCN['loss'].tolist()
BiTCN_BiLSTM_accuracy = BiTCN_BiLSTM['accuracy'].tolist()
BiTCN_BiLSTM_loss = BiTCN_BiLSTM['loss'].tolist()
BiTCN_Attention_accuracy = BiTCN_Attention['accuracy'].tolist()
BiTCN_Attention_loss = BiTCN_Attention['loss'].tolist()
# 3. 绘制准确率对比图
plt.figure(figsize=(8, 5))
plt.xlabel("Epoch")
plt.ylabel("Accuracy")
# 下面开始添加准确率对比图中需要增加的曲线
plt.plot(epoch_list, BiTCN_accuracy, linewidth='1', color='aqua', label='BiTCN')
plt.plot(epoch_list, BiTCN_BiLSTM_accuracy, linewidth='1', color='#CC0066', label='BiTCN-BiLSTM')
plt.plot(epoch_list, BiTCN_Attention_accuracy, linewidth='1', color='green', label='BiTCN-Attention')
plt.plot(epoch_list, BiTCN_BiLSTM_Attention_accuracy, linewidth='1', color='blue', label='BiTCN-BiLSTM-Attention')
plt.rcParams.update({'font.size': 12})
plt.title('Model Accuracy Comparison')
plt.legend()
plt.show()
# 4. 绘制损失值对比图
plt.figure(figsize=(8, 5))
plt.xlabel("Epoch")
plt.ylabel("Loss")
plt.plot(epoch_list, BiTCN_loss, linewidth=1, color='aqua', label='BiTCN')
plt.plot(epoch_list, BiTCN_BiLSTM_loss, linewidth=1, color='#CC0066', label='BiTCN-BiLSTM')
plt.plot(epoch_list, BiTCN_Attention_loss, linewidth=1, color='green', label='BiTCN-Attention')
plt.plot(epoch_list, BiTCN_BiLSTM_Attention_loss, linewidth=1, color='blue', label='BiTCN-BiLSTM-Attention')
plt.title('Model Loss Comparison')
plt.legend()
plt.show()
准去率消融图.png