基于侏儒猫鼬算法优化的BP神经网络(预测应用) - 附代码

news2025/1/12 23:17:47

基于侏儒猫鼬算法优化的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/127455123

侏儒猫鼬算法的参数设置为:

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

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

相关文章

【经验分享】Markdown中如何显示空格和回车

Markdown中如何显示空格和回车 空格 利用html中的空格实体引用&#xff1a; eg&#xff1a; 这是一些 额外的空格。回车&#xff1a; 方法一&#xff1a;在你想要回车的地方连续按两次回车键 方法二&#xff1a;使用<br>标签 eg&#xff1a; 我想显示<br>…

【vue】盘点Vue2和Vue3的10种组件通信方式:

文章目录 一、介绍:二、props【1】选项式API【2】组合式Api【3】setup语法糖 三、emit【1】选项式API【2】组合式Api【3】setup语法糖 四、attrs和listeners【1】选项式API【2】组合式API【3】setup语法糖 五、provide/inject【1】选项式API【2】组合式API【3】setup语法糖 六、…

Linux根目录的文件系统是如何被挂载的

第一步是先在内存中创建rootfs.这时rootfs只有 “/” 目录。 https://mp.weixin.qq.com/s?__bizMzUxNDUwOTc0Nw&mid2247484182&idx1&snc807877da1181fa97175c1a6602ad763&chksmf9459dcace3214dcee56f68ac03b8b377f4febf5fd8ca28e2ff9a403ac0940f91c6617338625…

1.(python数模)单函数读取常用文件

Python单函数读取常用文件 代码如下&#xff1a; import pandas as pd# 读取数据文件 def readDataFile(readPath): # readPath: 数据文件的地址和文件名try:if (readPath[-4:] ".csv"):dfFile pd.read_csv(readPath, header0, sep",") # 间隔符为逗…

企业MR虚拟直播有哪些特色,值得一试

阿酷TONY / 长沙 / 2023-9 很多网友问我&#xff0c;到底什么是MR直播&#xff0c;好吧&#xff0c;上视频&#xff0c;快&#xff0c;挺急的&#xff1a; 到底什么是MR直播&#xff08;附上MR直播效果的视频实例&#xff09; [ 绿幕抠像 虚拟场景&#xff08;三维场景&#…

2020ICPC南京站

K K Co-prime Permutation 题意&#xff1a;给定n和k&#xff0c;让你构造n的排列&#xff0c;满足gcd(pi, i)1的个数为k。 思路&#xff1a;因为x和x-1互质&#xff0c;1和任何数互质&#xff0c;任何数和它本身不互质 当k为奇数时&#xff0c;p11&#xff0c;后面k-1个数…

进程的状态及其之间的转换

进程的状态及其之间的转换是操作系统管理进程的核心机制之一。不同的操作系统或教材可能对进程的状态有略微的差异&#xff0c;但基本上可以总结为以下几种状态&#xff1a; 新建&#xff08;New&#xff09;&#xff1a;进程正在被创建。就绪&#xff08;Ready&#xff09;&a…

手写Openfeign实现原理——极简版

文章目录 前言Openfeign实现思路前期准备基本依赖项 开始实现自定义注解自定义代理类定义创建代理对象的工厂InstantiationAwareBeanPostProcessor实现bean的注入OpenInstantiationAwareBeanPostProcessor 自定义 feign接口启动类小结 踩坑记录ImportComponent和Configuration区…

Standford Compiler Course Assignment 1

第一个作业是写一个词法分析的rule&#xff0c;词法分析对我帮助不大&#xff0c;主要是理解使用就可以&#xff0c;就大部分参照github上的实现了。 实验需要注意的内容&#xff1a; 1&#xff09;cool/include/PA2/cool-parse.h 里面定义了需要处理的关键字 /* Tokens. */ …

基本介绍——数据挖掘

1.数据挖掘的定义 数据挖掘是采用数学的、统计的、人工智能和神经网络等领域的科学方法&#xff0c;如记忆推理、聚类分析、关联分析、决策树、神经网络、基因算法等技术&#xff0c;从大量数据中挖掘出隐含的、先前未知的、对决策有潜在价值的关系、模式和趋势&#xff0c;并…

