• 基于深度混合核极限学习机的多变量输入时间序列预测


     0、前言

            深度混合核极限学习机的时间序列预测方法:首先采用多层ELM-AE实现抽象特征提取,然后将提取的抽象特征用来训练一个混合核极限学习机实现分类。深度混合核极限学习机实际上是由多层极限学习机+HKELM构成。

    1、理论简介

    1.1 ELMAE

     ELMAE与ELM都是三层网络结构,但是ELM-AE 是无监督学习算法 , 其输出与输入一致。

    ELMAE的输出权重计算公式如下:

    1.2 多层极限学习机ML-ELM

            ML-ELM 使用 ELM-AE 逐层训练,ML-ELM 利用 ELM-AE 训练时,第 i 个隐层的输出和第(i-1)个隐层上的输出的数值关系可用以下公式表示:

    1.3 混合核极限学习机(HKELM)

            HKELM的回归预测实现参考这里

    1.4  深度混合核极限学习机 

            深度混合核极限学习机首先利用多层ELM-AE( ML-ELM)对输入数据进行逐层抽取从而得到更为有效的特征;基于这些更为抽象的特征,利用核函数计算代替高维空间的内积运算,从而实现将特征映射到更高维空间进行预测,则有利于进一步提高模型预测的精度和泛化性能。深度混合核极限学习机结构如下:

            

    2、深度混合核极限学习机用于多变量输入时间序列预测

           多变量输入时间序列预测,指的是输入变量为多个,并且以前几个时刻的输入变量值预测下一时刻的输出变量值。如果输出变量为功率即为功率预测、若是负荷值即为负荷预测。总之替换为自己的数据后,就可以实现时间序列预测。

    1. step=5;%前step个时刻的所有值预测下一个时刻的输出值,构建多变量滚动序列
    2. for i=1:size(data,1)-step
    3. input(i,:,:)=data(i:i+step-1,:);
    4. output(i,:)=data(i+step,end);
    5. end
    6. input=input(:,:);

            首先建立多层ELM-AE网络,实现深度特征提取,本博文方法设置的隐含层层数为2,节点数分别为100、50.

    1. %elm-ae的参数
    2. h=[100 ,50];%各隐含层节点数
    3. TF='sig';%ELM-AE激活函数
    4. lambda1=inf;%elm-ae的L2正则化系数

            然后设置顶层HKELM的网络:选定核函数,设置核参数以及核函数的权重占比,如下图所示

    1. %核函数类型1.RBF_kernel 2.lin_kernel 3 poly_kernel 4 wav_kernel
    2. kernel1='RBF_kernel';
    3. kernel2='poly_kernel';
    4. % 第一个核函数的核参数设置 详情看kernel_matrix
    5. if strcmp(kernel1,'RBF_kernel')
    6. ker1_para=1; %rbf有一个核参数
    7. elseif strcmp(kernel1,'lin_kernel')
    8. ker1_para=[]; %线性没有核参数
    9. elseif strcmp(kernel1,'poly_kernel')
    10. ker1_para=[1,1]; %多项式有2个核参数
    11. elseif strcmp(kernel1,'wav_kernel')
    12. ker1_para=[1,1,1]; %小波核有3个核参数
    13. end
    14. % 第二个核函数的核参数设置 详情看kernel_matrix
    15. if strcmp(kernel2,'RBF_kernel')
    16. ker2_para=1; %rbf有一个核参数
    17. elseif strcmp(kernel2,'lin_kernel')
    18. ker2_para=[]; %线性没有核参数
    19. elseif strcmp(kernel2,'poly_kernel')
    20. ker2_para=[1,1]; %多项式有2个核参数
    21. elseif strcmp(kernel2,'wav_kernel')
    22. ker2_para=[1,1,1]; %小波核有3个核参数
    23. end

    预测效果:

    3、黏菌优化深度混合核极限学习机用于多变量输入时间序列预测

            考虑到深度混合核极限学习机最后预测精度受核参数影响,因此采用黏菌优化算法进行优化,适应度函数为预测精度。

            黏菌优化算法的函数极值寻优效果展示:

     4、效果对比

           

     可以看出优化后的深度混合核极限学习机与真实值更为接近,预测精度更高。

  • 相关阅读:
    回调函数和qsort函数
    笔记本电脑的麦克风没有声音
    c++ 哈希表(Hash Table)
    如何保护数据安全?企业该从部署SSL证书开始
    「实用技巧」后端如何使用 Eolink Apikit 快速调试接口?
    EDI经营许可证办理要求及流程全解!
    【SemiDrive源码分析】【MailBox核间通信】52 - DCF Notify 实现原理分析 及 代码实战
    嘿~ Win安装失败?来试试DeepinOS
    【sciter】sciter 拖拽过程总结
    【软件测试】资深测试聊一聊,测试架构师是怎么样的,做一名成功的测试工程师......
  • 原文地址:https://blog.csdn.net/m0_61363749/article/details/126161152