【UWB】ELM,Extreme Learning Machine 极限学习机
文章目录
- 例子 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.
- 极限学习机(Extreme Learning Machine, ELM)原理详解和MATLAB实现
- 简单易学的机器学习算法——极限学习机(ELM)
- 【极限学习机ELM与DELM——python实现与应用】
- 用ELM极限学习机分类 - python实现
【UWB】ELM,Extreme Learning Machine 极限学习机相关推荐
- 极限学习机(Extreme Learning Machine)(小白之路)
优秀的博客已经很多了,在这里我粘贴一些对我有帮助的博客,感谢大佬们!(既有原理 也有 一些实现[python 和 matlab]): ①极限学习机(Extreme Learning Machine, ...
- MATLAB机器学习系列-8 极限学习机(Extreme Learning Machine, ELM)原理及其代码实现
极限学习机(Extreme Learning Machine, ELM) 极限学习机网络结构和BP网络结构类似. 和BP神经网络不同点: 极限学习机输入层到隐含层的权重W是可以随意指定的.BP神经网络 ...
- 极限学习机(Extreme Learning Machine)ELM
二.ELM 1.算法介绍及功能 极限学习机(Extreme Learning Machine) ELM是一种针对单隐含层前馈神经网络(Single-hiddenLayerFeedforwardNeur ...
- 第七课 极限学习机( Extreme Learning Machine, ELM)
背景 前向神经网络的学习速度通常远低于要求,并且在过去几十年里一直是其应用的一个主要瓶颈.背后的两个关键原因可能是: 1)基于慢梯度的学习算法被广泛应用于神经网络的训练. 2)利用这种学习算法对网络的 ...
- 极限学习机(Extreme Learning Machine)概述
摘要 当今研究领域的一项事实就是,前向神经网络(feed-forward neural networks)的训练速度比人们所期望的速度要慢很多.并且,在过去的几十年中,前向神经网络在应用领域存在着很大 ...
- 【ELM预测】基于极限学习机ELM实现数据预测matlab源码
一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...
- 极限学习机(Extreme Learning Machine, ELM)的训练与预测matlab仿真
目录 1.算法概述 2.仿真效果 3.MATLAB仿真源码 1.算法概述 极限学习机(ELM)是当前一类非常热门的机器学习算法,被用来训练单隐层前馈神经网络(SLFN
- 【预测模型-ELM分类】基于极限学习机ELM+OSELM+KELM+半监督SSELM+USELM实现数据集分类附matlab代码
1 内容介绍 极限学习机是由黄广斌等[13]提出的一种针对前馈神经网络设计的机器学习算法.该算法结构简单.计算速率快.ELM的关键在于找到输出和输出之间的映射空间.首先确定隐含层之间的连接权值w和隐含 ...
- 2Speech Emotion Recognition Using Deep Neural Network and Extreme Learning Machine
文章目录 前言 一.文章内容 二.文章总结 前言 原文地址-2014年 一.文章内容 不同与当时普遍使用统计方法研究感情识别,本文章主要是提出了一种使用DNN网络进行特征提取的办法,采用的模型结构如下 ...
最新文章
- 10分钟内基于gpu的目标检测
- Windows下安装Python扩展模块提示“Unable to find vcvarsall.bat”的问题(转载)
- BeautifulSoup_第二节
- docker-elk装IK自定义分词库
- 贝叶斯决策思想的应用与延伸
- 第四十期:十年生死两茫茫,Linux QQ突然复活!
- markdown 转义字符
- 解决Eclipse 项目报错:Unbound classpath container
- python拦截修改数据包_会Python?那么你一定要试一试mitmproxy
- mysql execution plan_MySQL Execution Plan--NOT IN查询
- 博文视点大讲堂第18期:从草根到巨人——互联网时代的LAMP开源架构
- 由系统函数求零极点图、频率响应(幅频特性、相频特性)的 Matlab 和 Python 方法
- apple pay扫银联二维码原理
- 聚力国家工业信息安全发展,未来智安加入工业信息安全产业发展联盟
- 【微信小程序】开发入门篇(二)
- 2020北航计算机夏令营
- PHP短信通知+语音播报自动双呼
- [统计学理论基础] 方差 协方差 标准差
- oracle 转number日期,oracle number型日期转date型日期
- 群晖nas部署python项目
热门文章
- ActiveMQ(为什么要使用消息中间件,JMS传输模型)
- NOIP2012 D2 T2借教室
- jquery tab点击切换的问题
- jmgraph前端画图组件(html5版)
- 【一天一道兼容性】之——IOS4及以下fixed失效
- 在你的Fckeditor安装Google map plugin
- UA MATH567 高维统计专题2 Low-rank矩阵及其估计3 Rank RIP
- CentOS下首次使用as86汇编器
- VS调试js学习总结
- C# System.Runtime.InteropServices 相关学习总结