回帰予測 | MATLAB は SO-CNN-BiGRU スネーク群アルゴリズムを実装して、畳み込み双方向ゲートリカレント ユニットの複数入力単一出力回帰予測を最適化します
目次
予測効果
基本的な紹介
MATLAB は、畳み込み双方向ゲート リカレント ユニットを最適化する SO-CNN-BiGRU スネーク群アルゴリズムを実装します。 複数入力単一出力回帰予測 (完全なソース コードとデータ) 1. MATLAB は、畳み込み双方向ゲート リカレント ユニットを最適化するため SO-CNN-BiGRU スネーク 群れアルゴリズムを実装します
。 -入力単一出力回帰予測 (完全なソース コードとデータ)
2. 複数の特徴を入力、単一変数を出力、複数入力単一出力の回帰予測;
3. マルチインデックス評価、評価指標には R2、MAE、MSE が含まれます。 、RMSEなどのコード 品質が非常に高い;
4. スネーク群れアルゴリズムの最適化パラメータは、学習率、隠れ層ノード、正則化パラメータです;
5. Excelデータで、置き換えが容易で、動作環境が優れています。 2020年以降。
プログラミング
- 完全なソースコードとデータの取得方法 1: 私信ブロガーまたは同等の価値のあるプログラムの交換。
- 完全なプログラムとデータのダウンロード方法 2 (「複合最適化」列を購読し、同時に「複合最適化」列に含まれる任意の 8 つのプログラムを取得します。購読後にデータを取得するにはプライベート メッセージを私に送ってください): MATLAB は SO-畳み込みを最適化する CNN-BiGRU スネーク群アルゴリズム双方向ゲートリカレントユニット 複数入力単一出力回帰予測
%% 获取最优种群
for j = 1 : SearchAgents
if(fitness_new(j) < GBestF)
GBestF = fitness_new(j);
GBestX = X_new(j, :);
end
end
%% 更新种群和适应度值
pop_new = X_new;
fitness = fitness_new;
%% 更新种群
[fitness, index] = sort(fitness);
for j = 1 : SearchAgents
pop_new(j, :) = pop_new(index(j), :);
end
%% 得到优化曲线
curve(i) = GBestF;
avcurve(i) = sum(curve) / length(curve);
end
%% 得到最优值
Best_pos = GBestX;
Best_score = curve(end);
%% 得到最优参数
NumOfUnits =abs(round( Best_pos(1,3))); % 最佳神经元个数
InitialLearnRate = Best_pos(1,2) ;% 最佳初始学习率
L2Regularization = Best_pos(1,1); % 最佳L2正则化系数
%
inputSize = k;
outputSize = 1; %数据输出y的维度
% 参数设置
opts = trainingOptions('adam', ... % 优化算法Adam
'MaxEpochs', 20, ... % 最大训练次数
'GradientThreshold', 1, ... % 梯度阈值
'InitialLearnRate', InitialLearnRate, ... % 初始学习率
'LearnRateSchedule', 'piecewise', ... % 学习率调整
'LearnRateDropPeriod', 6, ... % 训练次后开始调整学习率
'LearnRateDropFactor',0.2, ... % 学习率调整因子
'L2Regularization', L2Regularization, ... % 正则化参数
'ExecutionEnvironment', 'gpu',... % 训练环境
'Verbose', 0, ... % 关闭优化过程
'SequenceLength',1,...
'MiniBatchSize',10,...
'Plots', 'training-progress'); % 画出曲线
参考文献
[1] https://blog.csdn.net/kjm13182345320/article/details/128577926?spm=1001.2014.3001.5501
[2] https://blog.csdn.net/kjm13182345320/article/details/128573597?spm=1001.2014 .3001.5501