|
- from cgi import test
- import os
- import joblib
- import lightgbm as lgb
-
-
- from .config import store_list, model_dir
- from .utils import acquire_data, get_weights, model_predict, score, measure_aux_algo
- from .generate_data import regenerate_data
- from .train import retrain_models, grid_training_sample, train_adaptation_grid
-
-
- class DataLoader:
- def __init__(self):
- self.algo = "ridge"
-
- def set_algo(self, algo):
- self.algo = algo
-
- def get_algo_list(self):
- return ["lgb", "ridge"]
-
- def get_idx_list(self):
- return list(range(len(store_list)))
-
- def get_idx_data(self, idx):
- store = store_list[idx]
- # fill_flag = self.algo == "ridge"
- fill_flag = True
- return acquire_data(store, fill_flag)
-
- def get_weights(self):
- return get_weights(self.algo)
-
- def get_model_path(self, idx):
- return os.path.join(model_dir, "{}_{}.out".format(self.algo, store_list[idx]))
-
- def predict(self, idx, test_x):
- store = store_list[idx]
-
- if os.path.exists(os.path.join(model_dir, f"{self.algo}_{store}.out")):
- return model_predict(self.algo, idx, test_x)
- else:
- self.retrain_models()
- return model_predict(self.algo, idx, test_x)
-
- def score(self, real_y, pred_y, sample_weight=None, multioutput="raw_values"):
- return score(real_y, pred_y, sample_weight, multioutput)
-
- def regenerate_data(self):
- regenerate_data()
-
- def retrain_models(self):
- retrain_models(self.algo)
-
- def grid_training_sample(self, user_list=list(range(10))):
- grid_training_sample(self.algo, user_list)
-
- def train_adaptation_grid(
- self, max_sample, test_sample, user_list=list(range(10)), adaptation_model=[], residual=False
- ):
- train_adaptation_grid(self.algo, max_sample, test_sample, user_list, adaptation_model, residual)
-
- def measure_aux_algo(self, idx, test_sample, model):
- return measure_aux_algo(idx, test_sample, model)
|