2017-04-05 12 views
0

neuralnet()関数を使用してロードデータを予測しようとしていますが、予想()関数は、私はエラーが表示されます。is.constantでエラーが発生しました(Y):(リスト)オブジェクトが「ダブル」とタイプに強制することはできません予測neuralnet():is.constant(y)のエラー:(リスト)オブジェクトを強制的に 'double'と入力することはできません

は私のデータは次のようになります。

  date temperature load weekday month weekend day 
1 2010-01-01   -28 256131  5 01  0 1 
2 2010-01-02   -24 277749  6 01  1 2 
3 2010-01-03   -53 264166  0 01  1 3 
4 2010-01-04   -42 319847  1 01  0 4 
5 2010-01-05   -17 321376  2 01  0 5 

をして構成されています:

str(NLtrain) 
'data.frame': 2191 obs. of 7 variables: 
$ date  : POSIXct, format: "2010-01-01" "2010-01-02" "2010-01-03" ... 
$ temperature: num -28 -24 -53 -42 -17 -45 -43 -42 -25 -11 ... 
$ load  : num 256131 277749 264166 319847 321376 ... 
$ weekend : num 0 1 1 0 0 0 0 0 1 1 ... 
$ weekday : int 5 6 0 1 2 3 4 5 6 0 ... 
$ month  : chr "01" "01" "01" "01" ... 
$ day  : int 1 2 3 4 5 6 7 8 9 10 ... 

コードI hav e使用:

loadts <- ts(NLtrain$load, frequency=7, start = c(2010,1,1)) 

nnvar = NLtrain$weekday+NLtrain$day+NLtrain$temperature 

nn = neuralnet(loadts~nnvar, 
      data = NLtrain, hidden = 3, 
      linear.output =FALSE) 
forecast(nn) 

私は間違っていますか?事前

+0

(strを使って)データの構造も出力できますか? –

+0

@RomanLuštrikが構造を追加しました! – NikkiB

答えて

0

おかげで、あなたのneuralnet()ための式を定義する方法が正しくありません。 "nnvar"は、あなたがそれを説明した方法でベクトルになります。これは列の合計です。 loadtsでの自分の価値観は、(0,1)からの間隔にないよう、

nnvar<-as.formula(loadts~weekday+day+temperature) 

nn=neuralnet(nnvar,data=NLtrain,hidden=3,linear.output=F) 

また、次の方法を使用して、私はロジスティック関数が活性化になり、この場合のようにあなたは、= Fをlinear.outputを使うべきではないと思いますあなたの値は0〜1に制限されています。

+0

私はまだ同じエラーが発生しています。次のように試しました: 'nnvar < - as.formula(loadts〜平日+日+温度) nn = neuralnet(nnvar、data = NLtrain、hidden = 3) forecast(nn ) ' – NikkiB

+0

?forecastを使用してforecast()関数をチェックアウトする必要があります。これは時系列モデリングに使用されます。 NNモデルは認識されません。また、関数に渡される引数も間違っています。 –