Ich bin neu in der Modellierung mit neuronalen Netzwerken, aber es ist mir gelungen, ein neuronales Netzwerk mit allen verfügbaren Datenpunkten einzurichten, das gut zu den beobachteten Daten passt. Das neuronale Netzwerk wurde in R mit dem nnet-Paket erstellt:
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
Die Daten, die ich analysiere, sehen folgendermaßen aus: Der DOC ist die Variable, die modelliert werden muss (es gibt ungefähr 17.000 Beobachtungen):
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
Jetzt habe ich gelesen, dass das Modell mit 70% der Datenpunkte trainiert und mit den restlichen 30% der Datenpunkte validiert werden sollte. Wie mache ich das? Welche Funktionen muss ich nutzen?
Ich habe die Zugfunktion aus dem Caret-Paket verwendet, um die Parameter für Größe und Verfall zu berechnen.
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)
Jede direkte Hilfe oder Verknüpfung zu anderen Websites / Posts wird sehr geschätzt.