le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Alta innovazione | CEEMANDA-VMD-GRU-Doppia scomposizione dell'attenzione + unità ricorrente con gate + meccanismo di attenzione previsione di serie temporali multivariate
Questo articolo propone un metodo di decomposizione secondaria basato su CEEMDAN, che ricostruisce la sequenza decomposta da CEEMDAN attraverso l'entropia del campione. Dopo che la sequenza complessa è stata decomposta da VMD, ciascun componente viene previsto dal modello GRU-Attention e i risultati della previsione vengono infine integrati.
1.Matlab implementa la doppia decomposizione CEEMDAN-VMD-GRU-Attenzione + unità a circuito chiuso + meccanismi di attenzione multiplaprevisione delle serie temporali(Codice sorgente completo e dati)
2. CEEMDAN si decompone, calcola l'entropia del campione, esegue il clustering dei kmean in base all'entropia del campione, chiama VMD per decomporre due volte la componente ad alta frequenza e utilizza la componente ad alta frequenza e la componente anteriore decomposta da VMD come unità ciclica con convoluzioneModello del meccanismo di attenzioneI risultati target vengono previsti separatamente e poi aggiunti.
3. Uscita singola multivariabile, considerare l'influenza delle caratteristiche storiche! Gli indicatori di valutazione includono R2, MAE, RMSE, MAPE, ecc.
4. L'algoritmo è nuovo. Il modello CEEMDAN-VMD-GRU-Attention elabora i dati con maggiore precisione e può tenere traccia delle tendenze e dei cambiamenti dei dati. Il modello VMD gestisce dati non lineari, non stazionari e complessi e offre prestazioni migliori rispetto alla serie EMD. Pertanto, i dati ricostruiti vengono scomposti attraverso il modello VMD per migliorare la precisione del modello.
5. Può essere utilizzato sostituendo direttamente i dati di Excel. Le annotazioni sono chiare e adatte ai principianti. È possibile eseguire direttamente il file principale per generare il grafico con un clic.
6. Caratteristiche del codice: programmazione parametrica, i parametri possono essere facilmente modificati, le idee di programmazione del codice sono chiare e i commenti sono dettagliati.
%% 清空环境变量
warning off % 关闭报警信息
close all % 关闭开启的图窗
clear % 清空变量
clc % 清空命令行
%% 划分训练集和测试集
P_train = res(1: num_train_s, 1: f_)';
T_train = res(1: num_train_s, f_ + 1: end)';
M = size(P_train, 2);
P_test = res(num_train_s + 1: end, 1: f_)';
T_test = res(num_train_s + 1: end, f_ + 1: end)';
N = size(P_test, 2);
%% 数据归一化
[P_train, ps_input] = mapminmax(P_train, 0, 1);
P_test = mapminmax('apply', P_test, ps_input);
[t_train, ps_output] = mapminmax(T_train, 0, 1);
t_test = mapminmax('apply', T_test, ps_output);
%% 数据平铺
P_train = double(reshape(P_train, f_, 1, 1, M));
P_test = double(reshape(P_test , f_, 1, 1, N));
t_train = t_train';
t_test = t_test' ;
%% 数据格式转换
for i = 1 : M
p_train{i, 1} = P_train(:, :, 1, i);
end
for i = 1 : N
p_test{i, 1} = P_test( :, :, 1, i);
end
%% 参数设置
options = trainingOptions('adam', ... % Adam 梯度下降算法
'MaxEpochs', 100, ... % 最大训练次数
'InitialLearnRate', 0.01, ... % 初始学习率为0.01
'LearnRateSchedule', 'piecewise', ... % 学习率下降
'LearnRateDropFactor', 0.1, ... % 学习率下降因子 0.1
'LearnRateDropPeriod', 70, ... % 经过训练后 学习率为 0.01*0.1
'Shuffle', 'every-epoch', ... % 每次训练打乱数据集
'Verbose', 1);
figure
subplot(2,1,1)
plot(T_train,'k--','LineWidth',1.5);
hold on
plot(T_sim_a','r-','LineWidth',1.5)
legend('真实值','预测值')
title('CEEMDAN-VMD-CNN-GRU-Attention训练集预测效果对比')
xlabel('样本点')
ylabel('数值')
subplot(2,1,2)
bar(T_sim_a'-T_train)
title('CEEMDAN-VMD-GRU-Attention训练误差图')
xlabel('样本点')
ylabel('数值')
disp('…………测试集误差指标…………')
[mae2,rmse2,mape2,error2]=calc_error(T_test,T_sim_b');
fprintf('n')
figure
subplot(2,1,1)
plot(T_test,'k--','LineWidth',1.5);
hold on
plot(T_sim_b','b-','LineWidth',1.5)
legend('真实值','预测值')
title('CEEMDAN-VMD-GRU-Attention测试集预测效果对比')
xlabel('样本点')
ylabel('数值')
subplot(2,1,2)
bar(T_sim_b'-T_test)
title('CEEMDAN-VMD-GRU-Attention测试误差图')
xlabel('样本点')
ylabel('数值')
[1] https://hmlhml.blog.csdn.net/article/details/135536086?spm=1001.2014.3001.5502
[2] https://hmlhml.blog.csdn.net/article/details/137166860?spm=1001.2014.3001.5502
[3] https://hmlhml.blog.csdn.net/article/details/132372151