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

news2024/11/25 17:20:44

基于跳蛛算法优化的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/123832349

跳蛛算法的参数设置为:

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/959501.html

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

相关文章

uniapp中UView中 u-form表单在v-for循环下如何进行表单校验

1、数据data格式 注:rule绑定的tableFromRule中要和表单tableFrom下面放置一个同名数组,确保u-form能找到 tableFrom: {tableData: [//数据详情列表]},tableFromRule: {//校验tableData: [//数据详情列表]},formRules:{localation:[{required: true,mes…

团队多人共用一个WhatsApp是如何做到的?

WhatsApp是如今许多跨境企业用来跟客户进行沟通的重要聊天工具,但是在使用WhatsApp时有一个问题是比较突出的,企业一般拥有的WhatsApp账户是有限的,当很多客户同时上门咨询的话,客服就很难应对。但是如果能够实现团队多人共用一个…

数据结构与算法基础-学习-31-交换排序之冒泡排序、快速排序

排序的其他相关知识点和源码分享可以参考之前的博客: 《数据结构与算法基础-学习-30-插入排序之直接插入排序、二分插入排序、希尔排序》 一、交换排序基本思想 两两比较,如果发生逆序则交换位置,直到所有数据记录都排好序为止。 二、冒…

Leetcode130. 被围绕的区域

Every day a Leetcode 题目来源:130. 被围绕的区域 本题给定的矩阵中有三种元素: 字母 X;被字母 X 包围的字母 O;没有被字母 X 包围的字母 O。 本题要求将所有被字母 X 包围的字母 O都变为字母 X ,但很难判断哪些 …

文献阅读:Semantic Communications for Speech Signals

目录 论文简介动机:为什么作者想要解决这个问题?贡献:作者在这篇论文中完成了什么工作(创新点)?规划:他们如何完成工作?自己的看法(作者如何得到的创新思路) 论文简介 作者 Zhenzi Weng Zhijin Qin Geoffre…

网工知识角|掌握MPLS协议从这五个方面入手

今天IELAB李强伟老师(CCNA&HCIA DATACOM/ CCNP EI/ HCIP DATACOM课程讲师)给大家普及一下【MPLS协议的基本介绍】。 ​ 一、什么是MPLS VPN呢? MPLS VPN 是一种虚拟专用网络,它通过 MPLS 技术将不同位置的用户连接在一起,实现安全、高效…

Seata1.5.2+Nacos分布式事务环境搭建详解

文章目录 一、下载seata server二、配置application.yml三、初始Mysql数据库四、导入初始配置到nacos五、启动测试 本文以seata-server-1.5.2,以配置中心、注册中心使用Nacos,store.modedb(mysql)为例进行操作。 Seata简介及入门参…

掌握这个操作,数据中心才算入门!

在现代的信息技术(IT)领域,不间断电源(UPS)扮演着至关重要的角色,它们是保障数据中心、服务器以及其他关键设备持续高效运行的关键组件之一。 UPS系统的任务是在电力故障、电压波动或其他电力问题发生时&am…

如何判断自己的qt版本呢?

如何判断自己的qt版本呢? 前情提要很简单,按照如下图所示,即可查看当前打开的qtCreator的版本如何打开5.15.2版本的qtCreator呢?安装教程 前情提要 我的电脑已经安装了qt5.14.1,然后我又安装了qt5.15.2,我想尝试一下同一台电脑能否适应两个版本的qt? 当我安装完成qt5.15.2后…

短信验证码服务

使用的是 阿里云 阿里云官网 1.找到 左上角侧边栏 -云通信 -短信服务 2.在快速学习测试处 ,按照步骤完成快速学习,绑定要测试的手机号,选专用 【测试模板】,自定义模板需要人工审核,要一个工作日 3.右上角 获取 Acces…

UDS 29 认证服务

UDS协议定义了一套标准的诊断服务,包括会话控制、诊断请求、诊断响应和ECU编程等功能。通过UDS协议,诊断工具可以向ECU发送特定的请求,获取ECU的状态信息和故障码,诊断和解决故障问题。UDS是ISO 14229标准定义的一种通信协议&…

python错误:AttributeError: module ‘pydot‘ has no attribute ‘find_graphviz‘

1.安装pydot-ng 由于pydot里面已经没有这个find_graphviz()方法了,选择安装pydot-ng activate python虚拟环境 pip install pydot-ng2安装graphviz 到graphviz官网上下载exe并点击安装,勾选添加到全局变量。 或者记住安装位置选择手动添加到path变…

Javascript动态添加表格行

1.Javascript如何动态添加表格行 图一 图二 1.首先要找到添加按钮代码&#xff0c;设置id选择器 <button type"button" id"insertRow" class"btn btn-danger" style"background-color: #ca6307;border: none">新增一项&l…

【VTK】 vtkMapper

很高兴在雪易的CSDN遇见你 ,给你糖糖 欢迎大家加入雪易社区-CSDN社区云 前言 本文主要分享VTK中关于vtkMapper的相关知识和使用方法,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO </

工时管理:如何创建和管理工时表

工时管理是人力资源和业务管理的重要组成部分&#xff0c;对于项目管理也是不可或缺的。无论是哪种类型的工作&#xff0c;如果有团队或员工&#xff0c;那么你就需要工时表来跟踪时间和费用。 什么是工时表&#xff1f; 工时表是一种物理或电子文档&#xff0c;雇主用它来跟…

OCR多语言识别模型构建资料收集

OCR多语言识别模型构建 构建多语言识别模型方案 合合&#xff0c;百度&#xff0c;腾讯&#xff0c;阿里这四家的不错 调研多家&#xff0c;发现有两种方案&#xff0c;但是大多数厂商都是将多语言放在一个字典里&#xff0c;构建1w~2W的字典&#xff0c;训练一个可识别多种语…

【监控平台 - zabbix】

目录 一、环境搭建 1. zabbix程序结构 2. zabbix-agent支持的协议 3. zabbix监控环境搭建 3.1 安装方式 3.2 配置zabbix官方yum源 3.3 安装服务端与客户端 3.4 安装zabbix-web 3.4.1 cd /etc/yum.repos.d/ 3.4.2 安装依赖源 3.4.3 安装本部件 3.4.4 安装存储数据库…

时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测

时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测 目录 时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限梯度提升树时间序列预测效果一览基本描述程序设计参考资料 效果一览 基本描述 时序预测 | Matlab实现CNN-XGBoost卷积神经网络结合极限…

Effective STL 1.仔细选择你的容器

Effective STL 1.仔细选择你的容器 文章目录 Effective STL 1.仔细选择你的容器迭代器容器分类连续内存容器和基于节点的容器的区别 如何选择容器结语>>>>> 欢迎关注公众号【三戒纪元】 <<<<< 标准序列容器 vector、string、deque 和 list 标准…

【技巧】如何在Excel表格中添加水印?

想要在Excel表格中添加水印展示&#xff0c;但是Excel并没有像word文档一样的直接添加水印的功能&#xff0c;怎么办&#xff1f; 今天小编来分享一个方法&#xff0c;也能实现Excel表格的添加水印~ 1、 打开Excel表格&#xff0c;依次点击菜单栏的“插入” → “文本框” →…