chapter3 递归神经网络

来源:互联网 发布:买黄金投资软件 编辑:程序博客网 时间:2024/06/08 15:27

输入层-隐藏层-背景层-输出层

极限天气预报模型:预测每天的最高温度、最低温度、风速。数据集包含一年的日观测值,前十一个月训练,最后一个月的数据用来测试,45个隐藏层。

如何马上发现一个严重的错误:

提高水的质量。。。。。

require(RSNNS)require(quantmod)library(quantmod)data("UKLungDeaths",package = "datasets")par(mfrow=c(3,1))plot(ldeaths,xlab="Year",ylab="Both sexes",main="Total")plot(mdeaths,xlab="Year",ylab="Males",main="Males")plot(fdeaths,xlab="Year",ylab="Females",main="Females")

> par(mfrow=c(1,3))> plot(ldeaths,xlab="Year",ylab="Both sexes",main="Total")> plot(mdeaths,xlab="Year",ylab="Males",main="Males")> plot(fdeaths,xlab="Year",ylab="Females",main="Females") 
> sum(is.na(ldeaths))[1] 0
> ldeaths      Jan  Feb  Mar  Apr  May  Jun  Jul  Aug  Sep  Oct  Nov  Dec1974 3035 2552 2704 2554 2014 1655 1721 1524 1596 2074 2199 25121975 2933 2889 2938 2497 1870 1726 1607 1545 1396 1787 2076 28371976 2787 3891 3179 2011 1636 1580 1489 1300 1356 1653 2013 28231977 3102 2294 2385 2444 1748 1554 1498 1361 1346 1564 1640 22931978 2815 3137 2679 1969 1870 1633 1529 1366 1357 1570 1535 24911979 3084 2605 2573 2143 1693 1504 1461 1354 1333 1492 1781 1915
> class(ldeaths)[1] "ts"
par(mfrow=c(1,3))plot(ldeaths)x<-density(ldeaths)plot(x,main="UK total deaths from lung diseases")polygon(x,col="green",border = "black")boxplot(ldeaths,col="cyan",ylab="Number of deaths per month")




y<-as.ts(ldeaths)y<-log(y)y<-as.ts(scale(y))#标准化y<-as.zoo(y)#把y变成zoo classx1<-Lag(y,k=1)x2<-Lag(y,k=2)x3<-Lag(y,k=3)x4<-Lag(y,k=4)x5<-Lag(y,k=5)x6<-Lag(y,k=6)x7<-Lag(y,k=7)x8<-Lag(y,k=8)x9<-Lag(y,k=9)x10<-Lag(y,k=10)x11<-Lag(y,k=11)x12<-Lag(y,k=12)deaths<-cbind(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12)deaths<-cbind(y,deaths)head(round(deaths,2),13)

   Series 1 Lag.1 Lag.2 Lag.3 Lag.4 Lag.5 Lag.6 Lag.7 Lag.8 Lag.9 Lag.101      1.51    NA    NA    NA    NA    NA    NA    NA    NA    NA     NA2      0.90  1.51    NA    NA    NA    NA    NA    NA    NA    NA     NA3      1.10  0.90  1.51    NA    NA    NA    NA    NA    NA    NA     NA4      0.90  1.10  0.90  1.51    NA    NA    NA    NA    NA    NA     NA5      0.07  0.90  1.10  0.90  1.51    NA    NA    NA    NA    NA     NA6     -0.62  0.07  0.90  1.10  0.90  1.51    NA    NA    NA    NA     NA7     -0.48 -0.62  0.07  0.90  1.10  0.90  1.51    NA    NA    NA     NA8     -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90  1.51    NA    NA     NA9     -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90  1.51    NA     NA10     0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90  1.51     NA11     0.38  0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90   1.5112     0.85  0.38  0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10   0.9013     1.39  0.85  0.38  0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90   1.10   Lag.11 Lag.121      NA     NA2      NA     NA3      NA     NA4      NA     NA5      NA     NA6      NA     NA7      NA     NA8      NA     NA9      NA     NA10     NA     NA11     NA     NA12   1.51     NA13   0.90   1.51
