def get_historical_games(box_scores, max_date=None): all_stats = read_data.generate_all_stats(box_scores) historical_games = read_data.generate_historical_games( box_scores, max_date=max_date, ) return historical_games
def run_sigopt(box_scores, historical_games, historical_games_training_set, bet_info, sigopt_width=1, sigopt_depth=100): historical_games_by_tuple = evaluator.get_historical_games_by_tuple(historical_games) conn = sigopt.Connection() experiment = create_sigopt_experiment(conn, sigopt_depth) for _ in range(experiment.observation_budget): tunable_param_lists = [] suggestion_ids = [] for worker_id in range(sigopt_width): conn = sigopt.Connection() suggestion = conn.experiments(experiment.id).suggestions().create() suggestion_ids.append(suggestion.id) moving_averages = ( suggestion.assignments['slow_ma'], suggestion.assignments['fast_ma'], ) transform_params = { 'type': EXP_TRANSFORM, 'exp_param': suggestion.assignments['exp_param'], } tunable_param_lists.append([ moving_averages, transform_params, suggestion.assignments['n_estimators'], suggestion.assignments['min_samples_split'], suggestion.assignments['min_samples_leaf'], suggestion.assignments['bet_threshold'], ]) all_stats = read_data.generate_all_stats(box_scores) winnings_list = runner( historical_games_training_set, historical_games_by_tuple, bet_info, all_stats, tunable_param_lists, ) for i, suggestion_id in enumerate(suggestion_ids): conn.experiments(experiment.id).observations().create( suggestion=suggestion_id, value=winnings_list[i][0], value_stddev=winnings_list[i][1], ) print "Optimization done. View results at https://sigopt.com/experiment/{0}".format(experiment.id) experiment_detail = conn.experiments(experiment.id).fetch() best_observation = experiment_detail.progress.best_observation if best_observation: print "Best value found: {0} at {1}".format(best_observation.value, best_observation.assignments) return experiment.id
def run_sigopt( box_scores, user_token, client_token, client_id, historical_games, historical_games_training_set, bet_info, sigopt_width=1, sigopt_depth=100, ): historical_games_by_tuple = evaluator.get_historical_games_by_tuple(historical_games) conn = sigopt.interface.Connection(user_token=user_token, client_token=client_token) experiment = create_sigopt_experiment(conn, client_id) for _ in range(sigopt_depth): tunable_param_lists = [] assignments = [] for worker_id in range(sigopt_width): conn = sigopt.interface.Connection(user_token=user_token, client_token=client_token, worker_id=worker_id) suggestion = conn.experiments(experiment.id).suggest().suggestion assignments.append(suggestion.assignments) moving_averages = (suggestion.assignments["slow_ma"], suggestion.assignments["fast_ma"]) transform_params = {"type": EXP_TRANSFORM, "exp_param": suggestion.assignments["exp_param"]} tunable_param_lists.append( [ moving_averages, transform_params, suggestion.assignments["n_estimators"], suggestion.assignments["min_samples_split"], suggestion.assignments["min_samples_leaf"], suggestion.assignments["bet_threshold"], ] ) all_stats = read_data.generate_all_stats(box_scores) winnings_list = runner( historical_games_training_set, historical_games_by_tuple, bet_info, all_stats, tunable_param_lists ) for i, assignment in enumerate(assignments): conn.experiments(experiment.id).report( data={"assignments": assignment, "value": winnings_list[i][0], "value_stddev": winnings_list[i][1]} ) print "Optimization done. View results at https://sigopt.com/experiment/{0}".format(experiment.id) best_observation = conn.experiments(experiment.id).bestobservation().observation if best_observation: print "Best value found: {0} at {1}".format(best_observation.value, best_observation.assignments) return experiment.id
def run_sigopt(box_scores, user_token, client_token, client_id, historical_games, historical_games_training_set, bet_info, sigopt_width=1, sigopt_depth=100): historical_games_by_tuple = evaluator.get_historical_games_by_tuple( historical_games) conn = sigopt.interface.Connection( user_token=user_token, client_token=client_token, ) experiment = create_sigopt_experiment(conn, client_id) for _ in range(sigopt_depth): tunable_param_lists = [] assignments = [] for worker_id in range(sigopt_width): conn = sigopt.interface.Connection( user_token=user_token, client_token=client_token, worker_id=worker_id, ) suggestion = conn.experiments(experiment.id).suggest().suggestion assignments.append(suggestion.assignments) moving_averages = ( suggestion.assignments['slow_ma'], suggestion.assignments['fast_ma'], ) transform_params = { 'type': EXP_TRANSFORM, 'exp_param': suggestion.assignments['exp_param'], } tunable_param_lists.append([ moving_averages, transform_params, suggestion.assignments['n_estimators'], suggestion.assignments['min_samples_split'], suggestion.assignments['min_samples_leaf'], suggestion.assignments['bet_threshold'], ]) all_stats = read_data.generate_all_stats(box_scores) winnings_list = runner( historical_games_training_set, historical_games_by_tuple, bet_info, all_stats, tunable_param_lists, ) for i, assignment in enumerate(assignments): conn.experiments(experiment.id).report( data={ 'assignments': assignment, 'value': winnings_list[i][0], 'value_stddev': winnings_list[i][1], }) print "Optimization done. View results at https://sigopt.com/experiment/{0}".format( experiment.id) best_observation = conn.experiments( experiment.id).bestobservation().observation if best_observation: print "Best value found: {0} at {1}".format( best_observation.value, best_observation.assignments) return experiment.id
def run_sigopt(box_scores, historical_games, historical_games_training_set, bet_info, sigopt_width=1, sigopt_depth=100): historical_games_by_tuple = evaluator.get_historical_games_by_tuple( historical_games) conn = sigopt.Connection() experiment = create_sigopt_experiment(conn, sigopt_depth) for _ in range(experiment.observation_budget): tunable_param_lists = [] suggestion_ids = [] for worker_id in range(sigopt_width): conn = sigopt.Connection() suggestion = conn.experiments(experiment.id).suggestions().create() suggestion_ids.append(suggestion.id) moving_averages = ( suggestion.assignments['slow_ma'], suggestion.assignments['fast_ma'], ) transform_params = { 'type': EXP_TRANSFORM, 'exp_param': suggestion.assignments['exp_param'], } tunable_param_lists.append([ moving_averages, transform_params, suggestion.assignments['n_estimators'], suggestion.assignments['min_samples_split'], suggestion.assignments['min_samples_leaf'], suggestion.assignments['bet_threshold'], ]) all_stats = read_data.generate_all_stats(box_scores) winnings_list = runner( historical_games_training_set, historical_games_by_tuple, bet_info, all_stats, tunable_param_lists, ) for i, suggestion_id in enumerate(suggestion_ids): conn.experiments(experiment.id).observations().create( suggestion=suggestion_id, value=winnings_list[i][0], value_stddev=winnings_list[i][1], ) print "Optimization done. View results at https://sigopt.com/experiment/{0}".format( experiment.id) experiment_detail = conn.experiments(experiment.id).fetch() best_observation = experiment_detail.progress.best_observation if best_observation: print "Best value found: {0} at {1}".format( best_observation.value, best_observation.assignments) return experiment.id