IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> predict_BPsjwl -> 正文阅读

[人工智能]predict_BPsjwl

BP神经网络预测

1.输入向量与输出向量
我们将前14组国内男子跳高运动员各项素质指标作为输入,即(30m行进跑,立定三级跳远,助跑摸高,助跑4-6步跳高,负重深蹲杠铃,杠铃半蹲系数,100m,抓举),将对应的跳高成绩作为输出。
注意:每一列是一组输入训练集,行数代表输入层神经元个数,列数输入训练集组数

x_train=[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];
y_train=[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];

2.训练集归一化

mapminmax为数据归一化函数,默认归一化到[-1,1]之间。

默认归一化到[-1,1]之间,x_train_regular就是归一化之后的数据,x_train_maxmin用来作下一次同样的归一化。

默认归一化到[-1,1]之间,y_train_regular就是归一化之后的数据,y_train_maxmin用来作下一次同样的归一化。

%%训练集归一化
[x_train_regular,x_train_maxmin] = mapminmax(x_train);  %默认归一化到[-1,1]之间,x_train_regular就是归一化之后的数据,x_train_maxmin用来作下一次同样的归一化。
[y_train_regular,y_train_maxmin] = mapminmax(y_train);  %默认归一化到[-1,1]之间,y_train_regular就是归一化之后的数据,y_train_maxmin用来作下一次同样的归一化。

3.创建网络

本文选择S型正切函数tansig作为隐层神经元的激励函数。而由于网络的输出归一到[ -1, 1]范围内, 因此预测模型选取S 型对数函数logsig作为输出层神经元的激励函数。

将训练样本数据归一化后输入网络, 设定网络隐层和输出层激励函数分别为tansig和logsig函数, 网络训练函数为traingdx, 网络性能函数为mse,隐层神经元数初设为6。设定网络参数。

8个输入,一个输出,第一层隐藏网络6个节点,第二层隐藏网络1个节点。

%%创建网络
net=newff(x_train_regular,y_train_regular,6,{'tansig','tansig','purelin'},'trainlm');

?

4.设置训练次数与误差

络迭代次数epochs为5000次, 期望误差goal为0.00000001, 学习速率lr为0. 01。

%设置训练次数
net.trainParam.epochs = 5000;
%设置收敛误差
net.trainParam.goal=0.0000001;

5.训练网络

%训练网络
[net,tr]=train(net,x_train_regular,y_train_regular);
%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.

6.将已经训练好的网络进行预测

%%以上网络已经训练完成,下面之间输入得到输出。
%输入数据
%将第十五列的已知数据,作为输入,预测第十五列的缺失数据
x_test=[3.0;9.3;3.3;2.05;100;2.8;11.2;50];
%将输入数据归一化
x_test_regular = mapminmax('apply',x_test,x_train_maxmin);
%直接将数据放入到网络输出我们要预测的数据
y_test_regular=sim(net,x_test_regular);
%将得到的预测数据反归一化得到预测数据
y_test_regular=mapminmax('reverse',y_test_regular,y_train_maxmin);
y_test_regular

运行结果是预测的是

y_test_regular =

? ? 2.2219

该网络迭代了2次就已经达到我们给出的误差范围内了。

?从下图可以看出该预测的效果其实并不是特别好。

?

小结:该神经网络进行预测,其实类似于曲线的拟合,优点在于可以很快的得到我们所要的预测值,不过缺点也非常的明显,就是需要不断的进行训练才能得到理想的网络,而且大多数时候拟合预测的结果并不是十分的理想。一般建议先用matlab或SPSS先进行预测,如果都不理想再尝试此方法。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:01:52  更:2021-08-14 14:03:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:36:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码