def test_opt_qn_normal(f=hp_normal): bandit = Bandit( {'loss': -scope.sum([f('v%i' % ii, 0, 1) for ii in range(25)]) ** 2}, loss_target=0) algo = TreeParzenEstimator(bandit, prior_weight=.5, n_startup_jobs=0, n_EI_candidates=1, gamma=0.15) trials = Trials() experiment = Experiment(trials, algo, async=False) experiment.max_queue_len = 1 experiment.run(40) print list(sorted(trials.losses())) idxs, vals = miscs_to_idxs_vals(trials.miscs) if 1: import hyperopt.plotting hyperopt.plotting.main_plot_vars(trials, bandit, do_show=1) else: import matplotlib.pyplot as plt begin = [v[:10] for k, v in vals.items()] end = [v[-10:] for k, v in vals.items()] plt.subplot(2, 1, 1) plt.title('before') plt.hist(np.asarray(begin).flatten()) plt.subplot(2, 1, 2) plt.title('after') plt.hist(np.asarray(end).flatten()) plt.show()
def test_basic(self): bandit = self._bandit_cls() algo = Random(bandit) trials = Trials() experiment = Experiment(trials, algo, async=False) experiment.max_queue_len = 50 experiment.run(self._n_steps) print print self._bandit_cls print bandit.loss_target print trials.average_best_error(bandit) assert trials.average_best_error(bandit) - bandit.loss_target < .2 print
def test_basic(self): bandit = self._bandit_cls() print 'bandit params', bandit.params algo = Random(bandit) print 'algo params', algo.vh.params trials = Trials() experiment = Experiment(trials, algo, async=False) experiment.catch_bandit_exceptions = False experiment.max_queue_len = 50 experiment.run(self._n_steps) print print self._bandit_cls print bandit.loss_target print trials.average_best_error(bandit) assert trials.average_best_error(bandit) - bandit.loss_target < .2 print
def setUp(self): bandit = self.bandit = many_dists() algo = TreeParzenEstimator(bandit) trials = Trials() experiment = Experiment(trials, algo, async=False) experiment.max_queue_len = 1 N=200 if 0: import cProfile stats = cProfile.runctx('experiment.run(N)', globals={}, locals=locals(), filename='fooprof') import pstats p = pstats.Stats('fooprof') p.sort_stats('cumulative').print_stats(10) p.sort_stats('time').print_stats(10) else: experiment.run(N) self.trials = trials