ボストンのデータセットでRでニューラルネットを試しました。式をfと呼ばれるRオブジェクトに格納され、この場合ニューラルネット機能を使用中にエラーを取得する
keeps <- c("crim", "indus", "nox", "rm" , "age", "dis", "tax" ,"ptratio", "lstat" ,"medv")
data <- data[keeps]
:我々が使用したいだけの変数を保持
data("Boston",package="MASS")
data <- Boston
。 応答変数medvは、残りの9つの属性に対して「回帰」されます。
f <- medv ~ crim + indus + nox + rm + age + dis + tax + ptratio + lstat
交換せずにデータの506行の列のサンプル400を設定するサンプルの方法を使用して収集される:私は以下のようにそれを行っているRの
set.seed(2016)
n = nrow(data)
train <- sample(1:n, 400, FALSE)
neuralnet機能が装着されています。
fit<- neuralnet(f, data = data[train ,], hidden=c(10 ,12 ,20),
algorithm = "rprop+", err.fct = "sse", act.fct = "logistic",
threshold =0.1, linear.output=TRUE)
しかし、アルゴリズムは収束していないと警告メッセージが表示されます。
警告メッセージ: アルゴリズムはstepmax内の1回の反復(S)の1に収束しなかった
試み予測使用して計算、
pred <- compute(fit,data[-train, 1:9])
後エラーMSGが表示され
Error in nrow[w] * ncol[w] : non-numeric argument to binary operator
In addition: Warning message:
In is.na(weights) : is.na() applied to non-(list or vector) of type 'NULL'
なぜエラーが発生しているのか、予測から回復する方法私は、そのデータセットにneuralnet関数を使用したいと思います。
トレーニングの前にデータセットの拡大縮小を検討しましたか? – sebastianmm
私はそれを拡大縮小していません。より速いコンバージェンスにつながりますか?今のところ、問題は、収束していないようです。 – shan
はい。下の私の編集を参照してください。 – sebastianmm