chapter3 递归神经网络

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

极限天气预报模型:预测每天的最高温度、最低温度、风速。数据集包含一年的日观测值,前十一个月训练,最后一个月的数据用来测试,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  Dec
1974 3035 2552 2704 2554 2014 1655 1721 1524 1596 2074 2199 2512
1975 2933 2889 2938 2497 1870 1726 1607 1545 1396 1787 2076 2837
1976 2787 3891 3179 2011 1636 1580 1489 1300 1356 1653 2013 2823
1977 3102 2294 2385 2444 1748 1554 1498 1361 1346 1564 1640 2293
1978 2815 3137 2679 1969 1870 1633 1529 1366 1357 1570 1535 2491
1979 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 class
x1<-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.10
1      1.51    NA    NA    NA    NA    NA    NA    NA    NA    NA     NA
2      0.90  1.51    NA    NA    NA    NA    NA    NA    NA    NA     NA
3      1.10  0.90  1.51    NA    NA    NA    NA    NA    NA    NA     NA
4      0.90  1.10  0.90  1.51    NA    NA    NA    NA    NA    NA     NA
5      0.07  0.90  1.10  0.90  1.51    NA    NA    NA    NA    NA     NA
6     -0.62  0.07  0.90  1.10  0.90  1.51    NA    NA    NA    NA     NA
7     -0.48 -0.62  0.07  0.90  1.10  0.90  1.51    NA    NA    NA     NA
8     -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90  1.51    NA    NA     NA
9     -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90  1.51    NA     NA
10     0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90  1.51     NA
11     0.38  0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10  0.90   1.51
12     0.85  0.38  0.17 -0.75 -0.91 -0.48 -0.62  0.07  0.90  1.10   0.90
13     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.12
1      NA     NA
2      NA     NA
3      NA     NA
4      NA     NA
5      NA     NA
6      NA     NA
7      NA     NA
8      NA     NA
9      NA     NA
10     NA     NA
11     NA     NA
12   1.51     NA
13   0.90   1.51
deaths<-deaths[-(1:12),]
n=nrow(deaths)
n
[1] 60
set.seed(465)
n_train<-45
train<-sample(1:n,n_train,FALSE)
inputs<-deaths[,2:13]
outputs<-deaths[,1]
#学习率0.1,最大步长1000
fit<-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-3D
generated at Wed Mar 08 10:00:58 2017

network name : RSNNS_untitled
source files :
no. of units : 17
no. of connections : 20
no. of unit types : 0
no. of site types : 0


learning function : JE_BP
update function   : JE_Order


unit 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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值