def train(config_name, nparallel): with open(config_name, "r") as f: config = json.load(f) train_csv_root = config["learning_param"]["train_csv_root"] train_target_table = config["learning_param"].get( "train_target_table_file", "seishitu_codeblue_wo_future.csv") train_loader = DataLoader(config, train_csv_root) train_handler = DataHandler(train_loader, config, train_target_table) test_loader = DataLoader(config, config["learning_param"]["test_csv_root"]) test_target_table = config["learning_param"].get( "test_target_table_file", "seishitu_codeblue_wo_future.csv") test_handler = DataHandler(test_loader, config, test_target_table) evaluator = Evaluator(config, test_loader, test_handler) print("building_test_data") evaluator.build_dataset(100.0, nparallel) n_repeat = config["learning_param"]["n_repeat"] with Pool(processes=nparallel) as p: models = [ p.apply_async(train_one, (config, train_loader, train_handler, i)) for i in range(n_repeat) ] res = np.array([evaluator.predict(model.get()) for model in models]) res_file = config_name[:-5] + ".predict.npy" np.save(res_file, res)
def train(config_name, nparallel): with open(config_name, "r") as f: config = json.load(f) train_csv_root = config["learning_param"]["train_csv_root"] train_target_table = config["learning_param"].get("train_target_table_file", "seishitu_codeblue_wo_future.csv") train_loader = DataLoader(config, train_csv_root) train_handler = DataHandler(train_loader,config, train_target_table) test_loader = DataLoader(config, config["learning_param"]["test_csv_root"]) test_target_table = config["learning_param"].get("test_target_table_file", "seishitu_codeblue_wo_future.csv") test_handler = DataHandler(test_loader,config,test_target_table) evaluator = Evaluator(config, test_loader, test_handler) print("building_test_data") evaluator.build_dataset(100.0, nparallel) n_repeat = config["learning_param"]["n_repeat"] with Pool(processes=nparallel) as p: models = [p.apply_async(train_one, (config, train_loader, train_handler, i)) for i in range(n_repeat)] res = np.array([evaluator.evaluate(model.get()) for model in models]) averages = np.mean(res, axis = 0, keepdims=False) variances = np.var(res, axis = 0, keepdims=False) config["results"] = dict() config["results"]["nData_mean"] = list(averages[:,0]) config["results"]["nData_var"] = list(variances[:,0]) config["results"]["nCPA_mean"] = list(averages[:,1]) config["results"]["nCPA_var"] = list(variances[:,1]) config["results"]["n_nonCPA_mean"] = list(averages[:,2]) config["results"]["n_nonCPA_var"] = list(variances[:,2]) config["results"]["accuracy_mean"] = list(averages[:,3]) config["results"]["accuracy_var"] = list(variances[:,3]) config["results"]["PPV_mean"] = list(averages[:,4]) config["results"]["PPV_var"] = list(variances[:,4]) config["results"]["NPV_mean"] = list(averages[:,5]) config["results"]["NPV_var"] = list(variances[:,5]) config["results"]["sensitivity_mean"] = list(averages[:,6]) config["results"]["sensitivity_var"] = list(variances[:,6]) config["results"]["specificity_mean"] = list(averages[:,7]) config["results"]["specificity_var"] = list(variances[:,7]) config["results"]["f_val_mean"] = list(averages[:,8]) config["results"]["f_val_var"] = list(variances[:,8]) config["results"]["auc_score_mean"] = list(averages[:,9]) config["results"]["auc_score_var"] = list(variances[:,9]) config["results"]["youden_index_mean"] = list(averages[:,10]) config["results"]["youden_index_var"] = list(variances[:,10]) config["results"]["tp_mean"] = list(averages[:,11]) config["results"]["tp_var"] = list(variances[:,11]) config["results"]["fp_mean"] = list(averages[:,12]) config["results"]["fp_var"] = list(variances[:,12]) config["results"]["fn_mean"] = list(averages[:,13]) config["results"]["fn_var"] = list(variances[:,13]) config["results"]["tn_mean"] = list(averages[:,14]) config["results"]["tn_var"] = list(variances[:,14]) with open(config_name[:-5]+".res.json", "w") as f: json.dump(config, f)