做网站的需求是吗,wordpress post-type,上海哪个区最繁华,网站建设需要考虑什么因素多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测 目录 多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预…多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测 目录 多维时序 | Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测 蜣螂算法优化GRU的学习率隐藏层节点正则化系数 2.运行环境为Matlab2020b 3.输入多个特征输出单个变量考虑历史特征的影响多变量时间序列预测 4.data为数据集main.m为主程序运行即可,所有文件放在一个文件夹 5.命令窗口输出R2、MSE、MAE、MAPE和MBE多指标评价 程序设计
完整程序和数据下载方式资源处下载Matlab实现DBO-GRU蜣螂算法优化门控循环单元多变量时间序列预测。
%% 优化算法参数设置
SearchAgents_no 5; % 种群数量
Max_iteration 8; % 最大迭代次数
dim 3; % 优化参数个数
lb [1e-4, 10, 1e-4]; % 参数取值下界(学习率隐藏层节点正则化系数)
ub [1e-2, 30, 1e-1]; % 参数取值上界(学习率隐藏层节点正则化系数)fitness (x)fical(x,p_train,t_train,f_);%% 记录最佳参数
Best_pos(1, 2) round(Best_pos(1, 2));
best_lr Best_pos(1, 1);
best_hd Best_pos(1, 2);
best_l2 Best_pos(1, 3);%% 建立模型
% ---------------------- 修改模型结构时需对应修改fical.m中的模型结构 --------------------------
layers [sequenceInputLayer(f_) % 输入层reluLayer % Relu激活层fullyConnectedLayer(outdim) % 输出回归层regressionLayer];%% 参数设置
% ---------------------- 修改模型参数时需对应修改fical.m中的模型参数 --------------------------
options trainingOptions(adam, ... % Adam 梯度下降算法MaxEpochs, 500, ... % 最大训练次数 500InitialLearnRate, best_lr, ... % 初始学习率 best_lrLearnRateSchedule, piecewise, ... % 学习率下降LearnRateDropFactor, 0.5, ... % 学习率下降因子 0.1LearnRateDropPeriod, 400, ... % 经过 400 次训练后 学习率为 best_lr * 0.5Shuffle, every-epoch, ... % 每次训练打乱数据集ValidationPatience, Inf, ... % 关闭验证L2Regularization, best_l2, ... % 正则化参数Plots, training-progress, ... % 画出曲线Verbose, false);%% 训练模型
net trainNetwork(p_train, t_train, layers, options);%% 仿真验证
t_sim1 predict(net, p_train);
t_sim2 predict(net, p_test );%% 数据反归一化
T_sim1 mapminmax(reverse, t_sim1, ps_output);
T_sim2 mapminmax(reverse, t_sim2, ps_output);
T_sim1double(T_sim1);
T_sim2double(T_sim2);
pFit fit;
pX x; XXpX;
[ fMin, bestI ] min( fit ); % fMin denotes the global optimum fitness value
bestX x( bestI, : ); % bestX denotes the global optimum position corresponding to fMin% Start updating the solutions.
for t 1 : M [fmax,B]max(fit);worse x(B,:); r2rand(1);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%for i 1 : pNum if(r20.9)r1rand(1);arand(1,1);if (a0.1)a1;elsea-1;endx( i , : ) pX( i , :)0.3*abs(pX(i , : )-worse)a*0.1*(XX( i , :)); % Equation (1)elseaaa randperm(180,1);if ( aaa0 ||aaa90 ||aaa180 )x( i , : ) pX( i , :); endtheta aaa*pi/180; x( i , : ) pX( i , :)tan(theta).*abs(pX(i , : )-XX( i , :)); % Equation (2) endx( i , : ) Bounds( x(i , : ), lb, ub ); fit( i ) fobj( x(i , : ) );end [ fMMin, bestII ] min( fit ); % fMin denotes the current optimum fitness valuebestXX x( bestII, : ); % bestXX denotes the current optimum position R1-t/M; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Xnew1 bestXX.*(1-R); Xnew2 bestXX.*(1R); %%% Equation (3)Xnew1 Bounds( Xnew1, lb, ub );Xnew2 Bounds( Xnew2, lb, ub );%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Xnew11 bestX.*(1-R); Xnew22 bestX.*(1R); %%% Equation (5)Xnew11 Bounds( Xnew11, lb, ub );Xnew22 Bounds( Xnew22, lb, ub );
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i ( pNum 1 ) :12 % Equation (4)参考资料 [1] https://blog.csdn.net/kjm13182345320/article/details/129215161 [2] https://blog.csdn.net/kjm13182345320/article/details/128105718