deaths<-deaths[-(1:12),]n=nrow(deaths)n
[1] 60
set.seed(465)n_train<-45train<-sample(1:n,n_train,FALSE)inputs<-deaths[,2:13]outputs<-deaths[,1]#学习率0.1,最大步长1000fit<-elman(inputs[train],outputs[train],size=c(1,1),learnFuncParams = c(0.1),maxit=1000)par(mfrow=c(1,1))plotIterativeError(fit)

     误差曲线下降的很快,大约500次迭代。

> summary(fit)SNNS network definition file V1.4-3Dgenerated at Wed Mar 08 10:00:58 2017network name : RSNNS_untitledsource files :no. of units : 17no. of connections : 20no. of unit types : 0no. of site types : 0learning function : JE_BPupdate function   : JE_Orderunit default section :act      | bias     | st | subnet | layer | act func     | out func---------|----------|----|--------|-------|--------------|------------- 1.00000 |  0.00000 | i  |      0 |     1 | Act_Logistic | Out_Identity ---------|----------|----|--------|-------|--------------|-------------unit definition section :no. | typeName | unitName | act      | bias     | st | position | act func     | out func | sites----|----------|----------|----------|----------|----|----------|--------------|----------|-------  1 |          | inp1     | -0.98260 |  0.15181 | i  |  1, 1, 0 | Act_Identity |          |   2 |          | inp2     | -1.37812 | -0.32468 | i  |  1, 2, 0 | Act_Identity |          |   3 |          | inp3     | -1.32325 |  0.09987 | i  |  1, 3, 0 | Act_Identity |          |   4 |          | inp4     | -1.05630 |  0.63419 | i  |  1, 4, 0 | Act_Identity |          |   5 |          | inp5     | -0.95449 |  0.02857 | i  |  1, 5, 0 | Act_Identity |          |   6 |          | inp6     | -0.53901 | -0.05401 | i  |  1, 6, 0 | Act_Identity |          |   7 |          | inp7     |  0.28829 | -0.04926 | i  |  1, 7, 0 | Act_Identity |          |   8 |          | inp8     |  0.93013 |  0.77409 | i  |  1, 8, 0 | Act_Identity |          |   9 |          | inp9     |  0.97351 |  0.66627 | i  |  1, 9, 0 | Act_Identity |          |  10 |          | inp10    |  1.56596 |  0.02014 | i  |  1,10, 0 | Act_Identity |          |  11 |          | inp11    |  0.81645 | -0.52729 | i  |  1,11, 0 | Act_Identity |          |  12 |          | inp12    | -0.88288 | -0.15885 | i  |  1,12, 0 | Act_Identity |          |  13 |          | hid11    |  0.16206 | -0.55551 | h  |  7, 1, 0 ||| 14 |          | hid21    |  0.18053 | -0.68042 | h  | 13, 1, 0 ||| 15 |          | out1     | -0.54759 | 1461.39380 | o  | 19, 1, 0 | Act_Identity |          |  16 |          | con11    |  0.20030 |  0.50000 | sh  |  4,14, 0 | Act_Identity |          |  17 |          | con21    |  0.31741 |  0.50000 | sh  | 10,14, 0 | Act_Identity |          | ----|----------|----------|----------|----------|----|----------|--------------|----------|-------connection definition section :target | site | source:weight-------|------|---------------------------------------------------------------------------------------------------------------------    13 |      | 16: 0.70943, 12: 1.09644, 11:-0.51132, 10: 0.63319,  9: 0.71429,  8:-0.02138,  7: 0.22678,  6:-1.44620,  5:-1.14437,                 4:-0.21490,  3: 0.84608,  2: 1.81400,  1: 0.00419    14 |      | 17: 1.04794, 13:-8.08589    15 |      | 14:-3.03318    16 |      | 16: 0.30000, 13: 1.00000    17 |      | 17: 0.30000, 14: 1.00000-------|------|---------------------------------------------------------------------------------------------------------------------

        第一列表示神经数,整个神经网络有17层。第三列描述神经网络类型,12个输入,2个隐藏层,2个context layer背景层,一个输出层。第四列和第五列给出每个神经的函数值。例如,第一个神经的act为-0.98260,a bias of 0.15181

        使用测试集测试:

pred<-predict(fit,inputs[-train])plot(outputs[-train],pred)

> cor(outputs[-train],pred)^2       [,1][1,] 0.7845


0 0
原创粉丝点击