基于蜻蜓算法优化的BP神经网络(预测应用) - 附代码

news2024/7/6 19:21:29

基于蜻蜓算法优化的BP神经网络(预测应用) - 附代码

文章目录

  • 基于蜻蜓算法优化的BP神经网络(预测应用) - 附代码
    • 1.数据介绍
    • 2.蜻蜓优化BP神经网络
      • 2.1 BP神经网络参数设置
      • 2.2 蜻蜓算法应用
    • 4.测试结果:
    • 5.Matlab代码

摘要:本文主要介绍如何用蜻蜓算法优化BP神经网络并应用于预测。

1.数据介绍

本案例数据一共2000组,其中1900组用于训练,100组用于测试。数据的输入为2维数据,预测的输出为1维数据

2.蜻蜓优化BP神经网络

2.1 BP神经网络参数设置

神经网络参数如下:

%% 构造网络结构
%创建神经网络
inputnum = 2;     %inputnum  输入层节点数 2维特征
hiddennum = 10;     %hiddennum  隐含层节点数
outputnum = 1;     %outputnum  隐含层节点数

2.2 蜻蜓算法应用

蜻蜓算法原理请参考:https://blog.csdn.net/u011835903/article/details/107783363

蜻蜓算法的参数设置为:

popsize = 20;%种群数量
Max_iteration = 20;%最大迭代次数
lb = -5;%权值阈值下边界
ub = 5;%权值阈值上边界
%  inputnum * hiddennum + hiddennum*outputnum 为阈值的个数
%  hiddennum + outputnum 为权值的个数
dim =  inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum ;%  inputnum * hiddennum + hiddennum*outputnum维度

这里需要注意的是,神经网络的阈值数量计算方式如下:

本网络有2层:

第一层的阈值数量为:2*10 = 20; 即inputnum * hiddennum;

第一层的权值数量为:10;即hiddennum;

第二层的阈值数量为:10*1 = 10;即hiddenum * outputnum;

第二层权值数量为:1;即outputnum;

于是可知我们优化的维度为:inputnum * hiddennum + hiddennum*outputnum + hiddennum + outputnum = 41;

适应度函数值设定:

本文设置适应度函数如下:
f i t n e s s = a r g m i n ( m s e ( T r a i n D a t a E r r o r ) + m e s ( T e s t D a t a E r r o r ) ) fitness = argmin(mse(TrainDataError) + mes(TestDataError)) fitness=argmin(mse(TrainDataError)+mes(TestDataError))
其中TrainDataError,TestDataError分别为训练集和测试集的预测误差。mse为求取均方误差函数,适应度函数表明我们最终想得到的网络是在测试集和训练集上均可以得到较好结果的网络。

4.测试结果:

从蜻蜓算法的收敛曲线可以看到,整体误差是不断下降的,说明蜻蜓算法起到了优化的作用:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.Matlab代码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/910953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试报告:包含哪些内容?

软件测试报告的内容 软件测试报告通常包括以下内容: 1、项目背景:介绍测试报告的编写目的、测试系统名称、测试环境和用到的专业术语。 2、需求内容:罗列该项目的测试功能点,具体到每个模块功能,以新增的功能和修改的功能为主&…

jmeter HTTP请求默认值

首先,打开JMeter并创建一个新的测试计划。 右键单击测试计划,选择"添加" > “配置元件” > “HTTP请求默认值”。 在HTTP请求默认值中,您可以设置全局的HTTP请求属性,例如: 服务器地址&#xff1a…

cad图怎么转换成pdf格式?一招教你轻松转换

将CAD文件转换成PDF格式有很多优势。首先,PDF格式是一种非常流行的文件格式,几乎所有电脑上都可以打开。这意味着即使将PDF文件发送给其他人,他们也可以轻松地查看文件,此外,PDF格式可以保留CAD文件的图形和布局&#…

Rancher使用cert-manager安装报错解决

报错: rancher-rke-01:~/rke/rancher-helm/rancher # helm install rancher rancher-stable/rancher --namespace cattle-system --set hostnamewww.rancher.local Error: INSTALLATION FAILED: Internal error occurred: failed calling webhook "webhook…

Redis-设置密码linux服务器

操作步骤 打开Redis的配置文件,通常位于 /etc/redis/redis.conf。在配置文件中找到 #requirepass 或 requirepass 的行,如果存在的话,取消行首的注释符号 #。将密码设置为你想要的值,例如 requirepass YourPassword。确保将 Your…

嵌入式蓝海变红海?其实是大浪淘沙!

嵌入式是当下热门的职业方向之一,吸引了众多求职者的目光。然而,有人担心大家一拥而上,导致嵌入式就业竞争激烈,找工作难度大。其实,嵌入式行业的竞争并非无法逾越的天堑,也远远没有从蓝海变成红海&#xf…

RocketMQ MQTT使用教程

