Ошибка нейронной сети в R: «weights [[num_hidden_layers + 1]]: требуются числовые / сложные матричные / векторные аргументы» - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь использовать приведенный ниже код для создания нейронной сети, но при запуске кода появляется следующее сообщение об ошибке:

"веса [[num_hidden_layers + 1]]: требуются числовые / сложные матричные / векторные аргументы"

Ошибка в следующей строке:

pred_nn=compute(flying_nn, ctest)

в коде ниже.

flying=dget("https://www.math.ntnu.no/emner/TMA4268/2019v/data/flying.dd")

ctrain=flying$ctrain

ctest=flying$ctest

require(neuralnet) 
#hidden for number of neurons 
flying_nn = neuralnet(diabetes~., data=ctrain, hidden=8, act.fct="logistic", linear.output=FALSE) 

pred_nn = compute(flying_nn, ctest) 

pred_nn$net.result <- sapply(pred_nn$net.results, round, digits=0) 

"Calculate error rate for neural networks" 
table_nn <- table(pred_nn$net.results, ctest$diabetes) error_nn <- 1-sum(diag(table_nn))/sum(table_nn) 
error_nn 

predict_nntrain <- predict(flying_nn, newdata=ctrain) 
roc_nn = roc(response=ctrain$diabetes, predictor= factor(predict_nntrain$class, ordered=TRUE)) 
plot(roc_nn, col="red", lwd=10, main="ROC curve NN") auc_nn<-auc(roc_nn) 
auc_qda

Тестовые данные ctest - это фрейм данных с теми же ковариатами, что и обучающий набор ctrain. Поскольку с формулой compute (flying_nn, ctest) что-то не так, может ли быть что-то не так с фреймом данных ctest? Согласно документации, фрейм данных является правильным вводом.

Любая помощь высоко ценится!

...