数据预测之BP神经网络具体应用以及matlab代码(转)

2023-11-07

1.具体应用实例。根据表2,预测序号15的跳高成绩。

表2 国内男子跳高运动员各项素质指标

序号

跳高成绩()

30行进跑(s)

立定三级跳远()

助跑摸高()

助跑4—6步跳高()

负重深蹲杠铃()

杠铃半蹲系数

100

(s)

抓举

()

     1

2.24

3.2

9.6

3.45

2.15

140

2.8

11.0

50

2

2.33

3.2

10.3

3.75

2.2

120

3.4

10.9

70

3

2.24

3.0

9.0

3.5

2.2

140

3.5

11.4

50

4

2.32

3.2

10.3

3.65

2.2

150

2.8

10.8

80

5

2.2

3.2

10.1

3.5

2

80

1.5

11.3

50

6

2.27

3.4

10.0

3.4

2.15

130

3.2

11.5

60

7

2.2

3.2

9.6

3.55

2.1

130

3.5

11.8

65

8

2.26

3.0

9.0

3.5

2.1

100

1.8

11.3

40

9

2.2

3.2

9.6

3.55

2.1

130

3.5

11.8

65

10

2.24

3.2

9.2

3.5

2.1

140

2.5

11.0

50

11

2.24

3.2

9.5

3.4

2.15

115

2.8

11.9

50

12

2.2

3.9

9.0

3.1

2.0

80

2.2

13.0

50

13

2.2

3.1

9.5

3.6

2.1

90

2.7

11.1

70

14

2.35

3.2

9.7

3.45

2.15

130

4.6

10.85

70

15

 

3.0

9.3

3.3

2.05

100

2.8

11.2

50

 

4.4 (序号15)跳高成绩预测

4.4.1 数据整理

1)我们将前14组国内男子跳高运动员各项素质指标作为输入,即(30m行进跑,立定三级跳远,助跑摸高,助跑4-6步跳高,负重深蹲杠铃,杠铃半蹲系数,100m,抓举),将对应的跳高成绩作为输出。并用matlab自带的premnmx()函数将这些数据归一化处理。

数据集:注意:每一列是一组输入训练集,行数代表输入层神经元个数,列数输入训练集组数)

P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2;

9.6 10.3 9 10.3 10.1 10 9.6 9 9.6 9.2 9.5 9 9.5 9.7;

3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5 3.4 3.1 3.6 3.45;

2.15 2.2 2.2 2.2 2 2.15 2.14 2.1 2.1 2.1 2.15 2 2.1 2.15;

140 120 140 150 80 130 130 100 130 140 115 80 90 130;

2.8 3.4 3.5 2.8 1.5 3.2 3.5 1.8 3.5 2.5 2.8 2.2 2.7 4.6;

11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11 11.9 13 11.1 10.85;

50 70 50 80 50 60 65 40 65 50 50 50 70 70];

T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24 2.24 2.2 2.2 2.35];

4.4.2 模型建立

4.4.2.1 BP网络模型

    BP网络(Back-ProPagation Network)又称反向传播神经网络, 通过样本数据的训练,不断修正网络权值和阈值使误差函数沿负梯度方向下降,逼近期望输出。它是一种应用较为广泛的神经网络模型,多用于函数逼近、模型识别分类、数据压缩和时间序列预测等。

 

BP网络由输入层、隐层和输出层组成,隐层可以有一层或多层,图2是m×k×n的三层BP网络模型,网络选用S型传递函数, 通过反传误差函数 ( (Ti为期望输出、Oi为网络的计算输出),不断调节网络权值和阈值使误差函数E达到极小。

BP网络具有高度非线性和较强的泛化能力,但也存在收敛速度慢、迭代步数多、易于陷入局部极小和全局搜索能力差等缺点。可以先用遗传算法对“BP网络”进行优化在解析空间找出较好的搜索空间,再用BP网络在较小的搜索空间内搜索最优解。

4.4.2.2 模型求解 

4.4.2.2.1 网络结构设计

1) 输入输出层的设计