新款奥迪 A7L 正式上市,媒介盒子多家媒体助阵

新款奥迪 A7L 正式上市&#xff0c;媒介盒子多家媒体助阵&#xff01; 哈喽,大家好,今天媒介盒子小编又来跟大家分享媒体推广的干货知识了,本篇分享的主要内容是:新车上市,上汽奥迪A7L的营销策略。 新款奥迪 A7L 正式上市&#xff0c;新车推出 11 款车型&#xff0c;售价为 4…

探索云原生容器编排技术:如Kubernetes如何为大数据处理和AI模型的自动化部署带来便利

文章目录 1. 弹性伸缩2. 容器化3. 自动化部署4. 存储管理5. 服务发现和负载均衡6. 监控和日志记录7. 多云支持8. 多版本管理9. 安全性和隔离10. 社区支持和生态系统 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1f44d;点…

部署java程序的服务器cpu过高如何排查和解决

1.top命令找到占用CPU高的Java进程PID 2.根据进程ID找到占用CPU高的线程 ps -mp pid -o THREAD,tid | sort -r ps -mp 124682 -o THREAD,tid | sort -r 3.将指定的线程ID输出为16进制格式 printf “%x\n” tid printf "%x\n" 6384 18f0 4.jstack pid |…

C++中基类和派生类的析构函数

和构造函数类似&#xff0c;析构函数也不能被继承。与构造函数不同的是&#xff0c;在派生类的析构函数中不用显式地调用基类的析构函数&#xff0c;因为每个类只有一个析构函数&#xff0c;编译器知道如何选择&#xff0c;无需程序员干涉。 另外析构函数的执行顺序和构造函数的…

分类算法系列④:朴素贝叶斯算法

目录 1、贝叶斯算法 2、朴素贝叶斯算法 3、先验概率和后验概率 4、⭐机器学习中的贝叶斯公式 5、文章分类中的贝叶斯 6、拉普拉斯平滑系数 6.1、介绍 6.2、公式 7、API 8、示例 8.1、分析 8.2、代码 8.3、⭐预测流程分析 &#x1f343;作者介绍&#xff1a;准大三…

Modelsim查看断言

断言编译modelsim 在modelsim中开启断言编译和显示功能&#xff1a; 【编译verilog代码时按照system verilog进行编译】 vlog -sv abc.v 或者使用通配符编译所有的.v或者.sv文件 &#xff08; vlog -sv *.sv *.v&#xff09; 【仿真命令加一个-assertdebug】 vsim -a…

华为云服务

【计算】 【存储】 对象存储服务 OBS 对象存储服务&#xff08;Object Storage Service&#xff0c;OBS&#xff09;是一个基于对象的海量存储服务&#xff0c;为客户提供海量、安全、高可靠、低成本的数据存储能力。 OBS系统和单个桶都没有总数据容量和对象/文件数量的限制…

视频文件损坏无法播放如何修复?导致视频文件损坏的原因

如果我们遇到因视频文件损坏而无法正常播放&#xff0c;我们该怎么办&#xff1f;这种情况通常意味着视频文件已经损坏。我们不能访问、编辑或使用它们。那么应该用什么正确的工具和修复程序来修复视频呢&#xff1f; 视频文件损坏的原因 了解视频损坏如何修复之前&#xff0c…

【板栗糖GIS】——360浏览器如何安装微信读书插件

目录 1. 下载插件 ​2. 解压edge插件 3. 点击360浏览器的插件管理 4. 加载已解压的扩展程序 前情提示&#xff1a;不要从任务栏打开360浏览器&#xff0c;要从桌面快捷键打开 1. 下载插件 截止到2023年9月1日&#xff0c;github提供的为0.03版本&#xff0c;下载后会得到…

AP51656 LED车灯电源驱动IC 兼容替代PT4115 PT4205 PWM和线性调光

产品描述 AP51656是一款连续电感电流导通模式的降压恒流源 用于驱动一颗或多颗串联LED 输入电压范围从 5V 到 60V&#xff0c;输出电流 可达 1.5A 。根据不同的输入电压和 外部器件&#xff0c; 可以驱动高达数十瓦的 LED。 内置功率开关&#xff0c;采用高端电流采样设置 …