Soy nuevo en el modelado con redes neuronales, pero me las arreglé para establecer una red neuronal con todos los puntos de datos que se ajusta a los datos observados. La red neuronal fue hecho en R con la nnet paquete:
require(nnet)
##33.8 is the highest value
mynnet.fit <- nnet(DOC/33.80 ~ ., data = MyData, size = 6, decay = 0.1, maxit = 1000)
mynnet.predict <- predict(mynnet.fit)*33.80
mean((mynnet.predict - MyData$DOC)^2) ## mean squared error was 16.5
Los datos que estoy analizando es como el siguiente, donde el DOC es la variable que ha de ser modelada (hay cerca de 17.000 observaciones):
Q GW_level Temp t_sum DOC
1 0.045 0.070 12.50 0.2 11.17
2 0.046 0.070 12.61 0.4 11.09
3 0.046 0.068 12.66 2.8 11.16
4 0.047 0.050 12.66 0.4 11.28
5 0.049 0.050 12.55 0.6 11.45
6 0.050 0.048 12.45 0.4 11.48
Ahora, he leído que el modelo debe ser entrenado con el 70% de los puntos de datos, y validar con los restantes 30% de los puntos de datos. ¿Cómo puedo hacer esto? Que funciones tengo que usar?
He utilizado el tren de la función del símbolo de intercalación paquete para el cálculo de los parámetros para el tamaño y la decadencia.
require(caret)
my.grid <- expand.grid(.decay = c(0.5, 0.1), .size = c(5, 6, 7))
mynnetfit <- train(DOC/33.80 ~ ., data = MyData, method = "nnet", maxit = 100, tuneGrid = my.grid, trace = f)
Cualquier ayuda directa o enlaces a otros sitios web/blogs es muy apreciado.