✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
极限学习机(ELM)是一种基于人工神经网络的机器学习算法,用于数据回归预测。它在许多领域中都有广泛的应用,包括金融、医疗和工业等。ELM的独特之处在于其快速训练速度和良好的泛化能力。
ELM的训练过程非常简单,它只需要两个步骤即可完成。首先,随机生成输入层和隐藏层之间的连接权重。然后,通过最小二乘法将训练数据映射到隐藏层,并计算输出层的权重。由于ELM的隐藏层权重是随机生成的,因此它的训练速度非常快。
ELM的优点之一是其强大的泛化能力。它能够在训练数据之外的未知数据上进行准确的预测。这使得ELM成为许多实际问题中的首选算法。
然而,ELM也有一些限制。由于隐藏层权重是随机生成的,因此它对初始权重的选择非常敏感。不同的初始权重可能会导致不同的预测结果。此外,ELM对于噪声数据也比较敏感,可能会导致预测结果的不准确。
总的来说,ELM是一种强大的数据回归预测算法,具有快速训练速度和良好的泛化能力。然而,我们在使用ELM时需要注意初始权重的选择和噪声数据的处理,以确保预测结果的准确性。希望这篇文章对你了解ELM算法有所帮助。
⛄ 部分代码
function [IW, B, LW, TF, TYPE] = elmtrain(p_train, t_train, N, TF, TYPE)
% 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)
% '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)
if size(p_train, 2) ~= size(t_train, 2)
error('ELM:Arguments', 'The columns of P and T must be same.');
end
%% 转入分类模式
if TYPE == 1
t_train = ind2vec(t_train);
end
%% 初始化权重
R = size(p_train, 1);
Q = size(t_train, 2);
IW = rand(N, R) * 2 - 1;
B = rand(N, 1);
BiasMatrix = repmat(B, 1, Q);
%% 计算输出
tempH = IW * p_train + BiasMatrix;
%% 选择激活函数
switch TF
case 'sig'
H = 1 ./ (1 + exp(-tempH));
case 'hardlim'
H = hardlim(tempH);
end
%% 伪逆计算权重
LW = pinv(H') * t_train';
⛄ 运行结果
⛄ 参考文献
[1] 张建军,张天成,隋宇婷,等.基于极限学习机(ELM)岭回归的DNA微阵列数据填补[J].小型微型计算机系统, 2014, 35(10):6.DOI:10.3969/j.issn.1000-1220.2014.10.030.
[2] 陈恒志,杨建平,卢新春,等.基于极限学习机(ELM)的连铸坯质量预测[J].工程科学学报, 2018.DOI:CNKI:SUN:BJKD.0.2018-07-007.
⛳️ 代码获取关注我