def get_paper_model(n_neighbors): """Build and return the paper model based on pickled kd-tree.""" print("", flush=True) # add a blank line before log section server_log("Start initializing paper models") pkl_filename = "data/kd_tree.pkl" with open(pkl_filename, "rb") as fh: kd_tree = pickle.load(fh) paper_model = KNeighborsClassifier(n_neighbors) paper_model.n_samples_fit_ = len(kd_tree.idx_array) paper_model.effective_metric_ = "euclidean" paper_model._fit_method = 'kd_tree' paper_model._tree = kd_tree server_log("Finished loading paper models\n") return paper_model
def create_paper_models(n_neighbors): """Return a list of paper models based on pickled sub-kd-trees.""" print('', flush=True) # add a blank line before log section server_log("Start initializing paper models") N_PAPER_MODELS = 4 # number of sub-models for paper dataset PAPER_MODEL_SIZE = 431539 # number of nodes in each sub-model paper_models = list() for id in range(1, N_PAPER_MODELS + 1): pkl_filename = f"data/paper_dataset/sub{id}.pkl" sub_model = KNeighborsClassifier(n_neighbors) sub_model.n_samples_fit_ = PAPER_MODEL_SIZE sub_model.effective_metric_ = 'euclidean' sub_model._fit_method = 'kd_tree' sub_model._tree = pickle.load(open(pkl_filename, "rb")) paper_models.append(sub_model) server_log("Finished loading paper models\n") return paper_models