val_set = [] for i in range(val_size): N = len(pick_from) - i rand = random.randint(0, N-1) point = pick_from.pop(rand) val_set.append(point) ann.populate(pick_from) ann.set_weights(weights) final_weights = [] val_errs = [] for i in krange: print i, datetime.datetime.now() ann.train(diff) final_weights.append(ann.weights) val_err = ann.test_err(val_set) val_errs.append(val_err) print val_err best_i = val_errs.index(min(val_errs)) best_itr = krange[best_i] best_test = val_errs[best_i] ann.set_weights(final_weights[best_i]) print datetime.datetime.now() print "Best iterations:", best_itr, "with validation error", best_test print "Plotting decision boundary for ANN with no lambda, run for", best_itr,"iterations" ann.populate(sampled_data) ann.decision(savename="ann_estop_dec.png") print "ANN Ein with Early Stopping at", best_itr, ":", ann.test_err(sampled_data) print "ANN Etest with Early Stopping at", best_itr, ":", ann.test_err(data)