| from dataclasses import asdict |
| import pickle |
|
|
| import xgboost |
|
|
|
|
| class Xgboost: |
| def __init__(self, config): |
| config = asdict(config) |
| self.model = xgboost.XGBClassifier(use_label_encoder=False, **config) |
|
|
| def __call__(self, x): |
| return self.model.predict(x) |
|
|
| def fit(self, x_train, y_train, x_val, y_val): |
| self.model.fit( |
| x_train, |
| y_train, |
| eval_set=[(x_train, y_train), (x_val, y_val)], |
| verbose=True, |
| ) |
|
|
| def save(self, save_path): |
| pickle.dump(self.model, open(save_path, "wb")) |
|
|
| def load(self, load_path): |
| self.model = pickle.load(open(load_path, "rb")) |
|
|