ELM极限学习实现汽油辛烷值预测(MATLAB)

2023-05-16

什么是极限学习机?

极限学习机(ELM, Extreme Learning Machines)是一种前馈神经网络,最早由新加坡南洋理工大学黄广斌教授于2006年提出。该算法具有良好的泛化性能以及极快的学习能力

极限学习机和标准神经网络的区别

ELM 不需要基于梯度的反向传播来调整权重,而是通过 Moore-Penrose generalized inverse来设置权值。

标准的单隐藏层神经网络结构如下:

 

极限学习机

     极限学习机是由Huang等[26]提出的一种特殊类型的单隐含层前馈神经网络.随机初始化其输入权值和偏置并得到对应的输入权重,在ELM模型的整个训练过程中并不需要对模型的各个参数进行调整,只需要对模型隐含层神经元的个数进行设置,最终就可以获得唯一的最优解[45].具有简洁高效,无需调参,训练学习速度较快等优点,其基本网络结构如图1所示.

图1 极限学习机基本结构

        极限学习机模型的理论架构如下[26]:ELM模型包括输入层、隐含层和输出层,其中输入层的n个神经元分别与n个输入变量相对应,隐含层有l个神经元,输出层的m个神经元分别与m个输出变量相对应设隐含层神经元的激活函数为g(x),则ELM极限学习机的输出为

        其中ωi=[ωi1,ωi2,...,ωin],xj=[x1j,x2j,...,xnj]T,ωi代表输入层神经元与隐含层神经元之间的连接权值,bi表示第i个神经元的偏差也即隐含层阈值. 式(8)也可以表示为Hβ=TT,其中H代表神经网络隐含层的输出矩阵,H的具体形式可以表示为

ELM实现汽油辛烷值预测实例 

部分代码:

%%ELM极限学习实现汽油辛烷值预测
%% 训练集/测试集产生
clear all
clc
load xinwan_data.mat
% 随机产生训练集和测试集
temp = randperm(size(NIR,1));%打乱60个样本排序
disp(temp(1:50))
% 训练集——50个样本
P_train = NIR(temp(1:50),:)';      
T_train = octane(temp(1:50),:)';
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);

%% 数据归一化

% 训练集
%% 这里函数的作用就是对p_train数据进行归一化处理
[Pn_train,inputps] = mapminmax(P_train);
Pn_test = mapminmax('apply',P_test,inputps);
% 测试集
%% 这里函数的作用就是对T_train数据进行归一化处理
[Tn_train,outputps] = mapminmax(T_train);
Tn_test = mapminmax('apply',T_test,outputps);

%% ELM创建/训练
[IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);

%% ELM仿真测试
tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
% 反归一化
T_sim = mapminmax('reverse',tn_sim,outputps);

        实验共选取60个样本,将50个样本作为训练,10个样本作为测试,测试结果如下图所示:

         读者可根据自己的需求更换数据进行测试,代码亲测有效。

