Прогнозирование neuralnet(): ошибка в is.constant(y): (список) объект не может быть приведен к типу 'double'
Я пытаюсь спрогнозировать загрузку данных с помощью функции 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 ...
Код, который я использовал:
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)
Что я делаю неправильно?
заранее спасибо
1 ответ
То, как вы определяете формулу для вашего neuralnet()
не является правильным. "Ннвар" становится вектором, как вы его объяснили. Это сумма столбцов. Используйте следующий способ
nnvar<-as.formula(loadts~weekday+day+temperature)
nn=neuralnet(nnvar,data=NLtrain,hidden=3,linear.output=F)
Кроме того, поскольку ваши значения в загрузках не находятся в интервале от (0,1), я думаю, что вы не должны использовать linear.output=F, так как в этом случае логистическая функция становится функцией активации, а ваши значения ограничены 0-1