多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测

news2024/11/20 18:33:01

多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测

目录

    • 多维时序 | MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测
      • 预测效果
      • 基本介绍
      • 程序设计
      • 学习小结
      • 参考资料

预测效果

1
2
3
4
5

基本介绍

MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测

程序设计

  • 完整程序和数据下载方式1:同等价值程序兑换;
  • 完整程序和数据下载方式2: MATLAB实现VMD-SSA-KELM和VMD-KELM变分模态分解结合麻雀算法优化核极限学习机多输入单输出时间序列预测
vmd(YData,'NumIMFs',3)
[imf,res] = vmd(YData,'NumIMFs',3);
Data=[imf res];
input = xlsread('WTData.xlsx', 'Sheet1', 'B2:H3673');  % 影响因素
for k = 1 : size(Data, 2)
    disp(['第 ',num2str(k),' 个分量的预测: '])
    data(:,k) = Data(:, k);
    delay=1;    %时滞
    data1 = [];
    for i=1:length(data(:,k))-delay
        data1(i,:)=data(i:i+delay,k)';
    end
    data1  = [input(delay+1:end,:),data1];
    P = data1(:,1:end-1);
    T = data1(:,end);

    % 设定训练集与测试集
    Len = size(data1, 1);
    % testNum = 300;
    testNum = round(Len*0.3);
    trainNum = Len - testNum;

    % 训练集
    P_train = P(1:trainNum, :)';
    T_train = T(1:trainNum, :)';
    % 测试集
    P_test = P(trainNum+1:trainNum+testNum,:)';
    T_test = T(trainNum+1:trainNum+testNum,:)';

    %% 归一化
    [Pn_train ,ps]= mapminmax(P_train, 0, 1);
    [Tn_train, ts] = mapminmax(T_train, 0, 1);
    %测试集的归一化
    Pn_test = mapminmax('apply', P_test, ps);
    Tn_test = mapminmax('apply', T_test, ts);

    %% 麻雀参数设置
    pop=20; %种群数量
    Max_iteration=30; %  设定最大迭代次数
    dim = 2;% 维度为2,即优化两个参数,正则化系数 C 和核函数参数 S
    lb = [0.001,0.001];%下边界
    ub = [50,50];%上边界
    fobj = @(x) fun(x,Pn_train,Tn_train,Pn_test,T_test,ts);
    [Best_pos,Best_score,SSA_curve]=SSA(pop,Max_iteration,lb,ub,dim,fobj); %开始优化
    figure
    plot(SSA_curve,'linewidth',1.5);
    grid on;
    xlabel('Number of iteration')
    ylabel('Objective function')
    title('SSA convergence curve')
    set(gca,'Fontname', 'Times New Roman');

    %% 获取最优正则化系数 C 和核函数参数 S
    Regularization_coefficient = Best_pos(1);
    Kernel_para = Best_pos(2);
    Kernel_type = 'rbf';
    %% 训练
    [~,OutputWeight] = kelmTrain(Pn_train,Tn_train,Regularization_coefficient,Kernel_type,Kernel_para);
    %% 测试
    InputWeight = OutputWeight;
    [TestOutT] = kelmPredict(Pn_train,InputWeight,Kernel_type,Kernel_para,Pn_test);
    TestOut(k,:) = mapminmax('reverse',TestOutT,ts);

    %% 基础KELM进行预测
    Regularization_coefficient1 = 2;
    Kernel_para1 = [4];                   %核函数参数矩阵
    Kernel_type = 'rbf';
    %% 训练
    [~,OutputWeight1] = kelmTrain(Pn_train,Tn_train,Regularization_coefficient1,Kernel_type,Kernel_para1);

    %% 预测
    InputWeight1 = OutputWeight1;
    [TestOutT1] = kelmPredict(Pn_train,InputWeight1,Kernel_type,Kernel_para1,Pn_test);
    TestOut1(k,:) = mapminmax('reverse',TestOutT1,ts);
end

学习小结

与ELM 方法相比, KELM 方法无需确定隐含层节点的数目, 在ELM 的特征映射函数未知时, 应用核函数的技术, 基于正则化最小二乘算法获取输出权值的解. 因此, KELM 具有更好的逼近精度和泛化能力.

参考资料

