鲸鱼优化算法WOA优化BP神经网络回归预测模型以及MATLAB代码实现

文章目录

  • 鲸鱼优化算法WOA优化BP神经网络回归预测模型以及MATLAB代码实现
  • 1. 算法描述
  • 2. 鲸鱼优化算法优化BP神经网络预测的步骤与流程图设计
  • 3. WOA-BP预测算法的参数设置
  • 4. 运行结果
  • 5. MATLAB代码

1. 算法描述

鲸鱼优化算法(Whale Optimization Algorithm)是一种新兴的智能优化算法,在2016年提出。算法灵感来源于鲸鱼围捕猎物的行为。鲸鱼在捕猎过程中采用包围猎物与环形游动喷出气泡网来驱赶猎物两种方式进行捕猎。选取Sphere函数作为测试基函数,比较鲸鱼优化算法WOA与遗传算法GA、粒子群算法PSO的寻优性能,从结果图可以看到,鲸鱼算法具有较好的全局搜索性能。

2. 鲸鱼优化算法优化BP神经网络预测的步骤与流程图设计

针对BP神经网络训练过程中的初始权值和阈值由随机数产生,对训练的网络结构具有影响,采用鲸鱼优化算法优化BP神经网络的初始权值和阈值,从而得到较为稳定的WOA-BP神经网络模型。

2.1 WOA优化BP神经网络的步骤:

Step1:初始化BP神经网络的权值和阈值
Step2:计算鲸鱼优化算法WOA的决策变量长度,选取均方误差作为优化的目标函数。
Step3:设置算法停止准则,使用鲸鱼优化算法优化神经网络的权值和阈值参数。
Step4:将优化得到的权值和阈值参数赋给BP神经网络。
Step5:优化后的BP神经网络训练与测试,与优化前的BP神经网络进行误差分析和精度对比。

2.2 WOA优化BP神经网络的流程图设计

3. WOA-BP预测算法的参数设置

3.1 数据说明
采用建筑物能源数据集,建立BP神经网络回归预测与鲸鱼优化算法WOA优化BP神经网络的回归预测算法。

3.2 数据格式

样本编号 features1 features2 features3 featuresn target
1
2
n

3.3 优化变量的选取与适应度函数设计
优化BP神经网络的权值和阈值参数,将训练集与测试集整体的均方误差作为适应度函数。适应度函数值越小,表明训练越准确,且兼顾模型的预测精度更好。

F=min⁡(MSETrainingset ,Testingset )F=\min \left(M S E_{\text {Trainingset }, \text { Testingset }}\right) F=min(MSETrainingset , Testingset ​)

式中,TraingingSet,TestingSet,分别为训练集和测试集的样本。

3.4 算法的参数设置

a)BP神经网络的参数设置

net=newff(inputn,outputn,hiddennum_best,{'tansig','purelin'},'trainlm','learngdm');% 建立模型%网络参数配置
net.trainParam.epochs=1000;         % 训练次数
net.trainParam.lr=0.01;                   % 学习速率
net.trainParam.goal=0.00001;                    % 训练目标最小误差
net.trainParam.show=25;                % 显示频率
net.trainParam.mc=0.01;                 % 动量因子
net.trainParam.min_grad=1e-6;       % 最小性能梯度
net.trainParam.max_fail=6;               % 最高失败次数

b) WOA算法的参数设置

% 初始化WOA参数
popsize=30;   %初始种群规模
maxgen=50;   %最大进化代数
dim=inputnum*hiddennum_best+hiddennum_best+hiddennum_best*outputnum+outputnum;    %自变量个数
lb=repmat(-3,1,dim);    %自变量下限
ub=repmat(3,1,dim);   %自变量上限

3.5 使用WOA优化后的BP神经网络进行预测,并与BP神经网络的预测结果进行误差分析和对比

4. 运行结果

4.2 WOA优化BP神经网络预测的误差分析和对比

5. MATLAB代码

见博客主页

