⛄一、鲸鱼算法优化支持向量机SVM

1 鲸鱼优化算法
WOA是由Mirjalili和Lewis在2016年提出的一种较为新颖的元启发式群体智能优化算法,该算法模仿座头鲸的“螺旋气泡网”捕食策略,如图1所示。

图1 座头鲸“螺旋起泡网”捕食策略
WOA算法寻优步骤如下。
步骤1圈记猎物。
座头鲸可识别猎物的位置,并将它们圈记。以当前最佳鲸鱼位置作为最佳搜索代理,其位置更新的数学表达式为

式中:t为当前迭代;A和C为系数;L*(t)为目前所得到的最佳鲸鱼位置向量,在每一次迭代中会随着适应度的大小被更新;L(t)为当前鲸鱼位置向量;D为当前鲸鱼位置向目前最佳鲸鱼位置逼近的迭代距离。A和C的更新公式为

式中:a为参数,在搜索迭代过程中从2到0线性减少;r1和r2为[0,1]中的随机数。

步骤2螺旋式捕猎。

座头鲸在1个收缩的圆圈内同时沿着螺旋形的路径游向猎物,对这种同时行为进行建模。假设有50%的概率可在收缩圆圈或螺旋模型之间选择,以更新鲸鱼的位置。此过程用数学公式模拟为

式中:p为[0,1]的随机数;q∈(-1,1);D′为每个鲸鱼与当前最佳鲸鱼位置的距离,D′=|L*(t)-L(t)|;b为常数,用于描述螺旋形状。

攻击猎物时,在数学上设定靠近猎物时a会减小。由式(3)知,随着a线性减小,A在[-a,a]范围内波动;当A为[-1,1]范围时,鲸鱼的下一个位置可以是它现在位置和猎物位置之间的任意位置,算法设定A<1时,鲸鱼向猎物发起攻击,根据式(5)靠近猎物位置。

步骤3搜索猎物。

搜索猎物时根据A的大小判断是否选取随机搜索机制。当A≥1时,采用的搜索模型为
式中,Lrand为随机选择的鲸鱼位置向量。当A≥1时,随机选择1个搜索代理,以该随机选择的鲸鱼位置向量来更新其他鲸鱼的位置,迫使鲸群偏离猎物,搜索其他更合适的猎物,借此增强算法的全局搜索能力。

最后得到的位置向量L*,即优化选择的参数。本文采用WOA算法优化SVM中学习参数惩罚系数c和核参数g的选择进行优化过程。

⛄二、部分源代码

%% 清空环境变量
tic;
close all;
clear;
clc;
format compact;
%% 数据的提取和预处理

% 载入测试数据上证指数(1990.12.19-2009.08.19)
% 数据是一个4579*6的double型的矩阵,每一行表示每一天的上证指数
% 6列分别表示当天上证指数的开盘指数,指数最高值,指数最低值,收盘指数,当日交易量,当日交易额.
load chapter_sh.mat;

% 提取数据
[m,n] = size(sh);
ts = sh(2:m,1);
tsx = sh(1:m-1,:);

% 画出原始上证指数的每日开盘数
figure;
plot(ts,‘LineWidth’,2);
title(‘上证指数的每日开盘数(1990.12.20-2009.08.19)’,‘FontSize’,12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)’,‘FontSize’,12);
ylabel(‘开盘数’,‘FontSize’,12);
grid on;

% 数据预处理,将原始数据进行归一化
ts = ts’;
tsx = tsx’;

% mapminmax为matlab自带的映射函数
% 对ts进行归一化
[TS,TSps] = mapminmax(ts,1,2);

% 画出原始上证指数的每日开盘数归一化后的图像
figure;
plot(TS,‘LineWidth’,2);
title(‘原始上证指数的每日开盘数归一化后的图像’,‘FontSize’,12);
xlabel(‘交易日天数(1990.12.19-2009.08.19)’,‘FontSize’,12);
ylabel(‘归一化后的开盘数’,‘FontSize’,12);
grid on;
% 对TS进行转置,以符合libsvm工具箱的数据格式要求
TS = TS’;

% mapminmax为matlab自带的映射函数
% 对tsx进行归一化
[TSX,TSXps] = mapminmax(tsx,1,2);
% 对TSX进行转置,以符合libsvm工具箱的数据格式要求
TSX = TSX’;

%% 利用鲸鱼搜索算法选择回归预测分析最佳的SVM参数c&g
%% 鲸鱼参数设置
% 定义优化参数的个数,在该场景中,优化参数的个数dim为2 。
% 定义优化参数的上下限,如c的范围是[0.01, 1], g的范围是[2^-5, 2^5],那么参数的下限lb=[0.01, 2^-5];参数的上限ub=[1, 2^5]。
%目标函数
fobj = @(x) fun(x,TS,TSX);
% 优化参数的个数 (c、g)
dim = 2;
% 优化参数的取值下限
lb = [1,15];
ub = [1,15];

