文章目录

  • 例子 1
  • 例子 2
  • Ref.

例子 1

% 任务2: ELM 网络
% Date: 2021-10-15
% Author: Zhao-Jichao
clear
clc%% 训练
% 导入数据集
data = [760,4550,4550,6300];    % 输入数据
label = [500, 500, 880];    % 示教数据输出[N,n] = size(data);         % 返回输入数据的维度L = 7;        % 隐层节点个数
m = 3;          % 要分的类别数% 初始化权重和偏置矩阵
W = rand(n,L)*2-1;                  % rand 随机生成范围是 (0,1),*2-1运算后为 (-1,1)
b_1 = rand(1,L);                    % 随机生成 b 偏置矩阵
ind = ones(N,1); b = b_1(ind,:);    % 将生成的 b 矩阵扩充成 N*L 维度的矩阵,为了计算
H = G(data*W+b);                    % 得到 Hbeta = pinv(H)*label;       % 求解出来输出权重 beta 的最小二乘解output = H * beta;          % 计算实际输出%% 验证
validataData = [4580 6000 1290 3960];
G(validataData*W+b) * beta%% 激活函数的定义
function out = G(in)out = 1./(1 + exp(-in));
%     out = x;
end

例子 2

%% I. 清空环境变量
clear
clc%% II. 训练集/测试集产生
% 1. 导入数据
load spectra_data.mat% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));       % randperm 整数的随机排列% 训练集――50个样本
P_train = NIR(temp(1:50),:)';       % 401x50
T_train = octane(temp(1:50),:)';    % 1x50% 测试集――10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';% 有了随机,效果更好%% III. 数据归一化
% 1. 训练集
[Pn_train,inputps] = mapminmax(P_train);
Pn_test = mapminmax('apply',P_test,inputps);% 2. 测试集
[Tn_train,outputps] = mapminmax(T_train);
Tn_test = mapminmax('apply',T_test,outputps);%% IV. ELM创建/训练
[IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,300,'sig',0);%% V. ELM仿真测试
tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
% 1. 反归一化
T_sim = mapminmax('reverse',tn_sim,outputps);%% VI. 结果对比
result = [T_test' T_sim'];% 1. 均方误差
E = mse(T_sim - T_test);% 2. 决定系数
N = length(T_test);
R2=(N*sum(T_sim.*T_test)-sum(T_sim)*sum(T_test))^2/((N*sum((T_sim).^2)-(sum(T_sim))^2)*(N*sum((T_test).^2)-(sum(T_test))^2)); %% VII. 绘图
figure(1)
plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
title(string)%%
function [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE)
% ELMTRAIN Create and Train a Extreme Learning Machine
% Syntax
% [IW,B,LW,TF,TYPE] = elmtrain(P,T,N,TF,TYPE)
% Description
% Input
% P   - Input Matrix of Training Set  (R*Q)
% T   - Output Matrix of Training Set (S*Q)
% N   - Number of Hidden Neurons (default = Q)
% TF  - Transfer Function:
%       'sig' for Sigmoidal function (default)
%       'sin' for Sine function
%       'hardlim' for Hardlim function
% TYPE - Regression (0,default) or Classification (1)
% Output
% IW  - Input Weight Matrix (N*R)
% B   - Bias Matrix  (N*1)
% LW  - Layer Weight Matrix (N*S)
% Example
% Regression:
% [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',0)
% Y = elmtrain(P,IW,B,LW,TF,TYPE)
% Classification:
% [IW,B,LW,TF,TYPE] = elmtrain(P,T,20,'sig',1)
% Y = elmtrain(P,IW,B,LW,TF,TYPE)
% See also ELMPREDICT
% Yu Lei,11-7-2010
% Copyright www.matlabsky.com
% $Revision:1.0 $
if nargin < 2error('ELM:Arguments','Not enough input arguments.');
end
if nargin < 3N = size(P,2);
end
if nargin < 4TF = 'sig';
end
if nargin < 5TYPE = 0;
end
if size(P,2) ~= size(T,2)error('ELM:Arguments','The columns of P and T must be same.');
end
[R,Q] = size(P);
if TYPE  == 1T  = ind2vec(T);
end
[S,Q] = size(T);
% Randomly Generate the Input Weight Matrix
IW = rand(N,R) * 2 - 1;
% Randomly Generate the Bias Matrix
B = rand(N,1);
BiasMatrix = repmat(B,1,Q);
% Calculate the Layer Output Matrix H
tempH = IW * P + BiasMatrix;
switch TFcase 'sig'H = 1 ./ (1 + exp(-tempH));case 'sin'H = sin(tempH);case 'hardlim'H = hardlim(tempH);
end
% Calculate the Output Weight Matrix
LW = pinv(H') * T';
end

Ref.

  1. 极限学习机(Extreme Learning Machine, ELM)原理详解和MATLAB实现
  2. 简单易学的机器学习算法——极限学习机(ELM)
  3. 【极限学习机ELM与DELM——python实现与应用】
  4. 用ELM极限学习机分类 - python实现

【UWB】ELM,Extreme Learning Machine 极限学习机相关推荐

  1. 极限学习机(Extreme Learning Machine)(小白之路)

    优秀的博客已经很多了,在这里我粘贴一些对我有帮助的博客,感谢大佬们!(既有原理 也有 一些实现[python 和 matlab]): ①极限学习机(Extreme Learning Machine, ...

  2. MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现

    极限学习机(Extreme Learning Machine, ELM) 极限学习机网络结构和BP网络结构类似. 和BP神经网络不同点: 极限学习机输入层到隐含层的权重W是可以随意指定的.BP神经网络 ...

  3. 极限学习机(Extreme Learning Machine)ELM

    二.ELM 1.算法介绍及功能 极限学习机(Extreme Learning Machine) ELM是一种针对单隐含层前馈神经网络(Single-hiddenLayerFeedforwardNeur ...

  4. 第七课 极限学习机( Extreme Learning Machine, ELM)

    背景 前向神经网络的学习速度通常远低于要求,并且在过去几十年里一直是其应用的一个主要瓶颈.背后的两个关键原因可能是: 1)基于慢梯度的学习算法被广泛应用于神经网络的训练. 2)利用这种学习算法对网络的 ...

  5. 极限学习机(Extreme Learning Machine)概述

    摘要 当今研究领域的一项事实就是,前向神经网络(feed-forward neural networks)的训练速度比人们所期望的速度要慢很多.并且,在过去的几十年中,前向神经网络在应用领域存在着很大 ...

  6. 【ELM预测】基于极限学习机ELM实现数据预测matlab源码

    一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...

  7. 极限学习机(Extreme Learning Machine, ELM)的训练与预测matlab仿真

    目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 极限学习机(ELM)是当前一类非常热门的机器学习算法,被用来训练单隐层前馈神经网络(SLFN

  8. 【预测模型-ELM分类】基于极限学习机ELM+OSELM+KELM+半监督SSELM+USELM实现数据集分类附matlab代码

    1 内容介绍 极限学习机是由黄广斌等[13]提出的一种针对前馈神经网络设计的机器学习算法.该算法结构简单.计算速率快.ELM的关键在于找到输出和输出之间的映射空间.首先确定隐含层之间的连接权值w和隐含 ...

  9. 2Speech Emotion Recognition Using Deep Neural Network and Extreme Learning Machine

    文章目录 前言 一.文章内容 二.文章总结 前言 原文地址-2014年 一.文章内容 不同与当时普遍使用统计方法研究感情识别,本文章主要是提出了一种使用DNN网络进行特征提取的办法,采用的模型结构如下 ...

最新文章

  1. 10分钟内基于gpu的目标检测
  2. Windows下安装Python扩展模块提示“Unable to find vcvarsall.bat”的问题(转载)
  3. BeautifulSoup_第二节
  4. docker-elk装IK自定义分词库
  5. 贝叶斯决策思想的应用与延伸
  6. 第四十期:十年生死两茫茫,Linux QQ突然复活!
  7. markdown 转义字符
  8. 解决Eclipse 项目报错:Unbound classpath container
  9. python拦截修改数据包_会Python?那么你一定要试一试mitmproxy
  10. mysql execution plan_MySQL Execution Plan--NOT IN查询
  11. 博文视点大讲堂第18期:从草根到巨人——互联网时代的LAMP开源架构
  12. 由系统函数求零极点图、频率响应(幅频特性、相频特性)的 Matlab 和 Python 方法
  13. apple pay扫银联二维码原理
  14. 聚力国家工业信息安全发展,未来智安加入工业信息安全产业发展联盟
  15. 【微信小程序】开发入门篇(二)
  16. 2020北航计算机夏令营
  17. PHP短信通知+语音播报自动双呼
  18. [统计学理论基础] 方差 协方差 标准差
  19. oracle 转number日期,oracle number型日期转date型日期
  20. 群晖nas部署python项目

热门文章

  1. ActiveMQ(为什么要使用消息中间件,JMS传输模型)
  2. NOIP2012 D2 T2借教室
  3. jquery tab点击切换的问题
  4. jmgraph前端画图组件(html5版)
  5. 【一天一道兼容性】之——IOS4及以下fixed失效
  6. 在你的Fckeditor安装Google map plugin
  7. UA MATH567 高维统计专题2 Low-rank矩阵及其估计3 Rank RIP
  8. CentOS下首次使用as86汇编器
  9. VS调试js学习总结
  10. C# System.Runtime.InteropServices 相关学习总结