2016-04-20 1 views
1

RSNNSパッケージを使用してRにリカレントニューラルネットワークを適合させたいと思います。パッケージには、以下のサンプルコードで行われているように、最大​​反復回数を設定するオプションが用意されています(maxit = 1000)。収束までにアルゴリズムが何回繰り返し使用されたかを確認することは可能ですか?RのRSNNSパッケージに収束するまでの繰り返し回数を取得

library(RSNNS) 
library(xts) 

#Load Lynx data 
data(lynx) 

#Scale data and convert to xts 
data <- as.xts((lynx - min(lynx))/(max(lynx) - min(lynx))) 

#Build xts object with 5 lags to analyze 
lags <- 5 
for(i in 1:lags){ 

    feat <- lag(lynx, i) 
    data <- merge(data, feat, all = FALSE) 

} 

#Get features and target 
features <- data[,-1] 
target <- data[,1] 

#Fit network 
rnn  <- elman(features, target, maxit = 1000) 

答えて

1

私はそれがデフォルトで最大反復回数を実行すると思います。以下を実行すると、グラフは安定した後でも繰り返しが続きます。

rnn <- elman(features, target, maxit = 1000) 
plotIterativeError(rnn) 

#then run this 
rnn <- elman(features, target, maxit = 10000) 
plotIterativeError(rnn) 

あなたは、おそらくそれが収束する反復ステップを見つけるためにhead(which(abs(diff(rnn$IterativeFitError)) < 1e-20), 1)を使用することができます。

+0

エラー基準が満たされた場合に機能を停止する方法はありますか? –

+1

正しく覚えていれば、内部Cコードが呼び出されます。この機能をコンソールに印刷してチェックすることができます。もしそうなら、Cコードを変更してコンパイルする必要があります。 – chinsoon12

関連する問題