赞
踩
截止到本期,一共发了10篇关于机器学习预测全家桶的文章。参考文章如下:
2.机器学习预测全家桶,多步预测之BiGRU、BiLSTM、GRU、LSTM,LSSVM、TCN、CNN,光伏发电数据为例
3.机器学习预测全家桶,多步预测之组合预测模型,光伏发电数据为例
4.机器学习预测全家桶之Xgboost,交通流量数据预测为例,MATLAB代码
5.机器学习预测全家桶之CNN-RVM(相关向量机),风电功率预测,MATLAB代码
6.水N篇论文就靠它了!Adaboost风电功率预测,机器学习预测全家桶,MATLAB代码
7.机器学习预测全家桶之单变量输入单步预测,天气温度预测为例,MATLAB代码
8.2023年冠豪猪算法优化CNN-GRU-Attention多特征输入多步预测,MATLAB代码
9.机器学习预测全家桶之单变量输入多步预测,天气温度预测为例,MATLAB代码
10.机器学习预测全家桶新增VMD-TCN-GRU/BiGRU-Attention模型,MATLAB代码
目前整个全家桶包含模型如下:
今天在机器学习预测全家桶中继续添加一种金豺算法优化TCN-BiGRU-Attention模型预测的代码。其中Attention模型可以改为单头或者多头,在代码中就是改个数字而已。代码注释已写好如何更改。
本期代码主要功能为:采用金豺算法优化TCN-BiGRU-Attention模型的四个参数,分别是分别是学习率,BiGRU的神经元个数,注意力机制的键值, 正则化参数。并进行了优化前后的结果比较。
金豺算法是2023年12月份发表的一个智能优化算法,参考链接如下:
智能优化算法之金豺优化算法(GJO),原理公式详解,附matlab代码
TCN-BiGRU模型
时间卷积网络是一种用于处理时间序列的卷积神经网络,其主要结构为包含扩张因果卷积的残差块。因果卷积可以保证输出结果仅依赖于过去的输入信息,从而有效避免未来信息的泄漏;扩张卷积允许在卷积时对输入进行间隔采样,在扩大感受野的同时解决多元时间序列信息的提取问题。
首先,通过堆叠n层(本期模型为2)的TCN残差模块以获取更大范围的输入序列感受野并对特征进行提取和降维,同时避免出现梯度爆炸和梯度消失等问题每个残差块具有相同的内核大小k,其扩张因子D 分别为1、2、4。BiGRU获取到TCN处理后的数据序列,它将正反两个方向的GRU层连接起来,一个按时间步从前往后(正向)处理输入序列,另一个反向处理。通过这种方式,BiGRU可以更加完整地探索时序的依赖关系,获取上下文关联。最后,经全连接层将高维特征映射为最终预测结果。
有关模型的介绍,本文就不再细讲。具体可以参考文献:
张铮,高森,张泽扬.基于特征构造预处理与TCN-BiGRU的池塘溶解氧预测模型[J].上海海洋大学学报,2023,32(5):943-952.
TCN-BiGRU-Attention网络模型搭建
本次搭建的模型如下:
数据准备
数据集统一采用新疆某地风电发电功率数据。
数据包含特征如下:测风塔10m风速(m/s) 、测风塔30m风速(m/s) 、测风塔50m风速(m/s) 、测风塔70m风速(m/s)、 轮毂高度风速(m/s) 、测风塔10m风向(°) 、测风塔30m风向(°) 、测风塔50m风向(°) 、测风塔70m风向(°)、 轮毂高度风向(°) 、温度(°) 、气压(hPa)、 湿度(%) 实际发电功率(mw)。部分数据截图如下:
选取3月份数据,每个样本组成为:延时步长为10,跨时间步长为1。也就是采用前10个样本的所有特征,去预测下一个样本的发电功率。
以表格中数据为例,以2019年1月1日0点~2019年1月1日2点的所有数据(包括功率)组合起来放一块并变成一行,然后把2点15的数据也组合到这一行,这就形成了第一个样本。最后一列是2点15的功率。就这样以此类推,得到好多好多样本。然后划分训练集和测试集就ok了。
结果展示
可以看到,优化后,TCN-BiGRU-ATTENTION的预测精度有所提升!
后台私信获取代码。点击下方卡片获取更多代码!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。