极限学习机ELM回归预测(MATLAB代码实现)

news/2025/2/22 6:39:04/

 🍒🍒🍒欢迎关注🌈🌈🌈

📝个人主页:我爱Matlab


👍点赞➕评论➕收藏 == 养成习惯(一键三连)🌻🌻🌻

🍌希望大家多多支持🍓~一起加油 🤗

💬语录:将来的我一定会感谢现在奋斗的自己!

🍁🥬🕒摘要🕒🥬🍁

极限学习机(Extreme Learning Machine,ELM)作为前馈神经网络学习中一种全新的训练框架,在行为识别、情感识别和故障诊断等方面被广泛应用,引起了各个领域的高度关注和深入研究.ELM最初是针对单隐层前馈神经网络的学习速度而提出的,之后又被众多学者扩展到多隐层前馈神经网络中.该算法的核心思想是随机选取网络的输入权值和隐层偏置,在训练过程中保持不变,仅需要优化隐层神经元个数.网络的输出权值则是通过最小化平方损失函数,来求解Moore-Penrose广义逆运算得到最小范数最小二乘解.相比于其它传统的基于梯度的前馈神经网络学习算法,ELM具有实现简单,学习速度极快和人为干预较少等显著优势,已成为当前人工智能领域最热门的研究方向之一.ELM的学习理论表明,当隐层神经元的学习参数独立于训练样本随机生成,只要前馈神经网络的激活函数是非线性分段连续的,就可以逼近任意连续目标函数或分类任务中的任何复杂决策边界.近年来,随机神经元也逐步在越来越多的深度学习中使用,而ELM可以为其提供使用的理论基础.

✨🔎⚡运行结果⚡🔎✨

 

💂♨️👨‍🎓Matlab代码👨‍🎓♨️💂

  完整代码:

%% 训练集/测试集产生
load('RAW.mat');
RAW1=RAW(:,:);
RAW=RAW1(:,1:254);
LLL=RAW1(:,255);
[oo, pp]=size(RAW);
temp = randperm(oo);%训练集和预测集按照3:1分类
P_train = RAW(temp(1:300),:)';
T_train = LLL(temp(1:300),:)';
P_test = RAW(temp(301:end),:)';
T_test = LLL(temp(301:end),:)';

%% ELM创建/训练
[IW,B,LW,TF,TYPE] = elmtrain(P_train,T_train,80,'sig',0);

%% ELM仿真测试
T_sim_1 = elmpredict(P_train,IW,B,LW,TF,TYPE);
T_sim_2 = elmpredict(P_test,IW,B,LW,TF,TYPE);


%% 结果对比
result_1 = [T_train' T_sim_1'];
result_2 = [T_test' T_sim_2'];


% 训练集均方误差
E = mse(T_sim_1-T_train);
% 训练集决定系数
N = length(T_train);
R2=(N*sum(T_sim_1.*T_train)-sum(T_sim_1)*sum(T_train))^2/((N*sum((T_sim_1).^2)-(sum(T_sim_1))^2)*(N*sum((T_train).^2)-(sum(T_train))^2)); 


% 预测集均方误差
E1 = mse(T_sim_2-T_test);
% 预测集决定系数
N1=length(T_test);
R21=(N*sum(T_sim_2.*T_test)-sum(T_sim_2)*sum(T_test))^2/((N*sum((T_sim_2).^2)-(sum(T_sim_2))^2)*(N*sum((T_test).^2)-(sum(T_test))^2)); 


%% 绘图
figure(1)
plot(1:N,T_train,'r-*',1:N,T_sim_1,'b:o');
axis([1,300,0.5,4.50]);
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('样本划分')
string = {'训练集样本含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
title(string)

figure(2)
plot(1:N1,T_test,'r-*',1:N1,T_sim_2,'b:o');
axis([1,100,0.5,4.50]);
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('样本划分')
string = {'测试集样本含量预测结果对比(ELM)';['(mse = ' num2str(E1) ' R^2 = ' num2str(R21) ')']};
title(string)

📜📢🌈参考文献🌈📢📜

[1]李斌,张一凡,颜世烨,叶季蕾.基于改进极限学习机ELM的光伏发电预测方法研究[J].热能动力工程,2022,37(10):207-214.DOI:10.16146/j.cnki.rndlgc.2022.10.026.


http://www.ppmy.cn/news/8046.html

相关文章

crypto-EasyMath(Bugku CTF)

新RSA题,记录一下。 #task.py from Crypto.Util.number import getPrime, bytes_to_long from secret import flagp getPrime(2048) q getPrime(2048) x getPrime(4096) y getPrime(4096)n p * q e 0x10001 c pow(bytes_to_long(flag), e, n)print(c) print…

RPC 好,还是 RESTful 好

OSI网络七层模型 RPC服务 RPC架构 同步调用与异步调用 流行的RPC框架 HTTP服务 总之 RPC主要是基于TCP/IP协议的,而HTTP服务主要是基于HTTP协议的,我们都知道HTTP协议是在传输层协议TCP之上的,所以效率来看的话,RPC当然是要更…

Java开发 - 树(二叉树,二叉排序树,红黑树)

目录 前言 你好,认识一下,我是树 二叉树与二叉排序树 二叉排序树特点 为什么说二叉排序树查询效率要高于链表呢? 元素的类型 比较器 手写二叉排序树 定义一棵二叉树 增加元素 查询元素 修改元素 删除元素 遍历二叉树 重写toS…

【Java编程进阶】面向对象思想初识

推荐学习专栏:Java 编程进阶之路【从入门到精通】 文章目录1. 面向对象初识2. 类和对象2.1 类的定义2.2 对象的创建和使用3. 构造方法4. 方法重载5. static 关键字5.1 static 方法5.2 static 变量6. 对象的引用和 this7. 总结1. 面向对象初识 之前我们学习了 C 语言…

BOSS直聘自动投简历聊天机器人的实现过程

这两年疫情,公司业务越来越差,必须得准备后路了,每天睡前都会在直聘上打一遍招呼,一直到打哈欠有睡意为止...,这样持续了一周,发现很难坚持,身为一名资深蜘蛛侠,怎么能这样下去呢?于…

【多尺度条形池化与通道注意力的图像语义分割】论文精讲

论文:论文链接 出处:中国图象图形学报 目录 1.摘要 2.网络结构 2. 1 改进的条形池化技术 2.2 二阶通道注意力机制 3.结果 1.摘要 目的 针对自然场景下图像语义分割易受物体自身形状多样性、距离和光照等因素影响的问题,本文提出 一种新的基于条形池…

Webpack 钩子介绍、手写 Webpack Plugin

目录 1. Plugin 用作和工作原理 1.1 Plugin 的作用 1.2 Plugin 的工作原理 2. Webpack 底层逻辑和钩子介绍 2.1 Webpack 内部执行流程 2.2 Webpack 内部钩子 2.2.1 钩子是什么 2.2.2 Tapable —— 为 Webpack 提供 Plugin 钩子 数据类型接口 定义 2.2.3 Compiler Hook…

【JavaScript】俄罗斯方块简单网页版

文章目录js制作简单网页版俄罗斯方块效果演示设计思路一、HTML网页结构代码二、CSS代码三、JS代码四、代码资源分享js制作简单网页版俄罗斯方块 程序虽然很难写,却很美妙。要想把程序写好,需要写好一定的基础知识,包括编程语言、数据结构与算…