【Matlab】ELM极限学习机时序预测算法

 资源下载: https://download.csdn.net/download/vvoennvv/88681649

一,概述

        ELM(Extreme Learning Machine)是一种单层前馈神经网络结构,与传统神经网络不同的是,ELM的隐层神经元权重以及偏置都是随机产生的,并且在网络训练过程中不会更新。这种随机初始化的方法使得ELM的训练速度非常快,同时避免了传统神经网络中需要反复调整权重的问题。 ELM的训练过程可以概括为以下几步:

  1. 随机初始化隐层神经元的权重和偏置,构建网络结构。
  2. 将训练数据输入到网络中,得到隐层神经元的输出。
  3. 对隐层神经元的输出和训练数据的标签进行线性回归,得到输出层的权重。
  4. 在测试阶段,将输入数据输入到网络中,通过隐层神经元和输出层权重计算输出结果。 ELM 的优点在于它的训练速度非常快,同时具有较好的泛化能力和适用于大规模数据的特点。但是,它的缺点在于随机初始化可能会导致结果不稳定,而且网络结构过于简单,可能无法处理复杂的非线性问题。因此,在实际应用中需要根据具体问题进行权衡选择。

二,代码

代码中文注释非常清晰,按照示例数据修改格式,替换数据集即可运行,数据集为excel。

部分代码示例如下:

%%  清空环境变量
warning off             % 关闭报警信息
close all               % 关闭开启的图窗
clear                   % 清空变量
clc                     % 清空命令行%%  导入数据(时间序列的单列数据)
result = xlsread('数据集.xlsx');%%  数据分析
num_samples = length(result);  % 样本个数 
kim = 15;                      % 延时步长(kim个历史数据作为自变量)
zim =  1;                      % 跨zim个时间点进行预测%%  构造数据集
for i = 1: num_samples - kim - zim + 1res(i, :) = [reshape(result(i: i + kim - 1), 1, kim), result(i + kim + zim - 1)];
end%%  划分训练集和测试集
%temp = 1: 1: 922;%P_train = res(temp(1: 700), 1: 15)';
%T_train = res(temp(1: 700), 16)';
%M = size(P_train, 2);%P_test = res(temp(701: end), 1: 15)';
%T_test = res(temp(701: end), 16)';
%N = size(P_test, 2);%%  数据集分析
outdim = 1;                                  % 最后一列为输出
num_size = 0.7;                              % 训练集占数据集比例
num_train_s = round(num_size * num_samples); % 训练集样本个数
f_ = size(res, 2) - outdim;                  % 输入特征维度
%%  划分训练集和测试集
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);%%  创建模型
num_hiddens = 20;        % 隐藏层节点个数
activate_model = 'sig';  % 激活函数......

三,运行结果

资源下载: https://download.csdn.net/download/vvoennvv/88681649

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用网络教育系统构建个性化学习平台

在现代教育中,网络教育系统作为一种创新的学习方式,为学生提供了更加个性化和灵活的学习体验。在本文中,我们将通过简单的技术代码,演示如何构建一个基础的网络教育系统,为学生提供个性化的学习路径和资源。 1. 环境…

迪杰斯特拉(Dijkstra)算法详解

【专栏】数据结构复习之路 这篇文章来自上述专栏中的一篇文章的节选: 【数据结构复习之路】图(严蔚敏版)两万余字&超详细讲解 想了解更多图论的知识,可以去看看本专栏 Dijkstra 算法讲解: 迪杰斯特拉算法(Di…

数据库开发之子查询案例的详细解析

1.5 案例 基于之前设计的多表案例的表结构,我们来完成今天的多表查询案例需求。 准备环境 将资料中准备好的多表查询的数据准备的SQL脚本导入数据库中。 分类表:category 菜品表:dish 套餐表:setmeal 套餐菜品关系表&#x…

【计算机网络】第五,六章摘要重点

1.运输层协议概述 运输层提供的是进程之间的通信 2. 3.套接字指的是什么 ip地址端口号 4.每一条TCP语句唯一地被通信两端连接的两个端点 5.TCP传输如何实现 以字节为单位的滑动窗口 超时重传 选择确认 6.TCP流量控制和拥塞控制的区别 流量控制:点对点通信…

SpringMVC学习与开发(四)

注&#xff1a;此为笔者学习狂神说SpringMVC的笔记&#xff0c;其中包含个人的笔记和理解&#xff0c;仅做学习笔记之用&#xff0c;更多详细资讯请出门左拐B站&#xff1a;狂神说!!! 11、Ajax初体验 1、伪造Ajax 结果&#xff1a;并未有xhr异步请求 <!DOCTYPE html> &…

vscode: make sure you configure your user.name and user.email in git

一、问题描述 使用VScode编辑代码后&#xff0c;Push到云端报错&#xff1a;Make sure you configure your "user.name" and "user.email" in git 二、解决方案 解决步骤&#xff1a; 1.打开Git Bash&#xff1a; 2.输入命令&#xff1a; git config -…

论文阅读——EfficientViT(cvpr2023)

EfficientViT: Memory Efficient Vision Transformer with Cascaded Group Attention 1、 从三个角度探讨如何提高vision transformers的效率&#xff1a;内存访问、计算冗余和参数使用。 2.1. Memory Efficiency 红色字体表示操作所花费的时间主要由内存访问决定&#xff0c;…

<JavaEE> 协议格式 -- 传输层协议 TCP

目录 一、TCP协议格式长啥样&#xff1f; 二、TCP协议属性解释 1&#xff09;源端口号/目的端口号 2&#xff09;序号/确认序号 3&#xff09;TCP报头长度 4&#xff09;保留位 5&#xff09;标志位 6&#xff09;窗口大小 7&#xff09;校验和 8&#xff09;紧急指针…

过年过节通过html+css+js代码实现:超级好看的放烟花效果(含背景音乐)

文章目录&#xff1a; 一&#xff1a;放烟花 1. 运行效果 2.代码 二&#xff1a;新年快乐 1.运行效果 2.代码 一&#xff1a;放烟花 1. 运行效果 效果图◕‿◕✌✌✌ 过年过节通过htmlcssjs实现放烟花效果代码(含背景音乐) 2.代码 修改后缀为".html"的格式…

【UE5蓝图】读取本地json文件修改窗口大小

效果 插件 蓝图 1.判断文件存在 2.1文件不存在&#xff0c;生成文件 {"ResolutionX":540, "ResolutionY":960} 2.2文件存在&#xff0c;直接读取 3.设置窗口大小 遇到的坑 1.分辨率太大&#xff0c;导致效果不理想&#xff0c;建议先往小填写。 2.选对…

Centos 7.9 升级 OpenSSH 到 openssh-9.4p1及openssl-1.1.1k

Centos 7.9 升级 OpenSSH 到 openssh-9.4p1及openssl-1.1.1k 注&#xff1a;ssh升级到openssh-9.4p1需要openssl-1.1.1及以上&#xff01;&#xff01;&#xff01; openssh-9.4p1和openssl-1.1.1下载地址 一、升级openssl 到openssl-1.1.1k 1.基础环境 首先&#xff0c;安…