R语言BP神经网络实例
来源:互联网 发布:年均增长率简便算法 编辑:程序博客网 时间:2024/05/18 03:04
某实验所测数据如下,根据实验测得数据使用BP神经网络的方法预测第18,19,20个数据的y值。
1
2
3
4
5
6
7
8
9
x1
-0.12
0.53
-0.63
-0.11
0.42
-0.45
0.31
-0.76
0.92
x2
-0.24
0.59
-0.02
0.29
0.51
0.36
-0.67
0.00
-0.32
y
0.13
1.26
0.42
0.03
0.86
0.01
0.13
0.59
0.36
10
11
12
13
14
15
16
17
18
19
20
0.17
0.50
0.01
0.78
0.09
-0.70
0.68
0.63
0.86
-0.61
0.23
-0.55
-0.49
0.40
0.92
-0.72
-0.48
-0.49
-0.51
-0.30
-0.50
-0.05
0.15
0.00
0.17
2.89
0.39
1.41
0.04
0.01
所使用的包:AMORE
建立BP神经网络所需要的函数:newff,train和sim。
newff(n.neurons, learning.rate.global, momentum.global, error.criterium, Stao,
hidden.layer, output.layer, method)
newff返回一个多层前馈神经网络对象。
参数:
n.neurons:一个数字型向量,第一个向量值表示训练样本输入神经元的个数,最后一个向量值表示训练样本输出神经元的个数,中间的向量值依次表示各个隐藏层神经元的个数。
Example:n.neurons=c(12,2,4) 表示一个3层神经网络即12-2-4
n.neurons=c(12,2,4,4) 表示一个4层神经网络即 12-2-4-4,含有2个隐层
learning.rate.global :该参数用于设置神经元学习率
momentum.global :设置全局动量指标,部分训练方法将用到
error.criterium : 用于设置训练误差函数所采用的方法。包括了:
LMS:最小均方误差
LMLS : 最小均对数平方误差
TAO :
Stao : 此参数用于error.TAO 函数,其他误差函数无效。
hidden.layer : 设置隐藏层神经元采用的激励函数,包括:
"purelin". 线性函数
"tansig" : 传递函数
"sigmoid". S型函数
"hardlim".
"custom": 用户自定义的函数
output.layer : 设置输出层神经元采用的激励函数,包括:
"purelin". 线性函数
"tansig" : 传递函数
"sigmoid". S型函数
"hardlim".
"custom": 用户自定义的函数
method : 设置训练方法即权重更新时所采用的方法。
ADAPTgd : 自适应梯度下降法
ADAPTgdwm : 含有动量的自适应梯度下降法
BATCHgd : 批梯度下降
BATCHgdwm : 含有动量的批梯度下降法
train {AMORE} R文档
神经网络训练功能。该函数返回具有两个元素的列表:经训练的神经网络对象,其具有通过具有动量方法的自适应反向传播和具有在训练期间获得的误差的矩阵调整的权重和偏差。如果提供了验证集,则应用早期停止技术。
描述
对于给定的数据集(训练集),该函数修改神经网络权重和偏差以近似训练集中存在的变量之间的关系。这些可以用于满足几个需要,即拟合非线性函数。
用法
train(net,P,T,Pval = NULL,Tval = NULL,error.criterium =“LMS”,report = n.shows,show.step,Stao = NA,prob = NULL,n.threads = 0L)
参数
net
神经网络训练。
P
训练集输入值。
T
训练集输出值
Pval
验证设置可选提前停止的输入值。
Tval
验证设置可选提前停止的输出值。
error.criterium
用于测量拟合优度的标准:“LMS”,“LMLS”,“TAO”。
Stao
由TAO算法使用的S参数的初始值。
report
表示训练功能应保持安静还是应在训练过程中提供图形/书面信息的逻辑值。
n.shows
报告次数(如果报告为TRUE)。训练时期的总数是n.shows乘以show.step。
show.step
在训练结束前,训练最大次数。
prob
矢量与每个样本的概率,以便应用重采样训练。
n.threads
要为BATCH *训练方法生成的线程数。如果<1,则产生NumberProcessors-1个线程。
如果未找到OpenMP,则此参数将被忽略。
sim(net,P,...)
用于网络仿真。
本问题的编程
library(AMORE)
p<-matrix(c(-0.12,-0.24,0.53,0.59,-0.63,-0.02,-0.11,0.29,0.42,0.51,-0.45,
0.36,0.31,-0.67,-0.76,0.00,0.92,-0.32,0.17,-0.55,0.50,-0.49,0.01,0.40,0.78,
0.92,0.09,-0.72,-0.70,-0.48,0.68,-0.49,0.63,-0.51,0.86,-0.30,-0.61,-0.50,0
.23,-0.05),20,2,byrow=T)
t<-c(0.13,1.26,0.42,0.03,0.86,0.01,0.13,0.59,0.36,0.15,0.00,0.17,2.89,
0.39,1.41,0.04,0.01)
net<-newff(n.neurons=c(2,5,1),learning.rate.global=1e-4,momentum.global=0.001,
error.criterium="LMS", Stao=NA, hidden.layer="tansig", output.layer="purelin",
method="ADAPTgdwm")
result<-train(net,p[1:17,],t[1:17],error.criterium="LMS", report=TRUE,
show.step=1000000, n.shows=5)
y<-sim(result$net,p[1:20,])
结果:
index.show: 1 LMS 0.0144609280347882index.show: 2 LMS 0.0111151809015427
index.show: 3 LMS 0.00882750612487179
index.show: 4 LMS 0.0071993747608624
index.show: 5 LMS 0.00580990383751156
最后三个的预报值
[18,] 0.31567784[19,] 1.12549961
[20,] 0.01159760
- R语言BP神经网络实例
- BP神经网络预测(R语言)
- BP神经网络预测实例
- BP神经网络参数设置及实例
- BP神经网络的实例一则
- bp神经网络c语言实现
- BP神经网络-- C语言实现
- Python语言编写BP神经网络
- BP神经网络-- C语言实现
- BP神经网络和支持向量机在R语言中的实现
- BP神经网络和支持向量机在R语言中的实现
- 机器学习第九周作业使用R语言建立BP神经网络
- 机器学习与R之BP神经网络
- 利用R实现简单的BP神经网络
- R语言实现神经网络
- R语言:神经网络
- R语言神经网络
- r语言神经网络
- Android 金额分与元的互相转化
- DSS 代码分析【RTP over tcp实现】
- 获取随机字符串String
- 签名和加密
- 阿里云分析型数据库基本认识
- R语言BP神经网络实例
- 中国省市区三级联动实例(AJAX实现)
- 安装新版本Cmake
- 数据分析要点笔记
- 实习阶段性总结
- JSTL标签库之核心标签
- java网络编程之Netty流数据的传输处理(五)
- Linux下添加自定义脚本到开机自启动的方法
- ubuntu修改默认root密码