2017-04-05 4 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 사용 된 :

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) 예보 (nn)' – NikkiB

+0

예측을 사용하여 forecast() 함수를 체크 아웃해야합니다. 시계열 모델링에 사용됩니다. NN 모델을 인식하지 못합니다. 또한 함수에 전달 된 인수도 잘못되었습니다. –

관련 문제