我具有以下包含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
所以,任何人都可以帮助我解决此问题。