分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测
目录
- 分类预测 | Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测
- 效果一览
- 基本介绍
- 程序设计
- 参考资料
效果一览
基本介绍
GSWOA-KELM分类,可实现二分类和多分类
基于三种策略改进的鲸鱼优化算法(GSWOA)优化核极限学习机(KELM)的数据分类预测模型
GSWOA在收敛精度和速度上比基本的SSA,GWO,PSO,WOA,MPA,ABC算法要好的多Matlab代码,适合新手小白
核极限学习机KELM是基于极限学习机ELM并结合核函数所提出的改进算法,能够在保留 ELM 优点的基础上提高模型的预测性能。
通过改进鲸鱼算法优化KELM的两个参数,避免了人工选取参数的盲目性,有效提高预测精度。用的人还很少~
WOA改进点如下:
1.在鲸鱼位置更新公式中加入自适应权重,动态调节最优位置的影响力,改善算法收敛速度
2.使用变螺旋位置更新策略,动态调整螺旋的形状,提升算法全局搜寻能力
3.引入最优邻域扰动策略,避免算法陷入局部最优解,解决算法早熟现象。
直接替换数据即可用 适合新手小白~
附赠案例数据 可直接运行
程序设计
- 完整程序和数据资源私信博主回复Matlab实现GSWOA-KELM混合策略改进的鲸鱼优化算法优化核极限学习机的数据分类预测。
function Y = elmpredict(p_test, IW, B, LW, TF, TYPE)
%% 计算隐层输出
Q = size(p_test, 2);
BiasMatrix = repmat(B, 1, Q);
tempH = IW * p_test + BiasMatrix;
%% 选择激活函数
switch TF
case 'sig'
H = 1 ./ (1 + exp(-tempH));
case 'hardlim'
H = hardlim(tempH);
end
%% 计算输出
Y = (H' * LW)';
%% 转化分类模式
if TYPE == 1
temp_Y = zeros(size(Y));
for i = 1:size(Y, 2)
[~, index] = max(Y(:, i));
temp_Y(index, i) = 1;
end
Y = vec2ind(temp_Y);
end
end
参考资料
[1] https://blog.csdn.net/kjm13182345320/article/details/124864369
[2] https://blog.csdn.net/kjm13182345320/article/details/127896974?spm=1001.2014.3001.5502