def setUp(self): db = 'data/tester.db' self.conn = sqlite3.connect(db) self.c = self.conn.cursor() self.c.execute('SELECT articleID FROM article') self.n = 10000 arms = [arm[0] for arm in self.c.fetchall()] policies = [UCB(arms), IndexedUCB(arms, range(2, 7)), KLUCB(arms), Thompson(arms), Oblivious(arms), EpsilonGreedy(arms), EpsilonGreedy(arms, .05), LinUCB(arms)] self.MAB = RejectionMAB(db, self.n, range(2, 7), arms, policies)
conn = sqlite3.connect(db) c = conn.cursor() c.execute('SELECT articleID FROM article') arms = [arm[0] for arm in c.fetchall()] policies = [ UCB(arms), IndexedUCB(arms, range(2, 7)), KLUCB(arms), Thompson(arms), Oblivious(arms), EpsilonGreedy(arms), EpsilonGreedy(arms, .2) ] conn.close() n = 1000000 t0 = time.time() MAB = RejectionMAB(db, n, range(2, 7), arms, policies) MAB.run() MAB.output_decisions('results4.gz') print MAB.total_pulls t1 = time.time() the_time = str(datetime.timedelta(seconds=t1 - t0)) print('Now: {}'.format(time.time())) print('Took a total of {}'.format(the_time)) print('Number of pulls required to reach {} was {}'.format(n, MAB.total_pulls))