def estimate_t_and_predict(path_dataset_history, batch_type, batch_size, num_predictions): print('Start') edges = pd.read_csv(os.path.dirname(path_dataset_history) + '/edges', header=None) event_log = pd.read_csv(path_dataset_history + '/event_log', header=None) print('Data frames loaded') with open(path_dataset_history + '/contagion.pickle', 'rb') as file: cc = pickle.load(file) with open(path_dataset_history + '/adjacency.pickle', 'rb') as file: a = pickle.load(file) print('Pickles loaded') d = Data() d.load_data_data_frame(event_log, edges) print('Data object initialised') m = MCDOI() m.assign_contagions_correlation_matrix(cc) m.assign_adjacency_matrix(a) print('Matrices assigned') m.fit_only_thresholds_states(d, batch_type=batch_type, batch_size=batch_size) # file_name = path_dataset_history + '/' + batch_type + '/size_' + str(batch_size) + '/threshold.pickle' # os.makedirs(os.path.dirname(file_name), exist_ok=True) # with open(file_name, 'wb') as threshold_file: # pickle.dump(m.thresholds.matrix, threshold_file) result = m.predict(num_predictions)
def predict(path, num_predictions, predicted): if path not in predicted: if os.path.isfile(os.path.dirname(os.path.dirname(path))+'/data_obj.pickle'): with open(os.path.dirname(os.path.dirname(path))+'/data_obj.pickle', 'rb') as f: d = pickle.load(f) else: edges_dir = os.path.dirname(os.path.dirname(os.path.dirname(path))) + '/edges' edges = pd.read_csv(edges_dir, header = None) event_log_dir = os.path.dirname(os.path.dirname(path)) event_log = pd.read_csv(event_log_dir+ '/event_log', header=None) d = Data() d.load_data_data_frame(event_log, edges) with open(event_log_dir+'/data_obj.pickle', 'wb') as f: pickle.dump(d, f) # print(event_log_dir) with open(os.path.dirname(os.path.dirname(path)) + '/contagion.pickle', 'rb') as file: cc = pickle.load(file) with open(os.path.dirname(os.path.dirname(path)) + '/adjacency.pickle', 'rb') as file: a = pickle.load(file) with open(path + '/threshold.pickle', 'rb') as f: t = pickle.load(f) m = MCDOI() m.assign_contagions_correlation_matrix(cc) m.assign_adjacency_matrix(a) m.assign_thresholds_matrix(t) m.fill_state_matrix(d) result = m.predict(num_predictions) new_path = path.split('/') new_path[4] = 'negative-random-activation' save_results(result, '/'+os.path.join(*new_path), num_predictions) with open(directory+'predicted_7days', 'a+', encoding='utf-8') as handle: handle.write(path + '\n')
def estimate_t_and_predict(path_dataset_history, batch_type, batch_sizes, num_predictions, estimated): flag = False for batch_size in batch_sizes: if path_dataset_history + '/' + batch_type + '/size_' + str( batch_size) not in estimated: flag = True if flag: edges = pd.read_csv(os.path.dirname(path_dataset_history) + '/edges', header=None) event_log = pd.read_csv(path_dataset_history + '/event_log', header=None) with open(path_dataset_history + '/contagion.pickle', 'rb') as file: cc = pickle.load(file) with open(path_dataset_history + '/adjacency.pickle', 'rb') as file: a = pickle.load(file) for batch_size in batch_sizes: if path_dataset_history + '/' + batch_type + '/size_' + str( batch_size) not in estimated: if os.path.isfile(path_dataset_history + '/data_obj.pickle'): with open(path_dataset_history + '/data_obj.pickle', 'rb') as f: d = pickle.load(f) else: d = Data() d.load_data_data_frame(event_log, edges) with open(path_dataset_history + '/data_obj.pickle', 'wb') as f: pickle.dump(d, f) m = MCDOI() m.assign_contagions_correlation_matrix(cc) m.assign_adjacency_matrix(a) m.fit_only_thresholds_states(d, batch_type=batch_type, batch_size=batch_size) file_name = path_dataset_history + '/' + batch_type + '/size_' + str( batch_size) + '/threshold.pickle' os.makedirs(os.path.dirname(file_name), exist_ok=True) with open(file_name, 'wb') as threshold_file: pickle.dump(m.thresholds.matrix, threshold_file) result = m.predict(num_predictions) save_results( result, path_dataset_history + '/' + batch_type + '/size_' + str(batch_size), num_predictions) with open(directory + 'estimated_t+predict', 'a+', encoding='utf-8') as handle: handle.write(path_dataset_history + '/' + batch_type + '/size_' + str(batch_size) + '\n') with open(directory + 'predicted_7days', 'a+', encoding='utf-8') as handle: handle.write(path_dataset_history + '/' + batch_type + '/size_' + str(batch_size) + '\n')
def estimate_and_predict(d, dir, batch_type, batch_size, num_predictions): try: m = MCDOI() m.fit(d, batch_type = batch_type, batch_size = batch_size) result = m.predict(num_predictions) save_results(result, dir + batch_type + '/size_' + str(batch_size) + '/', num_predictions) save_parameters(m, dir + batch_type + '/size_' + str(batch_size) + '/') except Exception as err: write_to_logger(err.args) print(err.args) exit(1) finally: send_email()
def main(): directory = '/datasets/mcdoi/louvain/louvain_46_720/' try: d = Data() d.load_data(directory) m = MCDOI() m.fit(d, batch_type='time', batch_size=86400) m.predict(3) #predict(3) zwraca 63 aktywacje except Exception as err: writeToLogger(err.args) print(err.args) exit(1) finally: send_email()
def predict(path_dataset_history, batch_type, batch_sizes, num_predictions): if os.path.isfile(path_dataset_history + '/data_obj.pickle'): with open(path_dataset_history + '/data_obj.pickle', 'rb') as f: d = pickle.load(f) else: edges = pd.read_csv(os.path.dirname(path_dataset_history) + '/edges', header=None) event_log = pd.read_csv(path_dataset_history + '/event_log', header=None) d = Data() d.load_data_data_frame(event_log, edges) with open(path_dataset_history + '/data_obj.pickle', 'wb') as f: pickle.dump(d, f) with open(path_dataset_history + '/contagion.pickle', 'rb') as file: cc = pickle.load(file) with open(path_dataset_history + '/adjacency.pickle', 'rb') as file: a = pickle.load(file) new_path_dataset_history = path_dataset_history.split('/') new_path_dataset_history[4] = 'paper/' + model new_path_dataset_history = '/' + os.path.join(*new_path_dataset_history) for batch_size in batch_sizes: m = MCDOI() m.assign_contagions_correlation_matrix(cc) m.assign_adjacency_matrix(a) with open( new_path_dataset_history + '/' + batch_type + '/size_' + str(batch_size) + '/threshold.pickle', 'rb') as f: t = pickle.load(f) m.assign_thresholds_matrix(t) m.fill_state_matrix(d) # m.fit_only_thresholds_states(d, batch_type = batch_type, batch_size = batch_size) # file_name = new_path_dataset_history + '/' + batch_type + '/size_' + str(batch_size) + '/threshold.pickle' # os.makedirs(os.path.dirname(file_name), exist_ok=True) # with open(file_name, 'wb') as threshold_file: # pickle.dump(m.thresholds.matrix, threshold_file) # with open(directory+'estimated_thresholds', 'a+', encoding='utf-8') as handle: # handle.write(path_dataset_history + '/' + batch_type + '/size_' + str(batch_size) + '\n') result = m.predict(num_predictions) # print(new_path_dataset_history + '/' + batch_type + '/size_' + str(batch_size)) save_results( result, new_path_dataset_history + '/' + batch_type + '/size_' + str(batch_size), num_predictions)