基于龙格-库塔算法优化的BP神经网络(预测应用) - 附代码

news2024/11/19 19:45:30

基于龙格-库塔算法优化的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/122254286

龙格-库塔算法的参数设置为:

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

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

相关文章

pandas计算连续行为天数的几种思路

我需要统计数据中缺失字段的日期跨度,并统计缺失数据条数。可以用pandas分组聚合计数。 import pandas as pddata pd.read_excel("缺失字段.xlsx") t data.loc[data["当日最高温"].isnull(), "dates"] groupids pd.to_datetime(…

阿里云 MSE 助力开迈斯实现业务高增长背后带来的服务挑战

开迈斯新能源科技有限公司于 2019 年 5 月 16 日成立,目前合资股东分别为大众汽车(中国)投资有限公司、中国第一汽车股份有限公司、一汽-大众汽车有限公司[增资扩股将在取得适当监督(包括反垄断)审批后完成]、万帮数字…

matlab使用教程(27)—微分代数方程(DAE)求解

1.什么是微分代数方程? 微分代数方程是一类微分方程,其中一个或多个因变量导数未出现在方程中。方程中出现的未包含其导数的变量称为代数变量,代数变量的存在意味着您不能将这些方程记为显式形式 y ′ f t , y 。相反,您可以…

详细讲解移植u-boot.2022.10版本移植到开发板基本方法

大家好,我是ST​。​ 今天给大家讲一讲如何将u-boot.2022.10版本移植到imx6ull开发板上。 环境 选项内容编译主机UbuntuLTS 18.04目标板ATK I.MX6ULL(512MB DDR3 8GB EMMC)u-boot版本2022.10交叉编译工具链gcc-linaro-7.5.0-2019.12-i686…

springBoot打印精美logo

文章目录 🐒个人主页🏅JavaEE系列专栏📖前言:🎀文本logo 🐒个人主页 🏅JavaEE系列专栏 📖前言: 本篇博客主要以提供springBoot打印精美logo 🎀文本logo ??…

克努森数与连续介质

1 克努森数的概念 克努森数(Knudsen number)定义为分子平均自由程和空间尺度的比例: 克努森数的取值决定了物理问题的类型及其适用的方程。 各方程对应的克努森数适用范围(图源:researchgate.net) 2 大克努…

嵌入式学习笔记(4)S5PV210的启动过程详解

1.9.1内存 SRAM 特点是容量小,价格高,优点是不需要软件初始化直接上电就能用 DRAM 特点是容量大,价格低,缺点是上电后不能直接使用,需要软件初始化 1.9.2外存 NorFlash:特点是容量小,价格高&am…

为什么劝年轻人不要频繁跳槽?

这是一个让很多年轻人犯愁的问题,尤其是在现如今竞争激烈的职场环境中。许多年轻人因为各种原因选择频繁跳槽,但是在我看来,这并不是一个明智的选择。下面就让我们来看看为什么劝年轻人不要频繁跳槽。 1. 错失成长机会 每一个工作都有其独特…

记一次批量更新mysql数据过程

一、前言 需求背景:mysql数据库中有一个表的数据(600多万)有一个字段的内容需要解密再通过另外一种加密方式进行加密再回存。通过java程序计算完成更新。 二、方案一 一条条计算更新。这里是将手机号解密,在通过另外一种方式回…

港联证券:哪里可以买卖股票?

股票作为一种出资品,已经成为了出资者不可忽视的重要东西。然而,关于新手出资者来说,他们往往不知道哪里能够生意股票。本文将从多个视点剖析,介绍股票市场的基本知识、股票生意的方法以及购买股票需求留意的事项。 一、股票市场的…

(三)行为模式:6、备忘录模式(Memento Pattern)(C++示例)

目录 1、备忘录模式(Memento Pattern)含义 2、备忘录模式的UML图学习 3、备忘录模式的应用场景 4、备忘录模式的优缺点 (1)优点: (2)缺点 5、C实现备忘录模式的实例 1、备忘录模式&#…

实战教程:如何自己搭建一个小程序商城?

如今,随着移动互联网的发展,电子商务已经成为人们购物的主要方式之一。而商城小程序的出现,更是方便了商家进行线上销售和推广。本文将为大家详细介绍如何搭建一个商城小程序,让你从小白变为专家。 首先,我们需要登录乔…

Linux内核源码分析 (3)调度器的实现

Linux内核源码分析 (3)调度器的实现 文章目录 Linux内核源码分析 (3)调度器的实现一、概述二、调度器数据结构1、task_struct中与调度有关的的成员2、调度器类3、就绪队列4、调度实体 三、处理优先级1、优先级的内核表示2、计算优先级3、计算负荷权重 四、核心调度器1、周期性调…

工作的记录

request.getServletPath(),request.getContextPath()的区别 request.getSession().getServletContext().getRealPath("/"); request.getServletPath(),request.getContextPath()的区别_中森明菜的博客-CSDN博客 spring中 getBeansOfType 灵…

可拖动表格

支持行拖动&#xff0c;列拖动 插件&#xff1a;sortablejs UI: elementUI <template><div><hr style"margin: 30px 0;"><div><!-- 数据里面要有主键id&#xff0c; 否则拖拽异常 --><h2 style"margin-bottom: 30px&qu…

【大山里的女孩】

我生来就是高山而非溪流&#xff0c;我欲于群峰之巅仰视平庸的沟壑。 这是她们的呐喊&#xff01; “我不知道我还有多少时间&#xff0c;现在还能动&#xff0c;我想做点事。” 这是张桂梅平凡的宣言&#xff0c;也是她一生都在践行的梦想。 17岁的她&#xff0c;为了祖国建…

Python-matplotlib画图时标题中的指数表示

1.示例 2.核心代码 # 修改横轴的刻度 # 生成刻度的位置和标签 total_steps 1000000 # 总共100万步 num_segments 10 # 分成10段 segment_length total_steps // num_segments # 每段的步数# 生成刻度的位置 custom_ticks np.arange(0, total_steps 1, segment_length…

基于孪生神经网络Siamese开发构建牛脸识别分析系统

关于牛脸识别相关的项目开发实践&#xff0c;在我前面的一篇文章中已经有非常详细的实践记录了&#xff0c;感兴趣的话可以自行移步阅读即可&#xff1a;《助力养殖行业数字化转型&#xff0c;基于深度学习模型开发构建牛脸识别系统》 在我们以往接触到的项目或者是业务场景中…

L1-044 稳赢(Python实现) 测试点全过

题目 大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个稳赢不输的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方输得太惨&#xff0c;你需要每隔K次就…

小红书运营 变现方法总结

大家好&#xff0c;我是网媒智星&#xff0c;今天跟大家分享一下小红书如何变现的方法。介绍四个赛道和玩法给大家参考。 想在小红书成为博主的同学们要牢记一句话&#xff1a;赛道的选择比流量更重要。方向错误&#xff0c;再怎么努力也是徒劳。小红书是近几年最值得投资的平台…