У меня есть данные ниже с 3 переменными, и я хотел бы предсказать объем населения в течение следующих 3 часов для определенной области (имя переменной «идентичность»)
identity heure volume
1 20462 0 228
2 20463 0 193
3 20785 0 201
4 20786 0 131
5 20787 0 89
6 20788 0 86
Прежде всего, я нормализовал переменную и разделил свои данные (называемые в моей работе «odsData») на набор тестов и тренировок. Вот код:
scale01 <- function(x){(x - min(x)) / (max(x) - min(x))}
odsData <- odsData %>%
mutate_all(scale01)
set.seed(101)
sample = sample.split(odsData$volume, SplitRatio = .50)
train = subset(odsData, sample == TRUE)
test = subset(odsData, sample == FALSE)
Затем я запускаю следующую нейронную сеть в R:
library(neuralnet)
set.seed(12345)
NN1 <- neuralnet(volume~heure+identity,
data=train,
hidden = 1,
threshold = 0.1,
act.fct = "logistic",
linear.output = TRUE)
NN1$net.result
plot(NN1,rep = "best")
После этого я попытался вручную вычислить ошибку обучения нейронной сети с помощью приведенной ниже функции R
NN1_Train_SSE <- sum((NN1$net.result - train[,3])^2)/2
paste("Train SSE: ", round(NN1_Train_SSE,4))
Но когда я запускаю этот код ошибки обучения, я нахожу сообщение об ошибке:
Error in NN1$net.result - train[, 3] : non-numeric argument to binary operator
Итак, кто-нибудь может помочь мне решить эту проблему.