时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测

时序预测 | MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测

目录

预测效果






基本介绍

ICEEMDAN-IMPA-GRU功率/风速预测 基于改进的自适应经验模态分解+改进海洋捕食者算法+门控循环单元时间序列预测~组合预测

1.分解时避免了传统经验模态分解的一些固有缺陷,效果更佳,并通过改进的海洋捕食者算法对GRU四个参数进行寻优,最后对每个分量建立GRU模型进行预测后叠加集成,全新组合预测,出图多且精美~

2.改进点如下:

通过一个新的自适应参数来控制捕食者移动的步长,并使用非线性参数作为控制参数来平衡NMPA的探索和开发阶段,有效提高其搜索精度与收敛速度。

直接替换excel数据即可用 适合新手小白

附赠案例数据 可直接运行

程序设计

  • 完整程序和数据下载方式私信博主回复:MATLAB实现ICEEMDAN-IMPA-GRU时间序列预测
clike 复制代码
function [modes,its]=iceemdan(x,Nstd,NR,MaxIter,SNRFlag)
x=x(:)';
desvio_x=std(x);
x=x/desvio_x;

modes=zeros(size(x));
temp=zeros(size(x));
aux=zeros(size(x));
iter=zeros(NR,round(log2(length(x))+5));

for i=1:NR
    white_noise{i}=randn(size(x));%creates the noise realizations
end;

for i=1:NR
    modes_white_noise{i}=emd(white_noise{i});%calculates the modes of white gaussian noise
end;

for i=1:NR %calculates the first mode
    xi=x+Nstd*modes_white_noise{i}(1,:)/std(modes_white_noise{i}(1,:));
    [temp, o, it]=emd(xi,'MAXMODES',1,'MAXITERATIONS',MaxIter);
    temp=temp(1,:);
    aux=aux+(xi-temp)/NR;
    iter(i,1)=it;
end;

modes= x-aux; %saves the first mode
medias = aux;
k=1;
aux=zeros(size(x));
es_imf = min(size(emd(medias(end,:),'MAXMODES',1,'MAXITERATIONS',MaxIter)));

while es_imf>1 %calculates the rest of the modes
    for i=1:NR
        tamanio=size(modes_white_noise{i});
        if tamanio(1)>=k+1
            noise=modes_white_noise{i}(k+1,:);
            if SNRFlag == 2
                noise=noise/std(noise); %adjust the std of the noise
            end;
            noise=Nstd*noise;
            try
                [temp,o,it]=emd(medias(end,:)+std(medias(end,:))*noise,'MAXMODES',1,'MAXITERATIONS',MaxIter);
            catch    
                it=0; disp('catch 1 '); disp(num2str(k))
                temp=emd(medias(end,:)+std(medias(end,:))*noise,'MAXMODES',1,'MAXITERATIONS',MaxIter);
            end;
            temp=temp(end,:);
        else
            try
                [temp, o, it]=emd(medias(end,:),'MAXMODES',1,'MAXITERATIONS',MaxIter);
            catch
                temp=emd(medias(end,:),'MAXMODES',1,'MAXITERATIONS',MaxIter);
                it=0; disp('catch 2 sin ruido')
            end;
            temp=temp(end,:);
        end;
        aux=aux+temp/NR;
    iter(i,k+1)=it;    
    end;
    modes=[modes;medias(end,:)-aux];
    medias = [medias;aux];
    aux=zeros(size(x));
%--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

参考资料

[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

相关推荐
软件算法开发11 天前
基于遗传优化ELM网络的时间序列预测算法matlab仿真
算法·matlab·时间序列预测·elm·ga-elm
机器学习之心15 天前
SABO-CNN-BiGRU-Attention减法优化器优化卷积神经网络结合双向门控循环单元时间序列预测,含优化前后对比
时间序列预测·sabo-cnn-bigru·减法优化器优化·卷积神经网络双向门控循环单元
FranzLiszt184723 天前
时间序列预测——周期性解藕框架(PDF)
pdf·时间序列预测·patchtst
机器学习之心1 个月前
时序预测 | 改进图卷积+informer时间序列预测,pytorch架构
人工智能·pytorch·python·时间序列预测·informer·改进图卷积
矩阵猫咪2 个月前
【深度学习】时间序列预测、分类、异常检测、概率预测项目实战案例
人工智能·pytorch·深度学习·神经网络·机器学习·transformer·时间序列预测
机器学习之心2 个月前
时序预测 | Matlab基于TSA-LSTM-Attention被囊群优化算法优化长短期记忆网络融合注意力机制多变量多步时间序列预测
时间序列预测·lstm-attention·融合注意力机制·多变量多步·tsa-lstm·被囊群优化算法优化
阡之尘埃2 个月前
Python数据分析案例62——基于MAGU-LSTM的时间序列预测(记忆增强门控单元)
人工智能·python·深度学习·机器学习·数据分析·lstm·时间序列预测
Cyril_KI2 个月前
PyTorch搭建GNN(GCN、GraphSAGE和GAT)实现多节点、单节点内多变量输入多变量输出时空预测
pytorch·时间序列预测·gnn·时空预测
机器学习之心3 个月前
时序预测 | Matlab实现GA-CNN遗传算法优化卷积神经网络时间序列预测
时间序列预测·ga-cnn·遗传算法优化卷积神经网络
机器学习之心3 个月前
时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测
matlab·cnn·时间序列预测·pso-cnn·粒子群优化卷积神经网络