|
32 | 32 | from sklearn.ensemble import ExtraTreesRegressor, ExtraTreesClassifier
|
33 | 33 | from sklearn.linear_model import LogisticRegression
|
34 | 34 | from sklearn.dummy import DummyClassifier, DummyRegressor
|
| 35 | + from xgboost import __version__ as xgboost_version |
35 | 36 | except ImportError:
|
36 | 37 | pass
|
37 | 38 |
|
@@ -212,10 +213,10 @@ def _fit(self, X_train, y_train, **kwargs):
|
212 | 213 | model = self.estimator_class(**self.params)
|
213 | 214 | if logger.level == logging.DEBUG:
|
214 | 215 | # xgboost 1.6 doesn't display all the params in the model str
|
215 |
| - logger.debug(f"flaml.model - {model} fit started with params {self.params}") |
| 216 | + logger.debug(f"flaml.automl.model - {model} fit started with params {self.params}") |
216 | 217 | model.fit(X_train, y_train, **kwargs)
|
217 | 218 | if logger.level == logging.DEBUG:
|
218 |
| - logger.debug(f"flaml.model - {model} fit finished") |
| 219 | + logger.debug(f"flaml.automl.model - {model} fit finished") |
219 | 220 | train_time = time.time() - current_time
|
220 | 221 | self._model = model
|
221 | 222 | return train_time
|
@@ -455,10 +456,10 @@ def _fit(self, df_train: sparkDataFrame, **kwargs):
|
455 | 456 | current_time = time.time()
|
456 | 457 | pipeline_model = self.estimator_class(**self.params, **kwargs)
|
457 | 458 | if logger.level == logging.DEBUG:
|
458 |
| - logger.debug(f"flaml.model - {pipeline_model} fit started with params {self.params}") |
| 459 | + logger.debug(f"flaml.automl.model - {pipeline_model} fit started with params {self.params}") |
459 | 460 | pipeline_model.fit(df_train)
|
460 | 461 | if logger.level == logging.DEBUG:
|
461 |
| - logger.debug(f"flaml.model - {pipeline_model} fit finished") |
| 462 | + logger.debug(f"flaml.automl.model - {pipeline_model} fit finished") |
462 | 463 | train_time = time.time() - current_time
|
463 | 464 | self._model = pipeline_model
|
464 | 465 | return train_time
|
@@ -690,12 +691,12 @@ def _fit(self, df_train: sparkDataFrame, **kwargs):
|
690 | 691 | current_time = time.time()
|
691 | 692 | model = self.estimator_class(**self.params, **kwargs)
|
692 | 693 | if logger.level == logging.DEBUG:
|
693 |
| - logger.debug(f"flaml.model - {model} fit started with params {self.params}") |
| 694 | + logger.debug(f"flaml.automl.model - {model} fit started with params {self.params}") |
694 | 695 | self._model = model.fit(df_train)
|
695 | 696 | self._model.classes_ = self.model_classes_
|
696 | 697 | self._model.n_classes_ = self.model_n_classes_
|
697 | 698 | if logger.level == logging.DEBUG:
|
698 |
| - logger.debug(f"flaml.model - {model} fit finished") |
| 699 | + logger.debug(f"flaml.automl.model - {model} fit finished") |
699 | 700 | train_time = time.time() - current_time
|
700 | 701 | return train_time
|
701 | 702 |
|
@@ -1412,7 +1413,7 @@ def fit(self, X_train, y_train, budget=None, free_mem_ratio=0, **kwargs):
|
1412 | 1413 | callbacks = self.params.pop("callbacks")
|
1413 | 1414 | self._model.set_params(callbacks=callbacks[:-1])
|
1414 | 1415 | best_iteration = (
|
1415 |
| - self._model.get_booster().best_iteration |
| 1416 | + getattr(self._model.get_booster(), "best_iteration", None) |
1416 | 1417 | if isinstance(self, XGBoostSklearnEstimator)
|
1417 | 1418 | else self._model.best_iteration_
|
1418 | 1419 | )
|
@@ -1510,8 +1511,6 @@ def config2params(self, config: dict) -> dict:
|
1510 | 1511 | # params["booster"] = params.get("booster", "gbtree")
|
1511 | 1512 |
|
1512 | 1513 | # use_label_encoder is deprecated in 1.7.
|
1513 |
| - from xgboost import __version__ as xgboost_version |
1514 |
| - |
1515 | 1514 | if xgboost_version < "1.7.0":
|
1516 | 1515 | params["use_label_encoder"] = params.get("use_label_encoder", False)
|
1517 | 1516 | if "n_jobs" in config:
|
@@ -1559,7 +1558,7 @@ def fit(self, X_train, y_train, budget=None, free_mem_ratio=0, **kwargs):
|
1559 | 1558 | obj=obj,
|
1560 | 1559 | callbacks=callbacks,
|
1561 | 1560 | )
|
1562 |
| - self.params["n_estimators"] = self._model.best_iteration + 1 |
| 1561 | + self.params["n_estimators"] = getattr(self._model, "best_iteration", _n_estimators - 1) + 1 |
1563 | 1562 | else:
|
1564 | 1563 | self._model = xgb.train(self.params, dtrain, _n_estimators, obj=obj)
|
1565 | 1564 | self.params["n_estimators"] = _n_estimators
|
@@ -1620,7 +1619,9 @@ def config2params(self, config: dict) -> dict:
|
1620 | 1619 | if max_depth == 0:
|
1621 | 1620 | params["grow_policy"] = params.get("grow_policy", "lossguide")
|
1622 | 1621 | params["tree_method"] = params.get("tree_method", "hist")
|
1623 |
| - params["use_label_encoder"] = params.get("use_label_encoder", False) |
| 1622 | + # use_label_encoder is deprecated in 1.7. |
| 1623 | + if xgboost_version < "1.7.0": |
| 1624 | + params["use_label_encoder"] = params.get("use_label_encoder", False) |
1624 | 1625 | return params
|
1625 | 1626 |
|
1626 | 1627 | def __init__(
|
|
0 commit comments