時系列予測 | Matlab は SSA-GRU、GRU スパロー アルゴリズム最適化ゲーテッド リカレント ユニット時系列予測を実現 (最適化前後の比較を含む)
目次
予測効果
基本紹介
Matlab は SSA-GRU, GRU スパロー アルゴリズムを実装して、ゲーテッド リカレント ユニット時系列予測を最適化します(最適化前後の比較を含む) (完全なプログラムとデータ)完全なプログラムとデータ)
単変量時系列予測、動作環境 Matlab2020 以降。
SSA-GRU 最適化によって得られる最適なパラメーターは次のとおりです。 SSA-GRU 最適化によって
得られる隠れユニットの数
: 31 SSA-GRU 最適化によって得られる最大トレーニング期間: 62
SSA-GRU 最適化によって得られる InitialLearnRate は: 0.027781 SSA -GRU 最適化が得られます L2Regularization は次のとおりです: 0.021961
SSA-GRU 結果:
SSA-GRU トレーニング セット MSE: 0.0036759
SSA-GRU テスト セット MSE: 0.064393
GRU 結果:
GRU トレーニング セット MSE: 0.00027715
GRU テスト セット MSE: 0.45317
プログラミング
- 完全なプログラムとデータのダウンロード方法 1 (リソースから直接ダウンロード): Matlab は SSA-GRU、GRU スパロー アルゴリズムを実装して、ゲーテッド リカレント ユニット時系列予測を最適化します (最適化前後の比較を含む)
- 完全なプログラムとデータのダウンロード方法 2 (「GRU Gated Recurrent Unit」列にサブスクライブすると同時に、「GRU Gated Recurrent Unit」列に含まれるすべてのコンテンツを読むことができます。その後、プライベート メッセージでデータを取得してください。 subscription): MatlabはSSA-GRU, GRU sparrow Algorithm Optimization gated recurrent unit時系列予測(最適化前後の比較含む)を実現
- 完全なプログラムとデータのダウンロード方法 3 (「スマート ラーニング」列にサブスクライブし、「スマート ラーニング」列に含まれるプログラムの 3 つのコピーを取得し、サブスクリプション後にデータを取得するために私にプライベート メッセージを送信します): Matlab は SSA-GRU を実装します。ゲーテッドサイクルユニットの時間を最適化するGRUスパローアルゴリズム 配列予測(最適化前後の比較含む)
%%
%创建GRU回归网络,指定GRU层的隐含单元个数96*3
%序列预测,因此,输入一维,输出一维
numFeatures = 1;
numResponses = 1;
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kjm13182345320/article/details/130439025
%% 定义麻雀优化参数
pop=5; %种群数量
Max_iteration=10; % 设定最大迭代次数
dim = 4;%维度,即GRU网路包含的隐藏单元数目,最大训练周期,初始学习率,L2参数
lb = [2,2,10E-3,10E-3];%下边界
ub = [50,100,1,1];%上边界
fobj = @(x) fun(x,numFeatures,numResponses,XTrain,YTrain,XTest,YTest);
[Best_pos,Best_score,SSA_curve,netSSA]=SSA(pop,Max_iteration,lb,ub,dim,fobj); %开始优化
figure
plot(SSA_curve,'linewidth',1.5);
grid on
xlabel('迭代次数')
ylabel('适应度函数')
title('SSA-GRU收敛曲线')
%训练集测试
PredictTrainSSA = predict(netSSA,XTrain, 'ExecutionEnvironment','cpu');
%测试集测试
PredictTestSSA = predict(netSSA,XTest, 'ExecutionEnvironment','cpu');
%训练集mse
mseTrainSSA= mse(YTrain-PredictTrainSSA);
%测试集mse
mseTestSSA = mse(YTest-PredictTestSSA);
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc
————————————————
版权声明:本文为CSDN博主「机器学习之心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kjm13182345320/article/details/130439025
%% 基础GRU测试
numHiddenUnits = 100;
layers = [ ...
sequenceInputLayer(numFeatures)
gruLayer(numHiddenUnits)
fullyConnectedLayer(numResponses)
regressionLayer];
%指定训练选项
options = trainingOptions('adam', ...
'MaxEpochs',500, ...
'ExecutionEnvironment' ,'cpu',...
'GradientThreshold',1, ...
'InitialLearnRate',0.001, ...
'L2Regularization',0.0001,...
'Verbose',0);
参考文献
[1] https://blog.csdn.net/article/details/126072792?spm=1001.2014.3001.5502
[2] https://blog.csdn.net/article/details/126044265?spm=1001.2014.3001.5502