Пакет Neuralnet в R продолжает выдавать сообщение об ошибке в числовых / векторных / матричных аргументах - PullRequest
0 голосов
/ 05 мая 2019

У меня есть фрейм данных с именем IED2 .Я пытался использовать пакет neuralnet в R для разработки модели прогнозирования в одном столбце Prop.of.Proper.Cleared этого IED2.Поскольку данные представлены в виде временных рядов, я использовал метод createTimeSlices и расширенное прогнозирование на основе окна для создания обучающих и тестовых наборов данных.Но затем, запустив цикл for ниже, я продолжал получать сообщение об ошибке, что я не могу найти файл, несмотря на проверку, чтобы убедиться, что тип данных каждого столбца равен integer.

Ошибка в cbind (1, pred)% *% весов [[num_hidden_layers + 1]]:
требуется числовая / сложная матрица / векторные аргументы

Мой код

 timeSlices <- createTimeSlices(1:nrow(IED2), 
                                initialWindow = 90, horizon = 62, fixedWindow = FALSE)

trainSlices <- timeSlices[[1]]
testSlices <- timeSlices[[2]]

test = NULL
net.sqrt = NULL
err = NULL
col_list <- paste(c(colnames(IED2[,5:7])),collapse="+")
col_list <- paste(c("Prop.of.Proper.Clear~",col_list),collapse="")
f <- formula(col_list)

for(i in 1:2000){
  set.seed(1)
  net.sqrt[i] <- neuralnet(f, data = IED2[trainSlices[[i]],] , algorithm = "rprop+", hidden=2, threshold=0.01, 
                        learningrate = 0.0001, linear.output = TRUE, err.fct="sse")
  test[i] <- compute(net.sqrt[i], IED2[testSlices[[i]],5:7])
  err[i] <- ((test[i]$net.result - IED2[testSlices[[i]],13])^2)/nrow(IED2[testSlices[[i]],])
}

Может кто-нибудь помочь мне с этой проблемой?Большое спасибо за Вашу помощь.

Пример набора данных с dput

structure(list(DoW = c(2L, 3L, 4L, 5L, 7L, 1L), Mnth = c(1L,  1L, 1L, 1L, 1L, 1L), Hour = c(0L, 0L, 0L,
 0L, 0L, 0L), Prop.of.Proper.Clear = c(0.333333333, 
 0.2, 0.333333333, 0.125, 0, 0)), row.names = c(2L, 3L, 4L, 5L,  7L, 8L), class = "data.frame")
...