I'm trying to train a neural network on candidatesTestData
, a 20177 x 14
matrix, while trying to follow the procedure listed here: this answer
I am trying to avoid over-fitting the training data. This is what I have tried so far:
returnNet <- NULL
currMax <- 40
for(i in 1:10) {
validationData <- sample_n(candidatesTrainingData, 20)
trainingData <- setdiff(candidatesTrainingData, validationData)
temp <- nnet(yield ~ ., data=trainingData, size = 6, linout=TRUE, skip=TRUE, MaxNWts = 10000)
validationPrediction <- predict(temp, validationData[1:length(names(validationData))-1])
errorVector <- abs(validationData$yield - validationPrediction)
if ( min(errorVector, na.rm=TRUE) < 5 & mean(errorVector, na.rm=TRUE) < currMax ) {
currMax <- mean(errorVector, na.rm=TRUE)
returnNet <- temp
}
}
return(returnNet)
In 10 minutes 60 iterations have completed for the first Neural Network. Is there any way this can be sped up i.e. improve the algorithmic run time?