基于材料生成算法优化的BP神经网络(预测应用) - 附代码

news2024/11/18 22:53:19

基于材料生成算法优化的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/124221652

材料生成算法的参数设置为:

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

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

相关文章

【Tkinter系列09/15】小部件(Scrollbar

22. 小部件Scrollbar 许多小部件(如列表框和画布)可以 就像将窗口滑动到更大的虚拟区域一样。你 可以将滚动条小部件连接到它们,为用户提供 相对于内容滑动视图的方式。 下面是带有关联条目小部件的屏幕截图 滚动条小部件: 滚动条…

CSS学习笔记03

CSS笔记03 盒子模型 什么是盒子模型 概念: CSS 盒子模型就是在网页设计中经常用到的一种思维模型,是 CSS 布局的基石,主要规定了元素是如何显示的以及元素间的相互关系。定义所有元素都可以有像盒子一样的平面空间和外形。包含内容区、内边…

汉服网上购物商城穿搭交流的微信小程序的设计与实现

社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非…

Redis项目实战——优惠券秒杀

目录 Redis自增功能解决全局唯一IDRedis实现优惠券秒杀的主要思路实现过程中出现的问题及解决方法超卖问题方案1 悲观锁方案2 乐观锁 一人一单问题分布式锁如何用Redis实现分布式锁? Redis优化秒杀消息队列实现异步秒杀List发布订阅模式Stream Redis自增功能解决全局…

通过RISC-V预认证解决方案应对功能安全挑战

安全之安全(security)博客目录导读 2023 RISC-V中国峰会 安全相关议题汇总 说明:本文参考RISC-V 2023中国峰会如下议题,版权归原作者所有。

Nuxt3_2_SEO and Meta+Transitions

1. SEO and Meta 使用强大的head配置、可组合组件和组件来改善nuxt应用的SEO。 nuxt开箱即用,提供了相同的默认值,如果需要,你可以覆盖这些默认值。 charset: utf-8viewport: widthdevice-width, initial-scale1 可以在nuxt.config.ts中进…

Unity3D 连接 SQLite 作为数据库基础功能【详细图文教程】

一、简单介绍一下SQLite的优势(来自ChatGPT) 轻量级: SQLite是一个嵌入式数据库引擎,它的库文件非常小巧,没有独立的服务器进程,适用于嵌入到其他应用程序中,对于轻量级的项目或移动应用程序非常适用。零配…

云原生Kubernetes:K8S概述

目录 一、理论 1.云原生 2.K8S 3.k8s集群架构与组件 二、总结 一、理论 1.云原生 (1)概念 云原生是一种基于容器、微服务和自动化运维的软件开发和部署方法。它可以使应用程序更加高效、可靠和可扩展,适用于各种不同的云平台。 如果…

执行公开网数据采集-技术人员撤退

首先逼逼,此贴仅为秀肌肉,技术人员想学习的话可以绕道了 打开控制台,看cookie,ST,某数 第一个请求412,看VM 然后就是替换js,hook,之类的,扣代码流程,此处省…

C语言:函数原型声明时的参数列表

相关阅读 C语言专栏https://blog.csdn.net/weixin_45791458/category_12423166.html 在C语言中,使用函数前,要么对函数进行了定义,要么对函数原型进行了声明,ANSI C形式的函数原型声明形式如下: void show(char ch, …

nvm use node版本无效问题

没想到使用nvm还折腾一上午,安装nvm 1.1之后,发现 nvm install 16.20.2 nvm use 16.20.2 之后,node -v 根本不生效,找了很久发现少设置了一些变量,可以参考如下前人经验:nvm use 命令失效 - 简书 (jians…

成都优优聚优质美团服务机构!

成都优优聚是一家专业的美团代运营服务机构,其优秀的团队和丰富的经验使其成为了众多商家的首选合作伙伴。下面就让我们一起来了解一下成都优优聚做美团代运营的优势和特点。 首先,成都优优聚拥有一支专业高效的运营团队。团队成员均具备丰富的美团运营经…

2022年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

第1题:数字变换 给定一个包含 5 个数字(0-9)的字符串, 例如 “02943”, 请将“12345”变换到它。 你可以采取 3 种操作进行变换 (1)交换相邻的两个数字 (2)将一个数字加 …

ssm学生公寓管理系统的设计与实现

ssm学生公寓管理系统的设计与实现106 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归…

d3dcompiler_43.dll丢失怎么修复,分享几种修复d3dcompiler_43.dll的方法

不少人可能看到d3dcompiler_43.dll这个文件会感觉到陌生,是的,因为这个文件一般来说是很少丢失的,但是还是会出现d3dcompiler_43.dll丢失的情况的,今天主要是来给大家详细的说说d3dcompiler_43.dll丢失怎么修复的相关方法。 一.分…

Python Flask Web开发二:数据库创建和使用

前言 数据库在 Web 开发中起着至关重要的作用。它不仅提供了数据的持久化存储和管理功能,还支持数据的关联和连接,保证数据的一致性和安全性。通过合理地设计和使用数据库,开发人员可以构建强大、可靠的 Web 应用程序,满足用户的…

SpringBoot 2.7 集成 Netty 4 实现 UDP 通讯

文章目录 1 摘要2 核心 Maven 依赖3 核心代码3.1 服务端事务处理器(DemoUdpNettyServerHandler)3.2 服务端连接类(InitUdpNettyServer)3.3 客户端事务处理类(DemoUdpNettyClientHandler)3.4 客户端连接类(DemoUdpNettyClient) 4 高并发性能配置5 推荐参考资料6 Github 源码 1 摘…

ROLL.DBF回滚表空间增长问题(达梦数据库)

达梦数据库 - 回滚表空间增长问题 环境介绍1 环境搭建1.1 创建表与测试数据1.2 查询待提交的数据量1.3 查询回滚表空间使用情况1.3.1 插入数据前查询结果1.3.2 插入数据后未提交事务查询结果1.3.3 插入数据后提交事务查询结果 环境介绍 达梦数据库ROLL.DBF 在某些业务系统厂商…

防破解暗桩思路:检查菜单是否被非法修改过源码

本篇文章属于《518抽奖软件开发日志》系列文章的一部分。 我在开发《518抽奖软件》(www.518cj.net)的时候,为了防止被破解,需用添加一些暗桩,在合适的时机检查软件是否被非法修改过,如果被非法修改就做出提…

【位运算】位运算常用技巧总结

目录 前言 一.常见的小问题 1.给定一个数n,确定它的二进制表示中的第x位是0还是1 2.给定一个数n,将它的二进制表示中的第x位修改成1 3.给定一个数n,将它的二进制表示中的第x位修改成0 4.给定一个数n,提取它的二进制表示中最右侧的1&…