完整代码请见详情:🍞正在为您运送作品详情

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ELM极限学习实现汽油辛烷值预测(MATLAB) 的相关文章

  • 计算数组中接下来的 n 个元素的乘积

    我想计算下一个的乘积n矩阵的相邻元素 号码n要相乘的元素数应在函数的输入中给出 例如 对于此输入 我应该从第一个开始计算每 3 个连续元素的乘积 p ind max product 1 2 2 1 3 1 3 这给出了 1 2 2 2 2
  • MATLAB中如何画水平线和垂直线?

    我目前正在尝试在 MATLAB 中绘制简单的垂直线和水平线 例如 我想绘制线 y 245 我该怎么做呢 MATLAB 根据您提供的向量逐点进行绘图 因此 要创建一条水平线 您需要改变x同时保持y对于垂直线恒定 反之亦然 xh 0 10 yh
  • 按元素出现的频率对数组元素进行排序

    是否可以在 matlab octave 中使用sort函数根据元素的相对频率对数组进行排序 例如数组 m 4 4 4 10 10 10 4 4 5 应该产生这个数组 5 10 10 10 4 4 4 4 4 5是出现频率较低的元素 位于顶部
  • Matlab中转换数据类型的有效方法(double vs. im2double)

    我想将真彩色图像转换为双精度 据我所知有两种方法可以做到这一点 double rgb img im2double rgb img 哪一种效率更高 谢谢 他们都是不同的 im2double将图像的范围转换为0 1如果数据类型是uint8 or
  • 在另一列中添加具有特定条件的一列,如 excel 的 sumif

    我有一个像这样的矩阵 A 1 2 2 3 3 4 4 5 5 6 6 8 7 9 8 5 9 4 现在我想添加第二列 条件是如果 limit 0 interval 3 且 limit limit interval 或者换句话说 当第 1 列
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • 什么是 ANN 中的纪元以及它如何转换为 MATLAB 中的代码?

    我试图理解 并可视化 训练人工神经网络的时代到底是什么 我们有一个包含约 7000 个产品的训练集 其中有 10 个特征 输入 这些产品必须根据这 10 个输入分为 7 个类别 我们的 ANN 有 10 个输入 这些输入进入由 10 个神经
  • MATLAB:具有复数的 printmat

    我想使用 MATLAB 的printmat显示带有标签的矩阵 但这不适用于复数 N 5 x rand N 1 y rand N 1 z x 1i y printmat x y z fftdemo N 1 2 3 4 5 x y x iy O
  • Matlab 和 Python 中的优化算法(dog-leg trust-region)

    我正在尝试使用 Matlab 和 Python 中的狗腿信赖域算法求解一组非线性方程 在Matlab中有fsolve https www mathworks com help optim ug fsolve html其中此算法是默认算法 而
  • 如何将二进制值列表转换为int32类型?

    我在 MATLAB 工作区中有一个小端格式的二进制数列表 我想将它们转换为 int32 a是由 0 和 1 组成的双向量 如下所示 a 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • 有效地绘制大时间序列(matplotlib)

    我正在尝试使用 matplotlib 在同一轴上绘制三个时间序列 每个时间序列有 10 6 个数据点 虽然生成图形没有问题 但 PDF 输出很大 在查看器中打开速度非常慢 除了以栅格化格式工作或仅绘制时间序列的子集之外 还有其他方法可以获得
  • 如何在MATLAB中显示由三个矩阵表示的图像?

    我有 3 个相同大小的 2D 矩阵 假设 200 行和 300 列 每个矩阵代表三种 基本 颜色 红色 绿色和蓝色 之一的值 矩阵的值可以在 0 到 255 之间 现在我想组合这些矩阵以将它们显示为彩色图像 200 x 300 像素 我怎样
  • Matlab Builder JA - 将 Matlab 编译成 Java jar - 免费版本?

    请记住 我对 Matlab 一无所知 Matlab Builder JA 允许开发人员构建 Matlab 应用程序并将其导出到 Java jar 中 太棒了 我只需要生成一个 jar 然后就可以从其他 java 代码中使用它 有谁知道单罐包
  • 快速有效地计算已知特征值的特征向量

    我的问题的简短版本 计算矩阵特征向量的最佳方法是什么A 如果我们已经知道属于特征向量的特征值呢 更长的解释 我有一个很大的随机矩阵A由于它是随机的 因此具有非负左特征向量x 这样A Tx x 我正在寻找快速有效的方法来数值计算这个向量 最好
  • matlab中求和函数句柄

    Hi我试图对两个函数句柄求和 但它不起作用 例如 y1 x x x y2 x x x 3 x y3 y1 y2 我收到的错误是 对于 function handle 类型的输入参数 未定义函数或方法 plus 这只是一个小例子 实际上我实际
  • 如何知道Matlab中系统命令执行过程中经过的时间?

    我有一个运行系统脚本的 Matlab 代码 该脚本可能会因命令运行而停止 我想知道是否有一种方法可以让程序知道它是否花费了很长时间并执行其他操作 这是代码 tic status cmdout system iperfcmd The prog
  • 在 C++ 中使用 matlab 结构(matlab 函数调用的返回值)(由 matlab 编译器生成的库)

    你好 我有一个相当简单的 matlab 函数 例如 function MYSTRUCT myfunc MYSTRUCT prop1 test MYSTRUCT prop2 foo MYSTRUCT prop3 42 end 我用 matla
  • 读出 Matlab / Octave fft2() 函数输出的特定点

    我正在熟悉 Octave 及其功能fft2 在此玩具示例中 我的目标是生成以下 256 x 256 png 图像的 2D DFT 为了能够轻松理解输出 我尝试将此图像转换为 256 x 256 图像 消除颜色信息 Im imread cir
  • 如何使用SIFT算法计算两幅图像的相似度?

    我已经用过SIFT http en wikipedia org wiki Scale invariant feature transform实施安德里亚 维达尔迪 http www vlfeat org overview sift html

