基于适应度相关算法优化的BP神经网络(预测应用) - 附代码

news2024/9/24 13:13:39

基于适应度相关算法优化的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/119946003

适应度相关算法的参数设置为:

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

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

相关文章

Python学习之一 基于交互式解释器的简单Python编程

在很奇葩的Deepin下Miniconda安装之旅 中完成了Deepin系统下的Miniconda安装,在使用Miniconda 中完成了Miniconda的使用。今天,将开始学习Python编程。 (一) 为Python编程学习创建虚拟环境 首先创建虚拟环境,选择Python3.7。 conda create…

用于C++律动运动的中央模式生成器

用于C律动运动的中央模式生成器 一、说明 本篇讲述关于生物模型的神经网络, 中央模式生成器的简单神经网络的一个例子是半中心振荡器;该系统分成两个组成,信号层和物理层。新概念仓本模型,以及龙格库塔法的方程解法,总…

6.跑一下Triton官方教程

1.模型部署 首先拉取官方示例代码 git clone --recursive https://github.com/triton-inference-server/tutorials.git cd tutorials/Conceptual_Guide/Part_1-model_deployment 1.下载文本检测模型 wget https://www.dropbox.com/s/r2ingd0l3zt8hxs/frozen_east_text_dete…

裸露土堆识别算法

裸露土堆识别算法首先利用图像处理技术,提取出图像中的土堆区域。裸露土堆识别算法首通过计算土堆中被绿色防尘网覆盖的比例,判断土堆是否裸露。若超过40%的土堆没有被绿色防尘网覆盖,则视为裸露土堆。当我们谈起计算机视觉时,首先…

React与Vue:两大前端巨头的深度对决

引言 在当今的前端开发领域,React和Vue无疑是两大巨头。它们各自有着独特的历史和哲学,但都为开发者提供了强大的工具来构建高效、响应式的web应用。这篇文章将深入探讨这两个框架的差异,帮助开发者更好地理解它们的优势和劣势。 React与Vu…

Python“牵手”唯品会商品列表数据,关键词搜索唯品会API接口数据,唯品会API接口申请指南

唯品会平台API接口是为开发电商类应用程序而设计的一套完整的、跨浏览器、跨平台的接口规范,唯品会API接口是指通过编程的方式,让开发者能够通过HTTP协议直接访问唯品会平台的数据,包括商品信息、店铺信息、物流信息等,从而实现唯…

2023最新任务悬赏平台源码uniapp+Thinkphp新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机

新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机制 后端是:thinkphpFastAdmin 前端是:uniapp 1.优化首页推荐店铺模块如有则会显示此模块没有则隐藏。 2修复首页公告,更改首页公告逻辑。(后台添加有公…

大规模 IoT 边缘容器集群管理的几种架构-6-个人体验及推荐

前文回顾 大规模 IoT 边缘容器集群管理的几种架构-0-边缘容器及架构简介大规模 IoT 边缘容器集群管理的几种架构-1-RancherK3s大规模 IoT 边缘容器集群管理的几种架构-2-HashiCorp 解决方案 Nomad大规模 IoT 边缘容器集群管理的几种架构-3-Portainer大规模 IoT 边缘容器集群管…

(java) 进程调度

目录 进程 首先我们要了解一下什么是进程? 那如何管理进程? PCB中比较重要的属性 进程调度 为什么要进行进程调度? 状态 优先级 上下文 拓展介绍一下寄存器 记账信息 进程 首先我们要了解一下什么是进程? 简单来说…

window下jdk安装及更换jdk版本的一些问题。

目录 jdk安装jdk的选择。oracle的jdk怎么安装。openjdk怎么安装。 jdk的版本控制。更换jdk的一些问题。 jdk安装 jdk的选择。 目前有两种可选的jdk,oracle的和开源的Openjdk,这两种jdk的区别可以自行查阅,就结果而言,openjdk开源…

2023年浙大MEM提面/复试录取考生笔试成绩分布图一览

如果真要给备战浙大mem项目一个理由的话,我想本文的两张图基本算是之一吧!几乎每年的上半年时间里,浙江本省连带附近一些省市的考生对浙大mem项目的报考热情都很满,但经历过八月提面之后,部分考生可能会因为提面的结果…

在安装pyhttpx过程中:ImportError: DLL load failed: 找不到指定的模块。

错误 ImportError: DLL load failed: 找不到指定的模块。 解决方案 我先尝试着去重新安装了下brotli 但是并没有成功 最终解决 安装 vc_redist.x64.exe 下载地址:https://learn.microsoft.com/en-GB/cpp/windows/latest-supported-vc-redist?viewmsvc-170 如果…

什么是 TF-IDF 算法?

简单来说,向量空间模型就是希望把查询关键字和文档都表达成向量,然后利用向量之间的运算来进一步表达向量间的关系。比如,一个比较常用的运算就是计算查询关键字所对应的向量和文档所对应的向量之间的 “相关度”。 简单解释TF-IDF TF &…

【Java基础增强】Stream流

1.Stream流 1.1体验Stream流【理解】 案例需求 按照下面的要求完成集合的创建和遍历 创建一个集合,存储多个字符串元素 把集合中所有以"张"开头的元素存储到一个新的集合 把"张"开头的集合中的长度为3的元素存储到一个新的集合 遍历上一步得…

打架斗殴行为识别算法

打架斗殴行为识别算法通过yolov7网络模型深度学习算法,打架斗殴行为识别算法对提取到的信息进行分析和比对,判断是否存在打架斗殴行为。打架斗殴行为识别算法一旦打架斗殴行为识别算法识别到打架斗殴行为,系统会立即生成预警信息,…

java八股文面试[多线程]——为什么不能用Excuters创建线程池

DelayedWorkQueue 也是一个无界队列。 如何根据实际需要,定制自己的线程池: 知识点: 【并发与线程】为什么大厂规定不能使用Executors去创建线程池?_哔哩哔哩_bilibili 【并发与线程】如何根据实际需要,定制自己的线…

uniapp iOS打包证书申请流程——window

uniapp 如何在 window 创建 iOS打包证书? 文章目录 uniapp 如何在 window 创建 iOS打包证书?下载 Appuploader安装创建证书相关入口创建证书创建描述文件运行调试账号过期提示 前提: 下载 Appuploader工具 Appuploader辅助工具,解…

<七> objectARX开发:创建自定义实体

1、介绍 在某些情况下,CAD中的实体对象无法满足需求,我们需要针对实际情况来设计并绘制自定义的实体,下面就用一个简单的例子来介绍一下自定义实体绘制。 实体形状:包括实体夹点和文字夹点拖动实现。 2、效果 3、创建自定义实体的步骤 新建一个从AcDbEntity继承的类,如C…

从传统软件开发到云原生转型:大数据和AI如何引领软件开发的新趋势

文章目录 **1. 数据驱动的开发:****2. 智能化的用户体验:****3. 云原生的可扩展性:****4. 实时处理和决策:****5. 自动化和效率提升:****6. 持续集成和交付的加速:****7. 数据安全和隐私:****8.…

linux和python轻松实现短信和邮件的秒发!四大实战脚本大揭秘!

引言 作为Linux和Python技术持续学习者,我们不仅要了解基础知识,还需要实际运用技术解决问题。本文将分享四个实用的Python和Linux运维脚本,帮助我们轻松实现短信和邮件的秒发功能。 要求环境 一台运行Linux操作系统的服务器(可以…