def run_sims_in_parallel(outlier_score_file, feature_dir, output_file): pool = Pool(8) mahal_timeseries, c_timeseries = readOutlierScores(outlier_score_file) global_pace_timeseries = readGlobalPace(feature_dir) sim_function = partial(run_many_simulations, mahal_timeseries = mahal_timeseries, c_timeseries = c_timeseries, global_pace_timeseries=global_pace_timeseries) sim_sizes = [1250]*8 result = pool.map(sim_function, sim_sizes) with open(output_file, 'w') as f: w = csv.writer(f) w.writerow(['event','start_date', 'end_date', 'duration', 'max_pace_dev', 'min_pace_dev']) for chunk in result: w.writerows(chunk)
def run_random_sims(outlier_score_file, feature_dir): mahal_timeseries, c_timeseries = readOutlierScores(outlier_score_file) global_pace_timeseries = readGlobalPace(feature_dir) for p in range(50): print ("Sim %d" % p) initial_state, trans_matrix, emission_matrix = randomly_draw_parameters() events, predictions = detect_events_hmm(mahal_timeseries, c_timeseries, global_pace_timeseries, threshold_quant=.95, trans_matrix = trans_matrix, emission_matrix=emission_matrix) new_scores_file = 'tmp_results/coarse_events_k%d_scores.csv'%p augment_outlier_scores(outlier_score_file, new_scores_file, predictions)