一、概览 传统的消息队列MQ主要应用于服务(端)之间的消息通信,比如电商领域的交易消息、支付消息、物流消息等等。然而在消息这个大类下,还有一个非常重要且常见的消息领域,即IoT类终端设备消息。近些年,我…

工采电子受邀参加:维科网举办的2023全球数字经济产业大会

先进电子科技将引领着绿色出行、绿色能源、绿色制造的未来发展,协助我们应对环境、经济及社会等种种机遇与挑战。让我们聚焦并探讨如何持续促进智能化、网联化、低碳化、电动化技术的融合发展,牵引和拉动并实现产业效益,相互赋能,…

算法与数据结构-二叉树

文章目录 什么是树什么是二叉树如何表示(或者存储)一棵二叉树链式存储法顺序存储法二叉树的分类 二叉树的遍历二叉查找树1. 二叉查找树的查找操作2. 二叉查找树的插入操作3. 二叉查找树的删除操作4.支持重复数据的二叉查找树 红黑树什么是“平衡二叉查找…

【SpringCloud】Sleuth链路追踪使用

文章目录 概述配置YMLPOM示例调用路径 概述 能够查看服务调用链路 官网: https://github.com/spring-cloud/spring-cloud-sleuth 在分布式系统中提供追踪解决方案并且兼容支持了zipkin 配置 SpringCloud从F版起已不需要自己构建Zipkin Server了,只需调…

成都大运会,保障大型活动无线电安全需要…

成都大运会 7月28日,备受关注的第31届世界大学生夏季运动会在成都正式开幕。据悉,这是全球首个5G加持的智慧大运会,也是众多成熟信息技术的综合“应用场”。使用基于5G三千兆、云网、8K超高清视频等技术,在比赛现场搭建多路8K摄像…

item_search_shop-获得淘宝/天猫店铺的所有商品

一、接口参数说明: item_search_shop-获得店铺的所有商品,点击更多API调试,请移步注册API账号点击获取测试key和secret 公共参数 请求地址: https://api-gw.onebound.cn/taobao/item_search_shop 名称类型必须描述keyString是调用key&…

怎么恢复qq聊天记录,还不会恢复的看过来!

QQ聊天记录丢失了该怎么办?QQ作为我们日常生活中常见的聊天软件,记录了我们与朋友、家人以及老师之间的重要对话。除此之外,QQ还是传输大型文件的好帮手,这也是为什么还有这么多人喜欢用QQ的原因。 但传输的文件一旦多起来&#…

利用Python下载王者荣耀的全部英雄高清海报【普通皮肤海报】

一、前言 前几天,有人让我帮他下载王者荣耀英雄海报,便想着利用Python写个程序,要不然一个个下载太麻烦,也不是咱的作风 二、库安装 pip install beautifulsoup4pip install lxml三、编辑代码 import requests, re from bs4 i…

yolov5 三个yolo层可视化

CAM方法 拉yolov5源码 在V5的模型中:第17-C3,20-C3,23-C3是三个yolo层的输出,需要明确一下哪一层的输出捕获到了目标? C3的前向传播:C3的 conv3是C3模块的最后输出;通过看C3和bottleNeck的forward代码可以看出&…

Linux系统下的文件目录结构

一、单用户操作系统和多用户操作系统 单用户操作系统:指一台计算机在同一时间内只能由一个用户使用,一个用户独自享用系统的全部硬件和软件资源 Windows XP之前的版本都是单用户操作系统 多用户操作系统:指一台计算机在同一时间可以由多个用户使用&…

【C++STL基础入门】深入理解string类重新赋值(assign)与删除(erase)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、重新赋值1.重新赋值指定元素2.assign函数 二、删除指定元素1.erase函数2.删除全部使用erase()使用clear() 总结 前言 本系列STL使用的是VS2022,…

龙讯旷腾PWmat已部署至曙光智算平台

编者荐语: 近期,龙讯旷腾核心产品PWmat已成功部署至曙光智算AC.sugon.com平台,可为用户提供包括分子建模、第一性原理计算、数据可视化等在内的完备的超级计算云服务,让大家能够轻松上手具有完全自主知识产权的大尺度高性能材料计…

公用医学数据库有哪些?

公共卫生领域的科学研究和知识获取正日益依赖于医学数据库。本文整理了一些公用医学数据库,希望对你有帮助。先收藏,再继续看。 一、中国营养健康调查CHNS数据库 https://www.cpc.unc.edu/projects/china 中国健康与营养调查(China Heal…

看完天才少年稚辉君智元机器人发布会后的一点感受

(点击即可收听) 智辉君,在科技圈里是一位非常有名的技术大佬,华为天才少年,年入百万招入,破圈于B站 人称科技圈里的野生钢铁侠,凡是看过他B站里一些科技硬核作品,外行人看了直呼666,内行人看了惊…