该模型由每组数据的各项素质指标作为输入,以跳高成绩作为输出,所以输入层的节点数为8,输出层的节点数为1

2) 隐层设计

有关研究表明有一个隐层的神经网络只要隐节点足够多就可以以任意精度逼近一个非线性函数。因此本文采用含有一个隐层的三层多输入单输出的BP网络建立预测模型。在网络设计过程中隐层神经元数的确定十分重要。隐层神经元个数过多会加大网络计算量并容易产生过度拟合问题神经元个数过少则会影响网络性能达不到预期效果。网络中隐层神经元的数目与实际问题的复杂程度、输入和输出层的神经元数以及对期望误差的设定有着直接的联系。目前对于隐层中神经元数目的确定并没有明确的公式只有一些经验公式神经元个数的最终确定还是需要根据经验和多次实验来确定。本文在选取隐层神经元个数的问题上参照了以下的经验公式:

其中, n为输入层神经元个数, m 为输出层神经元个数, a [ 1, 10]之间的常数。 

根据上式可以计算出神经元个数为4-13个之间,在本次实验中选择隐层神经元个数为6.

网络结构示意图如下:

 

4.4.2.2.2 激励函数的选取

BP神经网络通常采用Sigmoid可微函数和线性函数作为网络的激励函数。本文选择S型正切函数tansig作为隐层神经元的激励函数。而由于网络的输出归一到[ -1, 1]范围内因此预测模型选取型对数函数tansig作为输出层神经元的激励函数。

4.4.2.2.3 模型的实现

此次预测选用MATLAB中的神经网络工具箱进行网络的训练预测模型的具体实现步骤如下:

将训练样本数据归一化后输入网络设定网络隐层和输出层激励函数分别为tansiglogsig函数网络训练函数为traingdx, 网络性能函数为mse,隐层神经元数初设为6。设定网络参数。网络迭代次数epochs5000期望误差goal0.00000001, 学习速率lr0. 01。设定完参数后开始训练网络。

该网络通过24次重复学习达到期望误差后则完成学习。详细代码见附录。

网络训练完成后,只需要将各项素质指标输入网络即可得到预测数据。

预测结果为:2.20

 

matlab代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
?P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2;
9.6 10.3 9 10.3 10.1 10 9.6 9 9.6 9.2 9.5 9 9.5 9.7;
3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5 3.4 3.1 3.6 3.45;
2.15 2.2 2.2 2.2 2 2.15 2.14 2.1 2.1 2.1 2.15 2 2.1 2.15;
140 120 140 150 80 130 130 100 130 140 115 80 90 130;
2.8 3.4 3.5 2.8 1.5 3.2 3.5 1.8 3.5 2.5 2.8 2.2 2.7 4.6;
11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11 11.9 13 11.1 10.85;
50 70 50 80 50 60 65 40 65 50 50 50 70 70];
?T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24 2.24 2.2 2.2 2.35];
?[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);
?%创建网络
?net=newff(minmax(P),[8,6,1],{ 'tansig' , 'tansig' , 'purelin' }, 'trainlm' );
?%设置训练次数
?net.trainParam.epochs = 5000;
?%设置收敛误差
?net.trainParam.goal=0.0000001;
?%训练网络
?[net,tr]=train(net,p1,t1);
TRAINLM, Epoch 0/5000, MSE 0.533351/1e-007, Gradient 18.9079/1e-010
TRAINLM, Epoch 24/5000, MSE 8.81926e-008/1e-007, Gradient 0.0022922/1e-010
TRAINLM, Performance goal met.
 
?%输入数据
?a=[3.0;9.3;3.3;2.05;100;2.8;11.2;50];
?%将输入数据归一化
?a=premnmx(a);
?%放入到网络输出数据
?b=sim(net,a);
?%将得到的数据反归一化得到预测数据
?c=postmnmx(b,mint,maxt);
?c
 
c =
 
     2.2003