随机推荐

  • 北京邮电大学2023级工商管理硕士MBA(非全日制)已开启

    工商管理硕士专业学位 xff08 非全日制 xff09 预面试通知 北京邮电大学MBA项目以 技术叠加管理 科学叠加艺术 为理念 xff0c 以 追求卓越 持续创新 为驱动 xff0c 面向信息化社会的企事业单位 政府部门及创业者 xff0
  • 【视频教程】基于PyTorch机器学习与深度学习实践应用与案例分析

    近年来 xff0c 随着AlphaGo 无人驾驶汽车 医学影像智慧辅助诊疗 ImageNet竞赛等热点事件的发生 xff0c 人工智能迎来了新一轮的发展浪潮 尤其是深度学习技术 xff0c 在许多行业都取得了颠覆性的成果 另外 xff0c
  • ORB-SLAM3运行过程记录

    试着运行ORB SLAM3 xff0c 做的部分修改 在ORB SLAM3 Examples ROS ORB SLAM3 src中修改ros rgbd cc的topic订阅 xff1a xff08 参考https blog csdn net
  • Introduction写作常用句式

    Introduction 引言部分介绍此项研究的主题 背景 范畴 xff0c 并说明全文的结构 xff0c 便于读者阅读 xff0c 一般包含几项内容 xff1a 1 背景介绍 2 现有问题 3 研究目标 4 篇章结构 1 背景介绍 has
  • mysql中的CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP

    在mysql中 xff0c 如果类型为时间的列设置了CURRENT TIMESTAMP xff0c 那么在insert一条新记录的收 xff0c 时间字段自动获取到当前时间 xff0c 如果设置了ON UPDATE CURRENT TIME
  • vncviewer使用教程

    首先安装vncviewer 之后在服务器输入你想要开启的 端口号 conda deactivate vncserver 88 VNC Server这里写 你的服务器地址 5900 43 端口号 如果出现以下问题 xff0c 可能是配置文件的
  • podman常见使用命令

    常用命令 容器 podman run 创建并启动容器 podman start 启动容器 podman ps 查看容器 podman stop 终止容器 podman restart 重启容器 podman attach 进入容器 podm
  • 对子模函数(submodular function)的一些理解

    1 子模函数是一个集合函数 xff0c 又减小回转属性 xff08 diminishing returns 子模函数适用于多种应用 xff0c 包括近似算法 xff0c 博弈理论 xff0c 和电网络 2 标准定义 xff1a 如果是一个集
  • 二项分布(np.random.binomial),搞它就完了

    二项分布 xff08 np random binomial xff09 xff0c 搞它就完了 xff01 首先我们的搞清楚伯努利分布和二项分布 xff0c 我们先找个例子 xff0c 选西瓜 xff0c 待我细细道来 伯努利分布 选一个西
  • Numpy给数组增加维度的操作

    不说其他的 xff0c 直接给个例子就懂了 a是一个一维数组 a 61 np array 0 0 10 0 20 0 30 0 print a shape a np newaxis a np newaxis shape 输出 4 0 10
  • 参数辨识的简单理解

    1 参数辨识技术 xff0c 是一种将理论模型与试验数据结合起来用于预测的技术 参数辨识根据实验数据和建立的模型来确定一组模型的参数 xff0c 使得由模型计算得到的数值结果能最好地拟合测试数据 xff08 可以看做是一种曲线拟合问题 xf
  • Matlab中持久变量(persistent)在Python中的理解

    语法 persistent var1 varN 说明 persistent 将变量var1 varN 声明为持久变量 持久变量是声明它们的函数的局部变量 xff1b 但其值保留在对该函数的各次调用所使用的内存中 xff0c Matlab命令
  • 新的代数计算软件包——Magma

    Magma是一款由悉尼大学数学与统计学系计算代数学小组开发的功能强大的代数计算程序包 xff0c 该软件专门解决代数系统中的数论 代数几何和代数组合学的计算问题 新的代数计算软件包 Magma 前言一 Magama安装二 基本操作三 多项式
  • 基于ChatGPT的新一代辅助编程神器——Cursor

    Cursor 编辑器 Cursor 这是一款与OpenAI合作并且基于GPT3的新一代辅助编程神器 它支持多种文件类型 xff0c 支持格式化文本 xff0c 支持多种主题 xff0c 支持多语言语法高亮 xff0c 支持快捷键设置 xff
  • 2023 Microsoft Edge 新增的分屏功能

    Microsoft Edge Canary 通道目前已经发布 110 版 xff0c 本次更新带来一个非常实用的实验性功能 xff1a 同窗双屏功能 xff0c 可以在一个窗口里同时开两个网页并排看 如何开启分屏功能 xff1f 默认分屏功
  • ubuntu服务器图形界面崩溃解决方案

    你们看的没错 xff0c 我又来了 真的是 xff0c 读计算机不易啊 我又又又把机器搞坏了 就单纯的程序跑不通 xff0c 网上搜解决方案是说好像这个文件夹名带中文 xff0c 明明我修改过了 xff0c 想着重启一下吧 xff0c 然后
  • Mysql备份和恢复

    一 数据备份的重要性 备份的主要目的是灾难恢复 在生产环境中 xff0c 数据的安全性至关重要 任何数据的丢失都可能产生严重的后果 造成数据丢失的原因 1 程序错误 2 人为操作错误 3 运算错误 4 磁盘故障 5 灾难 xff08 火灾
  • FreeRTOS中任务的四种状态

    FreeRTOS任务的四种状态分别是 xff1a 就绪态 运行态 阻塞态 挂起态 各种状态的说明如下 xff1a 1 就绪态 xff1a 处于就绪态的任务是那些已经准备就绪 这些任务没有被阻塞或者挂起 xff0c 可以运行的任务 xff0c
  • BP神经网络实现汽油辛烷值预测,《MATLAB源码+数据集》

    发展背景 在人工神经网络的发展历史上 xff0c 感知机 Multilayer Perceptron xff0c MLP 网络曾对人工神经网络的发展发挥了极大的作用 xff0c 也被认为是一种真正能够使用的人工神经网络模型 xff0c 它的
  • ELM极限学习实现汽油辛烷值预测(MATLAB)

    什么是极限学习机 xff1f 极限学习机 xff08 ELM Extreme Learning Machines xff09 是一种前馈神经网络 xff0c 最早由新加坡南洋理工大学黄广斌教授于2006年提出 该算法具有良好的泛化性能以及极