%% 参数设置
pop =10; %数量
Max_iteration=30;%最大迭代次数
%% 优化(这里主要调用函数)
[Best_pos,Best_score,curve]=WOA(pop,Max_iteration,lb,ub,dim,fobj);
c = Best_pos(1, 1);
g = Best_pos(1, 2);
figure
plot(curve,‘linewidth’,1.5);
title(‘WOA-SVM收敛曲线’)
xlabel(‘迭代次数’)
ylabel(‘适应度值’)
grid on;

⛄三、运行结果





⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]岳晓宇,彭显刚,林俐.鲸鱼优化支持向量机的短期风电功率预测[J].电力系统及其自动化学报. 2020,32(02)

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

【SVM时序预测】基于matlab鲸鱼算法优化支持向量机SVM时序数据预测【含Matlab源码 2250期】相关推荐

  1. 【SVM分类】基于人工蜂群算法优化支持向量机SVM实现数据分类附Matlab代码

    1 简介 为确定合理的底板防水煤岩柱尺寸,减少底板突水安全事故的发生,利用支持向量机(SVM)与人工蜂群算法(ABCA)综合研究底板破坏深度问题.由于SVM训练参数惩罚因子C和核函数宽度g的选择对预测 ...

  2. 基于鲸鱼算法优化的Elman神经网络数据预测-附代码

    基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于鲸鱼算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电力负 ...

  3. 基于粒子群算法优化的Elman神经网络数据预测-附代码

    基于粒子群算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于粒子群算法优化的Elman神经网络数据预测 - 附代码 1.Elman 神经网络结构 2.Elman 神经用络学习过程 3.电 ...

  4. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  5. 【Matlab人脸识别】KL变换人脸识别【含GUI源码 859期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]KL变换人脸识别[含GUI源码 859期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  6. 【Matlab语音隐写】DWT音频数字水印【含GUI源码 712期】

    一.代码运行视频(哔哩哔哩) [Matlab语音隐写]DWT音频数字水印[含GUI源码 712期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  7. 【Matlab通信】DTMF双音多频电话拨号仿真【含GUI源码 805期】

    一.代码运行视频(哔哩哔哩) [Matlab通信]DTMF双音多频电话拨号仿真[含GUI源码 805期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  8. 【Matlab心音信号】EMD心音信号特征提取【含GUI源码 1735期】

    一.代码运行视频(哔哩哔哩) [Matlab心音信号]EMD心音信号特征提取[含GUI源码 1735期] 二.matlab版本及参考文献 1 matlab版本 2014a *2 参考文献 [1] 沈再 ...

  9. 【ELM预测】基于鲸鱼算法优化极限学习机实现数据回归预测附matlab代码

    1 简介 为判断中国是否能够实现2030年碳排放强度下降60%-65%的承诺,以及碳排放总量是否能够在2030年达到峰值,论文构建了一个基于鲸鱼优化算法改进的极限学习机模型,对2019-2040年的碳 ...

最新文章

  1. 仓库码放要求_货物码放规范
  2. (zhuan) Where can I start with Deep Learning?
  3. Python标准库01 正则表达式 (re包)
  4. 爬取微博好友所发微博制作词云
  5. 01_sklearn--监督学习——广义线性模型,普通最小二乘法
  6. 1230: 最小花费(spfa)
  7. LeetCode 24两两交换链表中的节点-中等
  8. 计算机设备行业特征,自动装配机在自动化设备行业具有的特点
  9. Mysql简介和Mysql优化查询的方法
  10. fullpage在vue单页面当中使用会出现的问题以及解决办法
  11. uboot1.1.6 start.s分析
  12. Go基础-Go中的import
  13. paip.python错误解决18
  14. Java面经背诵版(一)
  15. 一.python实现AI拟声---pycharm工具下载及python环境配置
  16. librosa.stft的输出
  17. Allegro削铜皮详细操作指导
  18. Flash常见问题与解答
  19. (几何方面:正六边形面积)编写一个程序,提示用户输入正六边形的边长并显示它的面积。
  20. 开发过程中 勘误表errata注意事项

热门文章

  1. java计算机毕业设计ssm智慧餐厅点餐管理系统(源码+系统+mysql数据库+Lw文档)
  2. 读书寄语:一家人在一起,比什么都重要
  3. airpods升系统_如何升级AirPods固件?
  4. (附源码)计算机毕业设计SSM基于Java的茶叶销售管理系统
  5. 孙悟空师徒一行4人西行动态Html
  6. js数组对象中的元素求和
  7. c# Infragistics第三方UltraGrid表格控件实现打印
  8. Ubuntu Linux投影的操作
  9. Python接口自动化测试自学路线
  10. 华为无线设备配置智能漫游