改进的BP神经网络回归预测算法类别 代码地址
BP [BP神经网络回归预测MATLAB代码]
GA-BP [[GA优化BP回归预测MATLAB代码(含优化前的对比)]]
PSO-BP [[粒子群算法PSO优化BP神经网络回归预测MATLAB代码]]
ACO-BP [[蚁群算法ACO优化BP神经网络回归预测MATLAB代码]]
ASO-BP [[原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]]
SSA-BP [[麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
WOA-BP [[鲸鱼优化算法WOA优化BP神经网络回归预测MATLAB代码]]
ABC-BP [[人工蜂群算法ABC优化BP神经网络回归预测MATLAB代码]]
SOA-BP [[海鸥优化算法SOA优化BP神经网络回归预测MATLAB代码]]
CS-BP [[布谷鸟搜索算法CS优化BP神经网络回归预测MATLAB代码]]
Logistic-ASO-BP [[基于Logistic混沌映射改进的原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]]
Logistic-SSA-BP [[基于Logstic混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
Tent-ASO-BP [[基于Tent混沌映射改进的原子搜索算法ASO优化BP神经网络回归预测MATLAB代码]]
Tent-SSA-BP [[基于Tent混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]]
Sine-SSA-BP [\基于Sine混沌映射改进的麻雀搜索算法SSA优化BP神经网络回归预测MATLAB代码]

鲸鱼优化算法优化BP神经网络回归预测的算法设计-附代码相关推荐

  1. 蚁群算法优化BP神经网络回归预测的算法设计-附代码

    蚁群算法ACO优化BP神经网络回归预测的算法设计及其MATLAB代码实现 文章目录 蚁群算法ACO优化BP神经网络回归预测的算法设计及其MATLAB代码实现 1. 蚁群算法简介 2. 蚁群算法优化BP ...

  2. 基于头脑风暴优化的BP神经网络(预测应用) - 附代码

    基于头脑风暴优化的BP神经网络(预测应用) - 附代码 文章目录 基于头脑风暴优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSO优化BP神经网络 3.1 BP神经网络参数设置 3.2 ...

  3. 基于布谷鸟优化的BP神经网络(预测应用) - 附代码

    基于布谷鸟优化的BP神经网络(预测应用) - 附代码 文章目录 基于布谷鸟优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.CS优化BP神经网络 3.1 BP神经网络参数设置 3.2 布谷 ...

  4. 基于鸟群优化的BP神经网络(预测应用) - 附代码

    基于鸟群优化的BP神经网络(预测应用) - 附代码 文章目录 基于鸟群优化的BP神经网络(预测应用) - 附代码 1.数据介绍 3.BSA优化BP神经网络 3.1 BP神经网络参数设置 3.2 鸟群算 ...

  5. 基于果蝇优化的BP神经网络(预测应用) - 附代码

    基于果蝇优化的BP神经网络(预测应用) 文章目录 基于果蝇优化的BP神经网络(预测应用) 1.数据介绍 3.FOA优化BP神经网络 3.1 BP神经网络参数设置 3.2 果蝇算法应用 4.测试结果: ...

  6. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  7. 【负荷预测】基于蚂蚁优化算法的BP神经网络在负荷预测中的应用研究(Matlab完整代码实现)

    目录 0 知识回顾 1 ACO-BP算法 2 ACO-BP算法基本思路 3 具体步骤 4 Matlab代码实现 5 运行结果 6 参考文献 7 写在最后 0 知识回顾 智能优化算法-蚁群算法(Pyth ...

  8. 基于灰狼算法优化概率神经网络PNN的分类预测-附代码

    基于灰狼算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于灰狼算法优化概率神经网络PNN的分类预测 - 附代码 1.PNN网络概述 2.变压器故障诊街系统相关背景 2.1 模型建立 3. ...

  9. 基于bp的神经网络算法,bp神经网络是什么算法

    BP人工神经网络方法 (一)方法原理人工神经网络是由大量的类似人脑神经元的简单处理单元广泛地相互连接而成的复杂的网络系统.理论和实践表明,在信息处理方面,神经网络方法比传统模式识别方法更具有优势. 人 ...

最新文章

  1. python中国大学排名爬虫写明详细步骤-python网络爬虫入门实例:中国大学排名定向爬虫...
  2. RHEL6入门系列之二十七,源码安装及软件安装综合实例
  3. SAP的模块化服务应用市场Hybris,前景如何?
  4. docker镜像内容如何查看_如何快速打通 Docker 镜像发布流程?
  5. Java:清空文件内容
  6. mysql通过拷贝数据文件的方式进行数据库迁移
  7. javascript --- [代码优化]将复杂的函数分解写异步请求数据的同步写法
  8. ligerUI的列头合并代码片段
  9. html5表单提交json数据库,使用html5的FormData对象,通过 Ajax表单异步提交文件数据...
  10. 【微信小程序|组件库】一款清新且简洁的卡片样式
  11. mac brew安装/卸载
  12. 向前迈进!走入GC世界:G1 GC原理深入解析
  13. Android中的短信收不到问题,华为的安卓(Android)系统手机收不到短信问题解决方法...
  14. VISUAL STUDIO调试器指南---断点和跟踪点
  15. HTML李峋同款爱心代码源码分享,手机网页爱心代码源码
  16. 展会邀约 | 昂视与您相约BTF第12届上海锂电展
  17. sdust-Java-字符串集合求并集
  18. Gradually Vanishing Bridge for Adversarial Domain Adaptation(CVPR2020)笔记
  19. dev 服务器调试过程
  20. matlab读取hdf显示,matlab读取.hdf文件

热门文章

  1. 流氓软件-搞人心态的UniAccessAgent
  2. 用产品组合矩阵平衡您的投资组合
  3. Seaborn学习「小提琴图」
  4. 高并发访问服务器时前端页面优化方法
  5. Inter Purley Platform feature:eSPI
  6. qq游戏服务器拒绝怎样修复,腾讯Foxmail瘫痪加重 导致QQ程序出错!
  7. 缩短 Linux 内核编译时间
  8. AS实现点击跳转到新界面
  9. web页面跳转:当前窗口/新窗口
  10. input输入框赋值、取值