[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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

城堡、游乐园、地下城!!!500+ 超棒 FBX 模型素材,全部都免费!

近期 Cocos 社区有好几位热心的开发者,整理了一些 CC0 协议 的游戏资源。如果你对 CC0 协议还不太了解,我找到一个中文版的协议说明,看下图:有几点比较重要:作者放弃著作权,已将作品贡献至公共领域可以复制…

【ROS】—— 机器人系统仿真 —RDF、Gazebo与Rviz综合应用(十六)

文章目录前言1. 机器人运动控制以及里程计信息显示1.1 ros_control 简介1.2 运动控制实现流程(Gazebo)1.2.1 为 joint 添加传动装置以及控制器1.2.2 xacro文件集成1.2.3 启动 gazebo并控制机器人运动2. 雷达信息仿真以及显示2.1 新建 Xacro 文件,配置雷达传感器信息…

C++STL之vector的模拟实现

由于vector和string的接口使用方法类似,这里便不再详细讲解vector各种接口的使用了,可以参考之前所发布的string的使用,或者从官方文档中获取详细的使用方法. 目录 vector介绍 构造函数(有参,无参,迭代器…

【14】Docker network | bridge | host | none | container

目录 1、Docker 运行的基本流程为: 2、Docker0 3、Docker默认的三种网络模式 4、Docker的网络命令 5、网络模式 6、实例: 7、bridge模式 8、host模式 9、none模式 10、container模式 11、自定义网络 1、Docker 运行的基本流程为: 1.用户是使用 Docker Clie…

UDS诊断系列介绍10-28服务

本文框架1. 系列介绍1.1 28服务概述2. 28服务请求与应答2.1 28服务请求2.2 28服务正响应2.3 否定应答3. Autosar系列文章快速链接1. 系列介绍 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊…

session利用的小思路

session利用的小思路 前言 做题的时候经常考到session利用,常见的基本就两种,session文件包含和session反序列化,之前没有详细总结过,就写写吧。 session文件包含 php.ini session的相关配置 session.upload_progress.enabl…

15、ThingsBoard-自定义阿里云SMS规则节点

1、概述 一个物联网平台承载着很多设备的连接,当设备出现异常的时候,能够快速的通知到运维管理员是非常重要的,thingsboard提供了自定义配置邮箱,但是它对支持发送短信的不是很友好,都是国外的sms服务商,我反正是不用那个,在国内常见就是阿里、腾讯、华为、七牛常用的s…

CORBA,Common Object Request Broker Architecture 简介

CORBA,Common Object Request Broker Architecture 简介 1. 简介 CORBA(Common ObjectRequest Broker Architecture,公共对象请求代理体系结构)是由OMG组织(OMG组织是一个国际性的非盈利组织,其职责是为应…

【17】Docker | CAdvisor_InfluxDB_Granfana | 成功安装

目录 1、查看目前docker容器的状态 2、三大组件 【1】、CAdvisor 【2】、InfluxDB 【3】、Granfana 3、用docker-compose安装三个组件 4、三大组件的登录 【1】浏览cAdvisor收集服务,http://ip:8080 【2】浏览influxdb存储服务,http://ip:8083 …

python日志处理模块讲解-loguru

说明: 本篇文章主要讲的是python日志模块loguru详解,感兴趣的同学赶快来看一看吧。 背景: 在部署一些定时运行或者长期运行的任务时,为了留存一些导致程序出现异常或错误的信息,通常会采用日志的方式来进行记录这些…

运放指标-压摆率SR

1. 压摆率SR 处理交流信号时,压摆率是运放器件重要的指标。其表示运放输出电压的转换速率。在高频信号时,若压摆率不够,则运放输出的信号会变形,导致不满足要求。其实际就是运放输出信号的分辨率,只有分辨率足…

机器学习中的数学基础(四):概率论

机器学习中的数学基础(四):概率论4 概率论4.1 一些概念4.2 二维随机变量4.2.1 离散型4.2.2 连续型4.3 边缘分布4.3.1 离散型边缘分布4.3.2 连续型边缘概率密度4.4 期望4.4.1 一维期望4.4.2 二维期望4.5 马尔可夫不等式4.6 切比雪夫不等式在看…

Vue2.0开发之——组件数据共享-Eventbus(39)

一 概述 兄弟组件之间数据共享的方案—EventBusEventBus的使用步骤EventBus的使用示例 二 兄弟组件之间数据共享的方案—EventBus 在 vue2.x 中,兄弟组件之间数据共享的方案是EventBus。 三 EventBus的使用步骤 创建 eventBus.js 模块,并向外共享一…

个人项目部署在云服务器上以及购买云服务器后如何操作

一. 购买云服务器后简单的操作1.镜像: 镜像可以认为是云服务器的操作系统,选择什么镜像云服务器就安装对应的操作系统。云服务器操作系统主要分为两大类,即Linux和Windows. 本次说明在linux操作系统下进行项目的部署, 那么在选择镜像的时可以选择Linux镜…

linux系统中利用QT实现串口通信的方法

大家好,今天主要和大家分享一下,如何使用QT中的串口通信方法。 目录 第一:资源简介 第二:应用实例的具体实现 第三:程序运行效果 第一:资源简介 在开发板的资源中出厂系统中,默认已经配置了两…

ASP.NET Core 3.1系列(27)——Autofac使用JSON、XML配置文件

1、前言 很多IoC框架都支持以配置文件的形式实现接口和类的注册,Autofac当然也不例外。本文就来介绍一下如何利用JSON、XML等配置文件来实现接口和类的注册。 2、定义接口和类 这里搭建了一个简单的分层项目,如下图所示: Repository层代码…

Verilog HDL

一、基础语法 1. 基础知识 (1)逻辑值 逻辑0:低电平。 逻辑1:高电平。 逻辑X:未知,可能是高电平,也可能是低电平。 逻辑Z:高阻态,外部没有激励信号,是一…

读书笔记《深度学习与图像识别原理与实践 大白话讲解对小白易懂》2022-8-5

开始 目录前言1. 常见深度学习框架2. 图像分类算法2.1 传统类2.2 机器学习2.2.1 人工神经网络(神经元)2.2.2 卷积神经网络3. 目标检测算法3.1 分类定位(单目标)3.2 分类定位(多目标,目标检测)3.…

近端串扰NEXT和远端串扰的ADS仿真

目录 近端串扰NEXT和远端串扰FEXT 串扰仿真原理图 NEXT特征 减少NEXT的措施 FEXT特征 减少FEXT的措施 本文记录近阶段对近端串扰和远端串扰概念的理解。 经验法则:最大可容许串扰大约是信号摆幅的5%。 近端串扰NEXT和远端串扰FEXT 静态线上的靠近驱动源的一端…

CTF中常用的http知识点总结

目录 前提知识 请求头大全 响应头大全 请求方法大全 常见考点 从某ip访问 从某网站跳转 身份为admin才可以访问 从某某浏览器访问 靶场练习 [极客大挑战 2019]Http Become A Member 前提知识 请求头大全 Header解释示例Accept指定客户端可以接收的内容类型Accep…