原文地址:http://www.cnblogs.com/sallybin/p/3169572.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据预测之BP神经网络具体应用以及matlab代码(转) 的相关文章

  • 【java】java ArrayList的深拷贝与浅拷贝

    一 前言 ArrayList是我们经常会用到的集合类 有时候我们为了要不改变原来的数据需要重新拷贝一个新的ArrayList 今天在使用ArrayList拷贝时遇到了一些问题 这里整理并记录一下 二 准备 首先 ArrayList的常见的拷
  • fflush(stdin)与fflush(stdout)

    参见原文 fflush stdin 与fflush stdout 码到城攻fflush stdin 与fflush stdout https www codecomeon com posts 92 1 fflush stdin 作用 清理标
  • 能挣钱的,开源 SpringBoot 商城系统,功能超全,超漂亮,真TMD香!

    往期热门文章 1 放弃 Notepad 事实证明 还有 5 款更牛逼 2 公司这套架构统一处理 try catch 这么香 求求你不要再满屏写了 再发现扣绩效 3 Spring 中经典的 9 种设计模式 收藏了4 高仿小米商城项目 爱了 5
  • 如何从shutterstock下载无水印图片

    shutterstock是一个高质量的创意图片素材库 但是下载的话需要付费 而且价格不菲 预览的话带水印 基本不能用 那还有没有办法优雅地薅帝国主义羊毛 答案肯定是有 而且很容易 首先找到你想要的图片链接 以 https www shutt
  • 51单片机串口

    51单片机串口 1 串口通信 1 1串口接线方式 RXD 数据输入引脚 数据接受 STC89系列对应P3 0口 上官一号有单独引出 TXD 数据发送引脚 数据发送 STC89系列对应P3 1口 上官一号有单独引出 接线方式 外链图片转存失败
  • 高速铁路GNSS位移变形监测预警系统解决方案

    一 方案背景 随着国内高速铁路网的不断扩展和完善以及市政工程的快速发展 两者相互交叉的工程越来越多 运营的高速铁路对线路的平顺性要求非常高 下穿工程的安全 设计和施工要求高 难度大 在高速铁路滑坡 路桥下施工时会对高速铁路运营产生诸多不利影
  • Could not load library cudnn_cnn_infer64_8.dll. Error code 193

    是 cudnn 版本问题 原来安装了 8 4 0 27 版本太高了 下载了 cudnn 11 4 windows x64 v8 2 4 15 zip 解压到 cuda 对应的文件夹 运行成功 下载地址 https developer nvi
  • centos7服务器环境搭建记录

    这个月换了工作 公司配的电脑没有到货 让玩服务器 新工作的第一份任务就是的搭建开发环境配置服务器 作为一个资深高级java开发 自然不会被这个难倒 很早以前就玩过服务器 早几天面试之前还在虚拟机上搭建了redis kafka集群 况且还有万
  • 【QT 基础教程 十】QMap类详解

    概要 本期主要讲解Qt中QMap类的常用接口 一 简介 1 头文件 include
  • MySQL 加锁处理分析

    背景 MySQL InnoDB的加锁分析 一直是一个比较困难的话题 我在工作过程中 经常会有同事咨询这方面的问题 同时 微博上也经常会收到MySQL锁相关的私信 让我帮助解决一些死锁的问题 本文 准备就MySQL InnoDB的加锁问题 展
  • 2021-03-07

    关于射线批处理 RayCastCommand 使用 前言 API 用于实际解决问题中 批处理射线较为实用 数量大间隔大的使用较为轻松对于性能提升有较高的帮助 相对于射击功能 指定抓点功能等需要减少计算 对于性能消耗对比可见效果比较大 pri
  • 使用线程锁(Lock)实现线程同步

    任务描述 本关任务 使用Lock 实现对于某一块代码的互斥访问 相关知识 上一关我们谈到了synchronized关键字 synchronized关键字主要用来同步代码 实现同步互斥访问 也就是在同一时刻只能有一个线程访问临界资源 从而解决
  • cocos creator action之jumpTo、jumpBy

    cocos creator中 jumpTo jumpBy的使用方法例子 cc Class extends cc Component properties move cc Node start this moveT moveT this mo
  • 使用faceswap进行视频换脸操作

    一 下载源码安装环境 开源csdn代码下载地址 https codechina csdn net mirrors deepfakes faceswap Github下载地址 https github com deepfakes facesw
  • 解决OCFS2的o2net_connect_expired问题

    接上次的文章 在修改 etc sysconfig o2cb的配置后 发现两机器只有一台可以自动挂载ocfs2分区 而另外一台不能自动挂载 但启动完毕后 手动挂载正常 一 详细情况两机器分别是dbsrv 1和dbsrv 2 使用交叉线做网络心
  • 一文1800字从0到1使用Python Flask实战构建Web应用

    Python Flask是一个轻量级的Web框架 它简单易用 灵活性高 适用于构建各种规模的Web应用 本文将介绍如何使用Python Flask框架来实战构建一个简单的Web应用 并展示其基本功能和特性 第一部分 搭建开发环境 在开始之前
  • 如何在DOS下以管理员身份执行命令?

    原创 普通User的DOS窗口 以管理员身份运行的DOS窗口 转换 Windows10系统下 13 11 55 2018 10 18 转载于 https www cnblogs com chiweiming p 9809904 html
  • TP5 查询一个字段不等于多个值where的用法

    组装where条件 wheres 后台人员类型 people input people switch people case 业务员 wheres order type neq 等待老大审核 break case 经历 wheres ord
  • 【elasticSearch系】3.完整搭建详尽版elk

    话不多说 我们先看下经典的elk 是由哪些组件搭建组合起来的 elasticSearch和kibana搭建 可以查看之前我搭建elasticsearch和kibana 的这篇文章 logstash搭建 为了和之前我搭建elasticsear

