Validating network 100 dating global party site
1 avg error 0.520395 validation 0.246937882684 2 avg error 0.272367 validation 0.228832420879 3 avg error 0.249578 validation 0.216253590304 ...
22 avg error 0.227753 validation 0.200239244714 23 avg error 0.227905 validation 0.199875013416 for each epoch for each training data instance propagate error through the network adjust the weights calculate the accuracy over training data for each validation data instance calculate the accuracy over the validation data if the threshold validation accuracy is met exit training else continue training Once you're finished training, then you run against your testing set and verify that the accuracy is sufficient.
A common solution is to split the training set further to create a validation set.Test set: A set of examples used only to assess the performance [generalization] of a fully specified classifier." The error surface will be different for different sets of data from your data set (batch learning).By commenting, you are accepting the DISQUS terms of service.def train(self, train, validation, N=0.3, M=0.1): # N: learning rate # M: momentum factor accuracy = list() while(True): error = 0.0 for p in train: input, target = p self.update(input) error = error Propagate(target, N, M) print "validation" total = 0 for p in validation: input, target = p output = self.update(input) total = sum([abs(target - output) for target, output in zip(target, output)]) #calculates sum of absolute diference between target and output accuracy.append(total) print min(accuracy) print sum(accuracy[-5:])/5 #if i % 100 == 0: print 'error %-14f' % error if ?
Search for validating network:
EDIT: Also, in the case you do not have enough data for a validation set, you can use crossvalidation to tune the parameters as well as estimate the test error.