使用 Matplotlib 绘制训练和验证集的准确率和损失曲线

本教程将演示如何使用 Python Matplotlib 库绘制训练集和验证集的准确率和损失曲线。同时,我们将学习如何使用 plt.annotate() 函数在图上添加注释。

1. 准备数据

首先,我们需要准备训练集和验证集的准确率和损失数据。假设我们已经训练了一个模型,并获得了以下数据:

acc = history.history['accuracy']
val_acc = history.history['val_accuracy']
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs = range(1, len(acc) + 1)

2. 绘制曲线

接下来,我们可以使用 Matplotlib 绘制训练和验证集的准确率和损失曲线:

import matplotlib.pyplot as plt

# 设置字体,防止中文乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(12, 4))

# 绘制训练集与验证集准确率曲线
plt.subplot(1, 2, 1)
plt.plot(epochs, acc, 'bo', label='训练集准确率')
plt.plot(epochs, val_acc, 'b', label='验证集准确率')
plt.title('训练集与验证集准确率曲线')
plt.xlabel('Epochs')
plt.ylabel('准确率')
plt.legend()

# 绘制训练集与验证集损失曲线
plt.subplot(1, 2, 2)
plt.plot(epochs, loss, 'bo', label='训练集损失')
plt.plot(epochs, val_loss, 'b', label='验证集损失')
plt.title('训练集与验证集损失曲线')
plt.xlabel('Epochs')
plt.ylabel('损失')
plt.legend()

plt.tight_layout()
plt.show()

3. 添加注释

我们可以使用 plt.annotate() 函数在图上添加注释。该函数接受四个参数:

  • 注释文本:要显示的文本内容。
  • 注释位置:注释指向的点坐标。
  • 文本位置:注释文本的显示位置。
  • 箭头属性:控制箭头样式的字典。

例如,我们可以在训练集准确率曲线中添加一个注释,指向最高准确率点:

# 添加注释
plt.annotate('最高准确率', xy=(10, 0.98), xytext=(15, 0.96),
             arrowprops=dict(facecolor='black', shrink=0.05),
             )

这个代码将在第 10 个 epoch 处添加一个注释,注释文本为 '最高准确率',注释指向的点坐标为 (10, 0.98),文本显示位置为 (15, 0.96)。arrowprops 参数设置了箭头属性,facecolor 控制箭头颜色,shrink 控制箭头大小。

总结

本文介绍了如何使用 Matplotlib 绘制训练和验证集的准确率和损失曲线,并使用 plt.annotate() 函数添加注释。你可以根据需要修改注释的位置、文本内容和箭头属性。

Python Matplotlib 绘制训练和验证集的准确率和损失曲线

原文地址: https://www.cveoy.top/t/topic/pd7S 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录