随机推荐

  • 基于SSM+SpringBoot+Thymeleaf+LayUI的高校大学生成绩分析管理系统(附论文)

    项目运行截图 基于 B S 架构的高校成绩分析与管理系统的设计与实现 第一章 绪论 学生的不断增多 学生的考试管理也增大了教师的负担 现社会尚存的系统功能简单 且缺少分析功能导致学生不能及时了解学生成绩趋势 针对相同课程不同专业成绩情况 系
  • oracle 释放过度使用的Undo表空间

    故障现象 UNDO表空间越来越大 长此下去最终数据因为磁盘空间不足而崩溃 问题分析 产生问题的原因主要以下两点 1 有较大的事务量让Oracle Undo自动扩展 产生过度占用磁盘空间的情况 2 有较大事务没有收缩或者没有提交所导制 说 明
  • linux运行directory,我在linux里用命令出来is a directory是怎么回事

    使用的命令应该是针对文件的命令 在使用过程命令中把参数指定成了目录 所以linux报错说 这是一个目录 可以理解为linux在提醒 这是一个目录不是文件 这个命令应该是针对文件的 扩展资料 参数 c 建立一个压缩文件的参数指令 create
  • 【程序设计训练】4-12 疫情期间

    问题描述 正值新冠疫情期间 阿迪没法返回学校学习 他希望通过参加一些比赛来提高一下编程技能 同时做做运动 他收集了接下来的 n 天里每一天的信息 包括健身房是否开放 或者互联网上是否有程序设计竞赛 第 i 天可以有以下四种情况之一 该天健身
  • MySQL最全整理!java与或非逻辑符号

    内存模型 内存模型定义为什么要有内存模型为什么要重排序 重排序在什么时候排如何约束重排序规则happens before 什么是顺序一致性 CAS 实现的原理 是阻塞还是非阻塞方式 什么时候用 使用时需要考虑的问题 处理器和 Java 分别
  • jmeter与jenkins集成

    需求 通过jenkins来运行jmeter接口测试用例文件 平台 win10 原理 任何可以通过命令行执行的 都可以集成至jenkins 在jenkins构建中 执行winodws命令 调用jmeter 并执行jmx文件 最后生成测试报告
  • 可控硅

    可控硅在控制极加上合适的触发电流 可控硅就能够从断开状态变成为导通状态 这时 我们取消控制极的触发电流 但可控硅仍然能维持导通状态 如果流过可控硅的电流开始变小 当小于维持导通的能力时 可控硅才关断 直到下次触发时才会导通
  • 人工智能 Linux(三)

    人工智能 Linux 三 一 指令 1 df指令 作用 查看磁盘空间 语法 df h h 以可读性较高的形式展示大小 2 free指令 作用 查看内存使用情况 语法 free m m 表示以mb为单位查看 3 head指令 作用 查看一个文
  • SpringBoot启动时打印的时间是如何计算的?

    一 现象 我们都知道SpringBoot启动时会打印时间 那么内部是如何计算的呢 二 本质 获取时间间隔 计算秒数 Started springBoot in 20 763 seconds 记录开始的毫秒数 计算毫秒数 Root WebAp
  • 【模板】重载运算符

    重载string 以日期类CDate为例 class CDate public int y m d CDate int y int m int d y y m m d d operator string string s stringstr
  • CCAnimation类 参考

    http www cocos2dchina com documentation interface c c animation html
  • UPLOAD labs 第三关

    看源码 is upload false msg null if isset POST submit if file exists UPLOAD PATH deny ext array asp aspx php jsp file name t
  • QT中的this指针什么意思?namespace又是什么意思?

    初学者对于qt中的this指针会摸不着头脑 下面我谈谈自己的理解 结论 this指针 指的就是qt designer里面ui界面 也就是xxx ui文件 举个例子 现在我有三个文件 分别是server h头文件 server cpp源文件
  • Spring 根据Bean注册的名称获取Bean对象

    根据Bean注册的名称获取Bean对象 一个通过Bean名称获取Bean的对象实例的一个类 现在复习下Spring 再此处记录下 package net shopxx util import org springframework bean
  • 二叉树层次遍历如何判断当前结点是哪层的?

    二叉树层次遍历就是按每层从左到右 一般是从左到右 若想从右到左也很简单 的次序遍历结点 下面是一个简单的例子 这棵二叉树层次遍历的结果是 1 2 3 4 5 实现层次遍历一般是用队列 思路还是比较简单 1 首先把根结点入队 2 若队列不为空
  • mac 完全卸载python

    这里主要是卸载pkg安装的python 第一步 删除框架 sudo rm rf Library Frameworks Python framework Versions 3 11 第二步 删除应用目录 sudo rm rf Applicat
  • 解决Module not found: Error: ‘element-plus/lib/theme-chalk/index.css‘,通过下载插件,使用的是vue ui项目仪表盘

    1 首先在package json中查看vue版本和element ui版本 2 找到element ui官网https element eleme cn zh CN component quickstart 点击element ui 3
  • STM32定时器-基本定时器

    目录 定时器分类 基本定时器功能框图讲解 基本定时器功能 时钟源 计数器时钟 计数器 自动重装载寄存器 定时时间的计算 定时器初始化结构体详解 实验 定时器分类 STM32F1 系列中 除了互联型的产品 共有 8 个定时器 分为基本定时器
  • 初识Electron开发桌面应用

    Electron是什么 Electron 基于 Chromium 和 Node js 让你可以使用 HTML CSS 和 JavaScript 构建跨平台 mac window linux 桌面应用 Electron开发环境的搭建 首先安装
  • 数据预测之BP神经网络具体应用以及matlab代码(转)

    1 具体应用实例 根据表2 预测序号15的跳高成绩 表2 国内男子跳高运动员各项素质指标 序号 跳高成绩 30行进跑 s 立定三级跳远 助跑摸高 助跑4 6步跳高 负重深蹲杠铃 杠铃半蹲系数 100 s 抓举 1 2 24 3 2 9 6