暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

基于卷积-长短期记忆网络加注意力机制(CNN-LSTM-Attention)的时间序列预测程序,预测精度很高。 可用于做风电功率预测,电力负荷预测等等

原创 手机用户9004 2023-06-19
843

1.jpg2.jpg基于卷积-长短期记忆网络加注意力机制(CNN-LSTM-Attention)的时间序列预测程序,预测精度很高。
可用于做风电功率预测,电力负荷预测等等
标记注释清楚,可直接换数据运行。
代码实现训练与测试精度分析。
这段程序主要是一个基于CNN-LSTM-Attention神经网络的预测模型。下面我将逐步解释程序的功能和运行过程。

YID:5860673742612391

  1. 导入所需的库:

    • matplotlib.pyplot:用于绘图
    • pandas.DataFrame和pandas.concat:用于数据处理
    • sklearn.preprocessing.MinMaxScaler:用于数据归一化
    • sklearn.metrics.mean_squared_error和sklearn.metrics.r2_score:用于评估模型性能
    • keras:用于构建神经网络模型
    • numpy:用于数值计算
    • math.sqrt:用于计算平方根
    • attention:自定义的注意力机制模块
  2. 定义一个函数mae_value(y_true, y_pred)用于计算MAE(平均绝对误差)评价指标。

  3. 定义一个函数series_to_supervised(data, n_in=1, n_out=1, dropnan=True),将序列转换为监督学习问题。该函数将前一采样点的天气影响因素和电力负荷作为特征数据,将后一采样点的电力负荷作为标签,然后按照这个规律将数据转换为监督学习问题。

  4. 加载数据集,读取名为’cluster4.csv’的数据文件,并进行数据预处理,包括填充缺失值和转换数据类型。

  5. 数据归一化,将数据缩放到0-1之间。

  6. 调用series_to_supervised函数将数据集转换为监督学习问题。

  7. 丢弃不需要预测的列,只保留电力负荷作为标签。

  8. 将数据集分割为训练集、验证集和测试集。

  9. 分割输入和输出,将前一采样点的天气因素和电力负荷作为输入,后一采样点的电力负荷作为输出标签。

  10. 重塑数据形状,将数据转换为3D形状,满足循环神经网络的输入要求。

  11. 构建神经网络模型,包括卷积层、池化层、Dropout层、LSTM层、注意力层和全连接层。

  12. 编译模型,选择损失函数和优化器。

  13. 训练模型,使用训练集数据进行训练,同时使用验证集数据进行验证。

  14. 使用训练好的模型进行预测。

  15. 反向缩放预测值和实际值,将归一化的数据转换为原始数据。

  16. 计算RMSE(均方根误差)、MAPE(平均绝对百分比误差)、R2(确定系数)和MAE(平均绝对误差)等评价指标,并打印出来。

  17. 绘制训练集和测试集的损失值对比图。

  18. 绘制预测值和真实值的折线图。

  19. 将预测值保存到文件中。

总结:这段程序是一个基于CNN-LSTM-Attention神经网络的电力负荷预测模型。它将历史天气因素和电力负荷作为输入,通过神经网络模型进行训练和预测,最终得到预测结果。该模型可以在电力负荷预测领域应用,通过分析历史数据和天气因素,预测未来的电力负荷情况。程序涉及到的知识点包括数据处理、数据归一化、监督学习、神经网络模型构建和训练等。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论