From ea6d28d7bd739cce57c654306dbfd6b6a741aa00 Mon Sep 17 00:00:00 2001 From: Chi Wang Date: Mon, 22 Nov 2021 21:17:48 -0800 Subject: [PATCH] add max_depth to xgboost search space (#282) * add max_depth to xgboost search space * notebook update * two learners for xgboost (max_depth or max_leaves) --- flaml/automl.py | 27 +- flaml/ml.py | 3 + flaml/model.py | 58 +- flaml/searcher/flow2.py | 4 +- notebook/flaml_automl.ipynb | 735 +++++++++------- notebook/flaml_xgboost.ipynb | 1616 ++++++++++++++++++++++------------ 6 files changed, 1539 insertions(+), 904 deletions(-) diff --git a/flaml/automl.py b/flaml/automl.py index c599c9f8ca..29efebbae1 100644 --- a/flaml/automl.py +++ b/flaml/automl.py @@ -79,7 +79,9 @@ class SearchState: self.learner_class = learner_class search_space = learner_class.search_space(data_size=data_size, task=task) for name, space in search_space.items(): - assert "domain" in space + assert ( + "domain" in space + ), f"{name}'s domain is missing in the search space spec {space}" self._search_space_domain[name] = space["domain"] if "init_value" in space: self.init_config[name] = space["init_value"] @@ -434,7 +436,7 @@ class AutoML(BaseEstimator): .. code-block:: python - ['lgbm', 'xgboost', 'catboost', 'rf', 'extra_tree'] + ['lgbm', 'xgboost', 'xgb_limitdepth', 'catboost', 'rf', 'extra_tree'] time_budget: A float number of the time budget in seconds. Use -1 if no time limit. @@ -1659,7 +1661,7 @@ class AutoML(BaseEstimator): .. code-block:: python - ['lgbm', 'xgboost', 'catboost', 'rf', 'extra_tree'] + ['lgbm', 'xgboost', 'xgb_limitdepth', 'catboost', 'rf', 'extra_tree'] time_budget: A float number of the time budget in seconds. Use -1 if no time limit. @@ -1939,16 +1941,29 @@ class AutoML(BaseEstimator): except ImportError: estimator_list = ["arima", "sarimax"] elif self._state.task == "rank": - estimator_list = ["lgbm", "xgboost"] + estimator_list = ["lgbm", "xgboost", "xgb_limitdepth"] elif _is_nlp_task(self._state.task): estimator_list = ["transformer"] else: try: import catboost - estimator_list = ["lgbm", "rf", "catboost", "xgboost", "extra_tree"] + estimator_list = [ + "lgbm", + "rf", + "catboost", + "xgboost", + "extra_tree", + "xgb_limitdepth", + ] except ImportError: - estimator_list = ["lgbm", "rf", "xgboost", "extra_tree"] + estimator_list = [ + "lgbm", + "rf", + "xgboost", + "extra_tree", + "xgb_limitdepth", + ] if "regression" != self._state.task: estimator_list += ["lrl1"] for estimator_name in estimator_list: diff --git a/flaml/ml.py b/flaml/ml.py index 4b187fe210..9ad75695e1 100644 --- a/flaml/ml.py +++ b/flaml/ml.py @@ -20,6 +20,7 @@ from sklearn.metrics import ( from sklearn.model_selection import RepeatedStratifiedKFold, GroupKFold, TimeSeriesSplit from .model import ( XGBoostSklearnEstimator, + XGBoostLimitDepthEstimator, RandomForestEstimator, LGBMEstimator, LRL1Classifier, @@ -42,6 +43,8 @@ def get_estimator_class(task, estimator_name): # when adding a new learner, need to add an elif branch if "xgboost" == estimator_name: estimator_class = XGBoostSklearnEstimator + elif "xgb_limitdepth" == estimator_name: + estimator_class = XGBoostLimitDepthEstimator elif "rf" == estimator_name: estimator_class = RandomForestEstimator elif "lgbm" == estimator_name: diff --git a/flaml/model.py b/flaml/model.py index 96586bbd4f..d0867819f2 100644 --- a/flaml/model.py +++ b/flaml/model.py @@ -625,7 +625,13 @@ class LGBMEstimator(BaseEstimator): @classmethod def size(cls, config): - num_leaves = int(round(config.get("num_leaves") or config["max_leaves"])) + num_leaves = int( + round( + config.get("num_leaves") + or config.get("max_leaves") + or 1 << config["max_depth"] + ) + ) n_estimators = int(round(config["n_estimators"])) return (num_leaves * 3 + (num_leaves - 1) * 4 + 1.0) * n_estimators * 8 @@ -794,6 +800,10 @@ class XGBoostEstimator(SKLearnEstimator): "init_value": 4, "low_cost_init_value": 4, }, + "max_depth": { + "domain": tune.choice([0, 6, 12]), + "init_value": 0, + }, "min_child_weight": { "domain": tune.loguniform(lower=0.001, upper=128), "init_value": 1, @@ -834,11 +844,12 @@ class XGBoostEstimator(SKLearnEstimator): def config2params(cls, config: dict) -> dict: params = config.copy() - params["max_depth"] = params.get("max_depth", 0) - params["grow_policy"] = params.get("grow_policy", "lossguide") - params["booster"] = params.get("booster", "gbtree") + max_depth = params["max_depth"] = params.get("max_depth", 0) + if max_depth == 0: + params["grow_policy"] = params.get("grow_policy", "lossguide") + params["tree_method"] = params.get("tree_method", "hist") + # params["booster"] = params.get("booster", "gbtree") params["use_label_encoder"] = params.get("use_label_encoder", False) - params["tree_method"] = params.get("tree_method", "hist") if "n_jobs" in config: params["nthread"] = params.pop("n_jobs") return params @@ -923,24 +934,25 @@ class XGBoostEstimator(SKLearnEstimator): class XGBoostSklearnEstimator(SKLearnEstimator, LGBMEstimator): - """The class for tuning XGBoost (for classification), using sklearn API.""" + """The class for tuning XGBoost with unlimited depth, using sklearn API.""" @classmethod def search_space(cls, data_size, **params): - return XGBoostEstimator.search_space(data_size) + space = XGBoostEstimator.search_space(data_size) + space.pop("max_depth") + return space @classmethod def cost_relative2lgbm(cls): return XGBoostEstimator.cost_relative2lgbm() def config2params(cls, config: dict) -> dict: - # TODO: test params = config.copy() - params["max_depth"] = 0 - params["grow_policy"] = params.get("grow_policy", "lossguide") - params["booster"] = params.get("booster", "gbtree") + max_depth = params["max_depth"] = params.get("max_depth", 0) + if max_depth == 0: + params["grow_policy"] = params.get("grow_policy", "lossguide") + params["tree_method"] = params.get("tree_method", "hist") params["use_label_encoder"] = params.get("use_label_encoder", False) - params["tree_method"] = params.get("tree_method", "hist") return params def __init__( @@ -968,6 +980,28 @@ class XGBoostSklearnEstimator(SKLearnEstimator, LGBMEstimator): return XGBoostEstimator._callbacks(start_time, deadline) +class XGBoostLimitDepthEstimator(XGBoostSklearnEstimator): + """The class for tuning XGBoost with limited depth, using sklearn API.""" + + @classmethod + def search_space(cls, data_size, **params): + space = XGBoostEstimator.search_space(data_size) + space.pop("max_leaves") + upper = max(6, int(np.log2(data_size))) + space["max_depth"] = { + "domain": tune.randint(lower=1, upper=min(upper, 16)), + "init_value": 6, + "low_cost_init_value": 1, + } + space["learning_rate"]["init_value"] = 0.3 + space["n_estimators"]["init_value"] = 10 + return space + + @classmethod + def cost_relative2lgbm(cls): + return 64 + + class RandomForestEstimator(SKLearnEstimator, LGBMEstimator): """The class for tuning Random Forest.""" diff --git a/flaml/searcher/flow2.py b/flaml/searcher/flow2.py index 4705d391d3..7ee47c01e8 100644 --- a/flaml/searcher/flow2.py +++ b/flaml/searcher/flow2.py @@ -129,11 +129,11 @@ class FLOW2(Searcher): sampler = sampler.get_sampler() if str(sampler) == "Uniform": self._step_lb = min( - self._step_lb, q / (domain.upper - domain.lower) + self._step_lb, q / (domain.upper - domain.lower + 1) ) elif isinstance(domain, sample.Integer) and str(sampler) == "Uniform": self._step_lb = min( - self._step_lb, 1.0 / (domain.upper - 1 - domain.lower) + self._step_lb, 1.0 / (domain.upper - domain.lower) ) if isinstance(domain, sample.Categorical): if not domain.ordered: diff --git a/notebook/flaml_automl.ipynb b/notebook/flaml_automl.ipynb index affadc81a4..52a678f125 100644 --- a/notebook/flaml_automl.ipynb +++ b/notebook/flaml_automl.ipynb @@ -72,7 +72,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "load dataset from ./openml_ds1169.pkl\n", + "download dataset from openml\n", "Dataset name: airlines\n", "X_train.shape: (404537, 7), y_train.shape: (404537,);\n", "X_test.shape: (134846, 7), y_test.shape: (134846,)\n" @@ -93,7 +93,7 @@ }, "source": [ "### Run FLAML\n", - "In the FLAML automl run configuration, users can specify the task type, time budget, error metric, learner list, whether to subsample, resampling strategy type, and so on. All these arguments have default values which will be used if users do not provide them. For example, the default classifiers are `['lgbm', 'xgboost', 'catboost', 'rf', 'extra_tree', 'lrl1']`. " + "In the FLAML automl run configuration, users can specify the task type, time budget, error metric, learner list, whether to subsample, resampling strategy type, and so on. All these arguments have default values which will be used if users do not provide them. For example, the default classifiers are `['lgbm', 'xgboost', 'xgb_limitdepth', 'catboost', 'rf', 'extra_tree', 'lrl1']`. " ] }, { @@ -147,149 +147,177 @@ "name": "stderr", "output_type": "stream", "text": [ - "[flaml.automl: 11-02 19:22:53] {1483} INFO - Data split method: stratified\n", - "[flaml.automl: 11-02 19:22:53] {1487} INFO - Evaluation method: holdout\n", - "[flaml.automl: 11-02 19:22:53] {1537} INFO - Minimizing error metric: 1-accuracy\n", - "[flaml.automl: 11-02 19:22:54] {1574} INFO - List of ML learners in AutoML Run: ['lgbm', 'rf', 'catboost', 'xgboost', 'extra_tree', 'lrl1']\n", - "[flaml.automl: 11-02 19:22:54] {1816} INFO - iteration 0, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:58] {1933} INFO - Estimated sufficient time budget=1538089s. Estimated necessary time budget=27916s.\n", - "[flaml.automl: 11-02 19:22:58] {2013} INFO - at 5.6s,\testimator lgbm's best error=0.3777,\tbest estimator lgbm's best error=0.3777\n", - "[flaml.automl: 11-02 19:22:58] {1816} INFO - iteration 1, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:58] {2013} INFO - at 5.7s,\testimator lgbm's best error=0.3759,\tbest estimator lgbm's best error=0.3759\n", - "[flaml.automl: 11-02 19:22:58] {1816} INFO - iteration 2, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:58] {2013} INFO - at 5.8s,\testimator lgbm's best error=0.3759,\tbest estimator lgbm's best error=0.3759\n", - "[flaml.automl: 11-02 19:22:58] {1816} INFO - iteration 3, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:58] {2013} INFO - at 5.8s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:22:58] {1816} INFO - iteration 4, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:58] {2013} INFO - at 6.0s,\testimator lgbm's best error=0.3588,\tbest estimator lgbm's best error=0.3588\n", - "[flaml.automl: 11-02 19:22:58] {1816} INFO - iteration 5, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:58] {2013} INFO - at 6.1s,\testimator lgbm's best error=0.3588,\tbest estimator lgbm's best error=0.3588\n", - "[flaml.automl: 11-02 19:22:58] {1816} INFO - iteration 6, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:59] {2013} INFO - at 6.5s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", - "[flaml.automl: 11-02 19:22:59] {1816} INFO - iteration 7, current learner lgbm\n", - "[flaml.automl: 11-02 19:22:59] {2013} INFO - at 6.7s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", - "[flaml.automl: 11-02 19:22:59] {1816} INFO - iteration 8, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:00] {2013} INFO - at 7.8s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", - "[flaml.automl: 11-02 19:23:00] {1816} INFO - iteration 9, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:02] {2013} INFO - at 9.2s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", - "[flaml.automl: 11-02 19:23:02] {1816} INFO - iteration 10, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:02] {2013} INFO - at 10.0s,\testimator lgbm's best error=0.3542,\tbest estimator lgbm's best error=0.3542\n", - "[flaml.automl: 11-02 19:23:02] {1816} INFO - iteration 11, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:04] {2013} INFO - at 12.2s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:04] {1816} INFO - iteration 12, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:05] {2013} INFO - at 13.1s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:05] {1816} INFO - iteration 13, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:10] {2013} INFO - at 18.1s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:10] {1816} INFO - iteration 14, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:12] {2013} INFO - at 19.3s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:12] {1816} INFO - iteration 15, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:12] {2013} INFO - at 19.7s,\testimator xgboost's best error=0.3787,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:12] {1816} INFO - iteration 16, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:13] {2013} INFO - at 20.8s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:13] {1816} INFO - iteration 17, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:13] {2013} INFO - at 20.9s,\testimator xgboost's best error=0.3649,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:13] {1816} INFO - iteration 18, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:13] {2013} INFO - at 21.0s,\testimator xgboost's best error=0.3649,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:13] {1816} INFO - iteration 19, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:13] {2013} INFO - at 21.1s,\testimator xgboost's best error=0.3649,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:13] {1816} INFO - iteration 20, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:13] {2013} INFO - at 21.2s,\testimator xgboost's best error=0.3629,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:13] {1816} INFO - iteration 21, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:18] {2013} INFO - at 25.9s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:18] {1816} INFO - iteration 22, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:18] {2013} INFO - at 26.0s,\testimator xgboost's best error=0.3629,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:18] {1816} INFO - iteration 23, current learner xgboost\n", - "[flaml.automl: 11-02 19:23:18] {2013} INFO - at 26.1s,\testimator xgboost's best error=0.3629,\tbest estimator lgbm's best error=0.3507\n", - "[flaml.automl: 11-02 19:23:18] {1816} INFO - iteration 24, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:29] {2013} INFO - at 36.7s,\testimator lgbm's best error=0.3404,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:29] {1816} INFO - iteration 25, current learner extra_tree\n", - "[flaml.automl: 11-02 19:23:29] {2013} INFO - at 36.8s,\testimator extra_tree's best error=0.3788,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:29] {1816} INFO - iteration 26, current learner extra_tree\n", - "[flaml.automl: 11-02 19:23:29] {2013} INFO - at 36.9s,\testimator extra_tree's best error=0.3788,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:29] {1816} INFO - iteration 27, current learner extra_tree\n", - "[flaml.automl: 11-02 19:23:29] {2013} INFO - at 37.0s,\testimator extra_tree's best error=0.3774,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:29] {1816} INFO - iteration 28, current learner rf\n", - "[flaml.automl: 11-02 19:23:29] {2013} INFO - at 37.2s,\testimator rf's best error=0.3765,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:29] {1816} INFO - iteration 29, current learner rf\n", - "[flaml.automl: 11-02 19:23:30] {2013} INFO - at 37.4s,\testimator rf's best error=0.3721,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:30] {1816} INFO - iteration 30, current learner rf\n", - "[flaml.automl: 11-02 19:23:30] {2013} INFO - at 37.6s,\testimator rf's best error=0.3721,\tbest estimator lgbm's best error=0.3404\n", - "[flaml.automl: 11-02 19:23:30] {1816} INFO - iteration 31, current learner lgbm\n", - "[flaml.automl: 11-02 19:23:51] {2013} INFO - at 59.1s,\testimator lgbm's best error=0.3343,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:23:51] {1816} INFO - iteration 32, current learner rf\n", - "[flaml.automl: 11-02 19:23:52] {2013} INFO - at 59.3s,\testimator rf's best error=0.3721,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:23:52] {1816} INFO - iteration 33, current learner extra_tree\n", - "[flaml.automl: 11-02 19:23:52] {2013} INFO - at 59.4s,\testimator extra_tree's best error=0.3774,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:23:52] {1816} INFO - iteration 34, current learner lgbm\n", - "[flaml.automl: 11-02 19:24:03] {2013} INFO - at 70.8s,\testimator lgbm's best error=0.3343,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:03] {1816} INFO - iteration 35, current learner rf\n", - "[flaml.automl: 11-02 19:24:03] {2013} INFO - at 70.9s,\testimator rf's best error=0.3721,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:03] {1816} INFO - iteration 36, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:03] {2013} INFO - at 71.2s,\testimator extra_tree's best error=0.3768,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:03] {1816} INFO - iteration 37, current learner rf\n", - "[flaml.automl: 11-02 19:24:04] {2013} INFO - at 71.3s,\testimator rf's best error=0.3687,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:04] {1816} INFO - iteration 38, current learner xgboost\n", - "[flaml.automl: 11-02 19:24:04] {2013} INFO - at 71.5s,\testimator xgboost's best error=0.3629,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:04] {1816} INFO - iteration 39, current learner rf\n", - "[flaml.automl: 11-02 19:24:04] {2013} INFO - at 71.7s,\testimator rf's best error=0.3687,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:04] {1816} INFO - iteration 40, current learner xgboost\n", - "[flaml.automl: 11-02 19:24:04] {2013} INFO - at 72.0s,\testimator xgboost's best error=0.3605,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:04] {1816} INFO - iteration 41, current learner xgboost\n", - "[flaml.automl: 11-02 19:24:05] {2013} INFO - at 72.2s,\testimator xgboost's best error=0.3586,\tbest estimator lgbm's best error=0.3343\n", - "[flaml.automl: 11-02 19:24:05] {1816} INFO - iteration 42, current learner lgbm\n", - "[flaml.automl: 11-02 19:24:16] {2013} INFO - at 84.2s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:16] {1816} INFO - iteration 43, current learner xgboost\n", - "[flaml.automl: 11-02 19:24:17] {2013} INFO - at 84.5s,\testimator xgboost's best error=0.3586,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:17] {1816} INFO - iteration 44, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:17] {2013} INFO - at 84.6s,\testimator extra_tree's best error=0.3751,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:17] {1816} INFO - iteration 45, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:17] {2013} INFO - at 84.8s,\testimator extra_tree's best error=0.3751,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:17] {1816} INFO - iteration 46, current learner rf\n", - "[flaml.automl: 11-02 19:24:17] {2013} INFO - at 84.9s,\testimator rf's best error=0.3687,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:17] {1816} INFO - iteration 47, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:17] {2013} INFO - at 85.1s,\testimator extra_tree's best error=0.3751,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:17] {1816} INFO - iteration 48, current learner lgbm\n", - "[flaml.automl: 11-02 19:24:40] {2013} INFO - at 107.3s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:40] {1816} INFO - iteration 49, current learner xgboost\n", - "[flaml.automl: 11-02 19:24:40] {2013} INFO - at 107.5s,\testimator xgboost's best error=0.3585,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:40] {1816} INFO - iteration 50, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:40] {2013} INFO - at 107.8s,\testimator extra_tree's best error=0.3635,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:40] {1816} INFO - iteration 51, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:40] {2013} INFO - at 107.9s,\testimator extra_tree's best error=0.3635,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:40] {1816} INFO - iteration 52, current learner extra_tree\n", - "[flaml.automl: 11-02 19:24:40] {2013} INFO - at 108.1s,\testimator extra_tree's best error=0.3635,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:40] {1816} INFO - iteration 53, current learner lgbm\n", - "[flaml.automl: 11-02 19:24:48] {2013} INFO - at 115.6s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:24:48] {1816} INFO - iteration 54, current learner lgbm\n", - "[flaml.automl: 11-02 19:25:08] {2013} INFO - at 136.2s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:08] {1816} INFO - iteration 55, current learner extra_tree\n", - "[flaml.automl: 11-02 19:25:09] {2013} INFO - at 136.4s,\testimator extra_tree's best error=0.3635,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:09] {1816} INFO - iteration 56, current learner rf\n", - "[flaml.automl: 11-02 19:25:09] {2013} INFO - at 136.5s,\testimator rf's best error=0.3687,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:09] {1816} INFO - iteration 57, current learner xgboost\n", - "[flaml.automl: 11-02 19:25:09] {2013} INFO - at 136.9s,\testimator xgboost's best error=0.3585,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:09] {1816} INFO - iteration 58, current learner extra_tree\n", - "[flaml.automl: 11-02 19:25:09] {2013} INFO - at 137.2s,\testimator extra_tree's best error=0.3615,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:09] {1816} INFO - iteration 59, current learner lgbm\n", - "[flaml.automl: 11-02 19:25:13] {2013} INFO - at 140.8s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:13] {1816} INFO - iteration 60, current learner xgboost\n", - "[flaml.automl: 11-02 19:25:13] {2013} INFO - at 141.1s,\testimator xgboost's best error=0.3585,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:25:13] {1816} INFO - iteration 61, current learner lgbm\n", - "[flaml.automl: 11-02 19:26:04] {2013} INFO - at 192.1s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:26:04] {1816} INFO - iteration 62, current learner extra_tree\n", - "[flaml.automl: 11-02 19:26:05] {2013} INFO - at 192.3s,\testimator extra_tree's best error=0.3615,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:26:05] {1816} INFO - iteration 63, current learner extra_tree\n", - "[flaml.automl: 11-02 19:26:05] {2013} INFO - at 192.5s,\testimator extra_tree's best error=0.3615,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:26:05] {1816} INFO - iteration 64, current learner lgbm\n", - "[flaml.automl: 11-02 19:27:03] {2013} INFO - at 250.7s,\testimator lgbm's best error=0.3296,\tbest estimator lgbm's best error=0.3296\n", - "[flaml.automl: 11-02 19:27:14] {2230} INFO - retrain lgbm for 11.0s\n", - "[flaml.automl: 11-02 19:27:14] {2237} INFO - retrained model: LGBMClassifier(colsample_bytree=0.7263265270618353,\n", - " learning_rate=0.19240592731562967, max_bin=511,\n", - " min_child_samples=101, n_estimators=334, num_leaves=50,\n", - " reg_alpha=0.042474252908075376, reg_lambda=0.44574701224719,\n", + "[flaml.automl: 11-23 01:33:02] {1861} INFO - task = classification\n", + "[flaml.automl: 11-23 01:33:02] {1863} INFO - Data split method: stratified\n", + "[flaml.automl: 11-23 01:33:02] {1867} INFO - Evaluation method: holdout\n", + "[flaml.automl: 11-23 01:33:02] {1933} INFO - Minimizing error metric: 1-accuracy\n", + "[flaml.automl: 11-23 01:33:03] {1985} INFO - List of ML learners in AutoML Run: ['lgbm', 'rf', 'catboost', 'xgboost', 'extra_tree', 'xgb_limitdepth', 'lrl1']\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 0, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2337} INFO - Estimated sufficient time budget=53519s. Estimated necessary time budget=1314s.\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.3s,\testimator lgbm's best error=0.3777,\tbest estimator lgbm's best error=0.3777\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 1, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.4s,\testimator lgbm's best error=0.3759,\tbest estimator lgbm's best error=0.3759\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 2, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.4s,\testimator lgbm's best error=0.3759,\tbest estimator lgbm's best error=0.3759\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 3, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.5s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 4, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.6s,\testimator lgbm's best error=0.3588,\tbest estimator lgbm's best error=0.3588\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 5, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.6s,\testimator lgbm's best error=0.3588,\tbest estimator lgbm's best error=0.3588\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 6, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:03] {2417} INFO - at 1.8s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:03] {2223} INFO - iteration 7, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 1.9s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 8, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.2s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 9, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.3s,\testimator xgboost's best error=0.3787,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 10, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.3s,\testimator xgboost's best error=0.3649,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 11, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.3s,\testimator xgboost's best error=0.3649,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 12, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.4s,\testimator xgboost's best error=0.3649,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 13, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.4s,\testimator xgboost's best error=0.3629,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 14, current learner extra_tree\n", + "[flaml.automl: 11-23 01:33:04] {2417} INFO - at 2.8s,\testimator extra_tree's best error=0.3773,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:04] {2223} INFO - iteration 15, current learner rf\n", + "[flaml.automl: 11-23 01:33:05] {2417} INFO - at 3.1s,\testimator rf's best error=0.3787,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:05] {2223} INFO - iteration 16, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:05] {2417} INFO - at 3.7s,\testimator lgbm's best error=0.3555,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:05] {2223} INFO - iteration 17, current learner extra_tree\n", + "[flaml.automl: 11-23 01:33:06] {2417} INFO - at 4.2s,\testimator extra_tree's best error=0.3762,\tbest estimator lgbm's best error=0.3555\n", + "[flaml.automl: 11-23 01:33:06] {2223} INFO - iteration 18, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:06] {2417} INFO - at 4.4s,\testimator lgbm's best error=0.3542,\tbest estimator lgbm's best error=0.3542\n", + "[flaml.automl: 11-23 01:33:06] {2223} INFO - iteration 19, current learner rf\n", + "[flaml.automl: 11-23 01:33:07] {2417} INFO - at 4.9s,\testimator rf's best error=0.3736,\tbest estimator lgbm's best error=0.3542\n", + "[flaml.automl: 11-23 01:33:07] {2223} INFO - iteration 20, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:07] {2417} INFO - at 5.5s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", + "[flaml.automl: 11-23 01:33:07] {2223} INFO - iteration 21, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:07] {2417} INFO - at 5.7s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", + "[flaml.automl: 11-23 01:33:07] {2223} INFO - iteration 22, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:10] {2417} INFO - at 7.8s,\testimator lgbm's best error=0.3507,\tbest estimator lgbm's best error=0.3507\n", + "[flaml.automl: 11-23 01:33:10] {2223} INFO - iteration 23, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:11] {2417} INFO - at 9.3s,\testimator lgbm's best error=0.3404,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:11] {2223} INFO - iteration 24, current learner catboost\n", + "[flaml.automl: 11-23 01:33:12] {2417} INFO - at 10.2s,\testimator catboost's best error=0.3587,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:12] {2223} INFO - iteration 25, current learner catboost\n", + "[flaml.automl: 11-23 01:33:12] {2417} INFO - at 10.5s,\testimator catboost's best error=0.3587,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:12] {2223} INFO - iteration 26, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:12] {2417} INFO - at 10.5s,\testimator xgboost's best error=0.3629,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:12] {2223} INFO - iteration 27, current learner catboost\n", + "[flaml.automl: 11-23 01:33:15] {2417} INFO - at 13.8s,\testimator catboost's best error=0.3587,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:15] {2223} INFO - iteration 28, current learner catboost\n", + "[flaml.automl: 11-23 01:33:17] {2417} INFO - at 15.2s,\testimator catboost's best error=0.3496,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:17] {2223} INFO - iteration 29, current learner xgboost\n", + "[flaml.automl: 11-23 01:33:19] {2417} INFO - at 17.5s,\testimator xgboost's best error=0.3625,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:19] {2223} INFO - iteration 30, current learner catboost\n", + "[flaml.automl: 11-23 01:33:20] {2417} INFO - at 18.6s,\testimator catboost's best error=0.3471,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:20] {2223} INFO - iteration 31, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:25] {2417} INFO - at 23.0s,\testimator lgbm's best error=0.3404,\tbest estimator lgbm's best error=0.3404\n", + "[flaml.automl: 11-23 01:33:25] {2223} INFO - iteration 32, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:28] {2417} INFO - at 26.4s,\testimator lgbm's best error=0.3312,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:28] {2223} INFO - iteration 33, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:40] {2417} INFO - at 37.8s,\testimator lgbm's best error=0.3312,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:40] {2223} INFO - iteration 34, current learner catboost\n", + "[flaml.automl: 11-23 01:33:51] {2417} INFO - at 49.0s,\testimator catboost's best error=0.3471,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:51] {2223} INFO - iteration 35, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:55] {2417} INFO - at 53.3s,\testimator lgbm's best error=0.3312,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:55] {2223} INFO - iteration 36, current learner rf\n", + "[flaml.automl: 11-23 01:33:55] {2417} INFO - at 53.8s,\testimator rf's best error=0.3706,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:55] {2223} INFO - iteration 37, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 53.9s,\testimator xgb_limitdepth's best error=0.3630,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 38, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 53.9s,\testimator xgb_limitdepth's best error=0.3630,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 39, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 54.0s,\testimator xgb_limitdepth's best error=0.3630,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 40, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 54.1s,\testimator xgb_limitdepth's best error=0.3611,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 41, current learner rf\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 54.6s,\testimator rf's best error=0.3706,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 42, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 54.7s,\testimator xgb_limitdepth's best error=0.3611,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 43, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:33:56] {2417} INFO - at 54.7s,\testimator xgb_limitdepth's best error=0.3611,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:56] {2223} INFO - iteration 44, current learner lgbm\n", + "[flaml.automl: 11-23 01:33:59] {2417} INFO - at 57.8s,\testimator lgbm's best error=0.3312,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:33:59] {2223} INFO - iteration 45, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:34:00] {2417} INFO - at 58.0s,\testimator xgb_limitdepth's best error=0.3609,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:34:00] {2223} INFO - iteration 46, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:34:00] {2417} INFO - at 58.1s,\testimator xgb_limitdepth's best error=0.3603,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:34:00] {2223} INFO - iteration 47, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:34:00] {2417} INFO - at 58.3s,\testimator xgb_limitdepth's best error=0.3603,\tbest estimator lgbm's best error=0.3312\n", + "[flaml.automl: 11-23 01:34:00] {2223} INFO - iteration 48, current learner lgbm\n", + "[flaml.automl: 11-23 01:34:05] {2417} INFO - at 63.3s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:05] {2223} INFO - iteration 49, current learner lrl1\n", + "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/_sag.py:354: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " ConvergenceWarning,\n", + "[flaml.automl: 11-23 01:34:05] {2417} INFO - at 63.5s,\testimator lrl1's best error=0.4338,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:05] {2223} INFO - iteration 50, current learner lrl1\n", + "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/_sag.py:354: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " ConvergenceWarning,\n", + "[flaml.automl: 11-23 01:34:05] {2417} INFO - at 63.7s,\testimator lrl1's best error=0.4338,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:05] {2223} INFO - iteration 51, current learner lrl1\n", + "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/_sag.py:354: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " ConvergenceWarning,\n", + "[flaml.automl: 11-23 01:34:06] {2417} INFO - at 64.1s,\testimator lrl1's best error=0.4338,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:06] {2223} INFO - iteration 52, current learner lrl1\n", + "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/_sag.py:354: ConvergenceWarning: The max_iter was reached which means the coef_ did not converge\n", + " ConvergenceWarning,\n", + "[flaml.automl: 11-23 01:34:07] {2417} INFO - at 64.9s,\testimator lrl1's best error=0.4333,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:07] {2223} INFO - iteration 53, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:34:07] {2417} INFO - at 65.1s,\testimator xgb_limitdepth's best error=0.3603,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:07] {2223} INFO - iteration 54, current learner lgbm\n", + "[flaml.automl: 11-23 01:34:09] {2417} INFO - at 67.3s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:09] {2223} INFO - iteration 55, current learner lgbm\n", + "[flaml.automl: 11-23 01:34:21] {2417} INFO - at 79.2s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:21] {2223} INFO - iteration 56, current learner lgbm\n", + "[flaml.automl: 11-23 01:34:23] {2417} INFO - at 81.2s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:23] {2223} INFO - iteration 57, current learner lgbm\n", + "[flaml.automl: 11-23 01:34:42] {2417} INFO - at 100.2s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:42] {2223} INFO - iteration 58, current learner extra_tree\n", + "[flaml.automl: 11-23 01:34:42] {2417} INFO - at 100.7s,\testimator extra_tree's best error=0.3762,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:34:42] {2223} INFO - iteration 59, current learner lgbm\n", + "[flaml.automl: 11-23 01:35:24] {2417} INFO - at 142.3s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:24] {2223} INFO - iteration 60, current learner rf\n", + "[flaml.automl: 11-23 01:35:24] {2417} INFO - at 142.6s,\testimator rf's best error=0.3697,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:24] {2223} INFO - iteration 61, current learner xgboost\n", + "[flaml.automl: 11-23 01:35:24] {2417} INFO - at 142.7s,\testimator xgboost's best error=0.3625,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:24] {2223} INFO - iteration 62, current learner lgbm\n", + "[flaml.automl: 11-23 01:35:25] {2417} INFO - at 143.5s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:25] {2223} INFO - iteration 63, current learner extra_tree\n", + "[flaml.automl: 11-23 01:35:26] {2417} INFO - at 143.8s,\testimator extra_tree's best error=0.3762,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:26] {2223} INFO - iteration 64, current learner lgbm\n", + "[flaml.automl: 11-23 01:35:28] {2417} INFO - at 146.3s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:28] {2223} INFO - iteration 65, current learner extra_tree\n", + "[flaml.automl: 11-23 01:35:28] {2417} INFO - at 146.6s,\testimator extra_tree's best error=0.3762,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:28] {2223} INFO - iteration 66, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:35:28] {2417} INFO - at 146.8s,\testimator xgb_limitdepth's best error=0.3603,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:28] {2223} INFO - iteration 67, current learner lgbm\n", + "[flaml.automl: 11-23 01:35:42] {2417} INFO - at 159.9s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:42] {2223} INFO - iteration 68, current learner rf\n", + "[flaml.automl: 11-23 01:35:42] {2417} INFO - at 160.3s,\testimator rf's best error=0.3697,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:42] {2223} INFO - iteration 69, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:35:42] {2417} INFO - at 160.4s,\testimator xgb_limitdepth's best error=0.3602,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:42] {2223} INFO - iteration 70, current learner rf\n", + "[flaml.automl: 11-23 01:35:42] {2417} INFO - at 160.7s,\testimator rf's best error=0.3697,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:42] {2223} INFO - iteration 71, current learner lgbm\n", + "[flaml.automl: 11-23 01:35:45] {2417} INFO - at 162.8s,\testimator lgbm's best error=0.3304,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:45] {2223} INFO - iteration 72, current learner catboost\n", + "[flaml.automl: 11-23 01:35:49] {2417} INFO - at 167.6s,\testimator catboost's best error=0.3369,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:49] {2223} INFO - iteration 73, current learner catboost\n", + "[flaml.automl: 11-23 01:35:54] {2417} INFO - at 172.5s,\testimator catboost's best error=0.3369,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:35:54] {2223} INFO - iteration 74, current learner catboost\n", + "[flaml.automl: 11-23 01:37:02] {2417} INFO - at 240.1s,\testimator catboost's best error=0.3369,\tbest estimator lgbm's best error=0.3304\n", + "[flaml.automl: 11-23 01:37:11] {2629} INFO - retrain lgbm for 9.3s\n", + "[flaml.automl: 11-23 01:37:11] {2634} INFO - retrained model: LGBMClassifier(learning_rate=0.10320258241974468, max_bin=1023,\n", + " min_child_samples=36, n_estimators=1071, num_leaves=25,\n", + " reg_alpha=0.0009765625, reg_lambda=0.08547376339713011,\n", " verbose=-1)\n", - "[flaml.automl: 11-02 19:27:14] {1598} INFO - fit succeeded\n", - "[flaml.automl: 11-02 19:27:14] {1599} INFO - Time taken to find the best model: 84.20605731010437\n" + "[flaml.automl: 11-23 01:37:11] {2014} INFO - fit succeeded\n", + "[flaml.automl: 11-23 01:37:11] {2016} INFO - Time taken to find the best model: 63.26783061027527\n" ] } ], @@ -324,9 +352,9 @@ "output_type": "stream", "text": [ "Best ML leaner: lgbm\n", - "Best hyperparmeter config: {'n_estimators': 334, 'num_leaves': 50, 'min_child_samples': 101, 'learning_rate': 0.19240592731562967, 'log_max_bin': 9, 'colsample_bytree': 0.7263265270618353, 'reg_alpha': 0.042474252908075376, 'reg_lambda': 0.44574701224719, 'FLAML_sample_size': 364083}\n", - "Best accuracy on validation data: 0.6704\n", - "Training duration of best run: 10.96 s\n" + "Best hyperparmeter config: {'n_estimators': 1071, 'num_leaves': 25, 'min_child_samples': 36, 'learning_rate': 0.10320258241974468, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.08547376339713011, 'FLAML_sample_size': 364083}\n", + "Best accuracy on validation data: 0.6696\n", + "Training duration of best run: 9.274 s\n" ] } ], @@ -350,10 +378,9 @@ { "data": { "text/plain": [ - "LGBMClassifier(colsample_bytree=0.7263265270618353,\n", - " learning_rate=0.19240592731562967, max_bin=511,\n", - " min_child_samples=101, n_estimators=334, num_leaves=50,\n", - " reg_alpha=0.042474252908075376, reg_lambda=0.44574701224719,\n", + "LGBMClassifier(learning_rate=0.10320258241974468, max_bin=1023,\n", + " min_child_samples=36, n_estimators=1071, num_leaves=25,\n", + " reg_alpha=0.0009765625, reg_lambda=0.08547376339713011,\n", " verbose=-1)" ] }, @@ -438,9 +465,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "accuracy = 0.6713287750470908\n", - "roc_auc = 0.7249878990284184\n", - "log_loss = 0.6035815508574554\n" + "accuracy = 0.6720332824110467\n", + "roc_auc = 0.7253276908529442\n", + "log_loss = 0.6034449031876942\n" ] } ], @@ -480,15 +507,15 @@ "output_type": "stream", "text": [ "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 4, 'num_leaves': 4, 'min_child_samples': 20, 'learning_rate': 0.09999999999999995, 'log_max_bin': 8, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 1.0, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 4, 'num_leaves': 4, 'min_child_samples': 20, 'learning_rate': 0.09999999999999995, 'log_max_bin': 8, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 1.0, 'FLAML_sample_size': 10000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 4, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.2284139062380884, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242716, 'reg_lambda': 7.624911621832711, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 4, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.2284139062380884, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242716, 'reg_lambda': 7.624911621832711, 'FLAML_sample_size': 10000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 4, 'num_leaves': 25, 'min_child_samples': 12, 'learning_rate': 0.5082200481556807, 'log_max_bin': 8, 'colsample_bytree': 0.9696263001275751, 'reg_alpha': 0.0028107036379524425, 'reg_lambda': 3.716898117989413, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 4, 'num_leaves': 25, 'min_child_samples': 12, 'learning_rate': 0.5082200481556807, 'log_max_bin': 8, 'colsample_bytree': 0.9696263001275751, 'reg_alpha': 0.0028107036379524425, 'reg_lambda': 3.716898117989413, 'FLAML_sample_size': 10000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 23, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.2284139062380884, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242718, 'reg_lambda': 7.624911621832699, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 23, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.2284139062380884, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242718, 'reg_lambda': 7.624911621832699, 'FLAML_sample_size': 10000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357107, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357107, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 10000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 40000, 'Current Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357107, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 40000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357107, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 40000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 40000, 'Current Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813889, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749608, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 40000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813889, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749608, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 40000}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 364083, 'Current Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813889, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749608, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 364083}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813889, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749608, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 364083}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 364083, 'Current Hyper-parameters': {'n_estimators': 654, 'num_leaves': 27, 'min_child_samples': 61, 'learning_rate': 0.07058351776020065, 'log_max_bin': 10, 'colsample_bytree': 0.8629551479851468, 'reg_alpha': 0.016562972790870267, 'reg_lambda': 0.25883390536609663, 'FLAML_sample_size': 364083}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 654, 'num_leaves': 27, 'min_child_samples': 61, 'learning_rate': 0.07058351776020065, 'log_max_bin': 10, 'colsample_bytree': 0.8629551479851468, 'reg_alpha': 0.016562972790870267, 'reg_lambda': 0.25883390536609663, 'FLAML_sample_size': 364083}}\n", - "{'Current Learner': 'lgbm', 'Current Sample': 364083, 'Current Hyper-parameters': {'n_estimators': 334, 'num_leaves': 50, 'min_child_samples': 101, 'learning_rate': 0.19240592731562967, 'log_max_bin': 9, 'colsample_bytree': 0.7263265270618353, 'reg_alpha': 0.042474252908075376, 'reg_lambda': 0.44574701224719, 'FLAML_sample_size': 364083}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 334, 'num_leaves': 50, 'min_child_samples': 101, 'learning_rate': 0.19240592731562967, 'log_max_bin': 9, 'colsample_bytree': 0.7263265270618353, 'reg_alpha': 0.042474252908075376, 'reg_lambda': 0.44574701224719, 'FLAML_sample_size': 364083}}\n" + "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 4, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.22841390623808822, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242716, 'reg_lambda': 7.624911621832711, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 4, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.22841390623808822, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242716, 'reg_lambda': 7.624911621832711, 'FLAML_sample_size': 10000}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 4, 'num_leaves': 25, 'min_child_samples': 12, 'learning_rate': 0.5082200481556802, 'log_max_bin': 8, 'colsample_bytree': 0.9696263001275751, 'reg_alpha': 0.0028107036379524425, 'reg_lambda': 3.716898117989413, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 4, 'num_leaves': 25, 'min_child_samples': 12, 'learning_rate': 0.5082200481556802, 'log_max_bin': 8, 'colsample_bytree': 0.9696263001275751, 'reg_alpha': 0.0028107036379524425, 'reg_lambda': 3.716898117989413, 'FLAML_sample_size': 10000}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 23, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.22841390623808822, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242718, 'reg_lambda': 7.624911621832699, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 23, 'num_leaves': 14, 'min_child_samples': 15, 'learning_rate': 0.22841390623808822, 'log_max_bin': 9, 'colsample_bytree': 1.0, 'reg_alpha': 0.0014700173967242718, 'reg_lambda': 7.624911621832699, 'FLAML_sample_size': 10000}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 10000, 'Current Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357095, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 10000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357095, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 10000}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 40000, 'Current Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357095, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 40000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 101, 'num_leaves': 12, 'min_child_samples': 24, 'learning_rate': 0.07647794276357095, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001749539645587163, 'reg_lambda': 4.373760956394571, 'FLAML_sample_size': 40000}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 40000, 'Current Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813866, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749616, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 40000}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813866, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749616, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 40000}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 364083, 'Current Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813866, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749616, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 364083}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 361, 'num_leaves': 11, 'min_child_samples': 32, 'learning_rate': 0.13528717598813866, 'log_max_bin': 9, 'colsample_bytree': 0.9851977789068981, 'reg_alpha': 0.0038372002422749616, 'reg_lambda': 0.25113531892556773, 'FLAML_sample_size': 364083}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 364083, 'Current Hyper-parameters': {'n_estimators': 547, 'num_leaves': 46, 'min_child_samples': 60, 'learning_rate': 0.281323306091088, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001643352694266288, 'reg_lambda': 0.14719738747481906, 'FLAML_sample_size': 364083}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 547, 'num_leaves': 46, 'min_child_samples': 60, 'learning_rate': 0.281323306091088, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.001643352694266288, 'reg_lambda': 0.14719738747481906, 'FLAML_sample_size': 364083}}\n", + "{'Current Learner': 'lgbm', 'Current Sample': 364083, 'Current Hyper-parameters': {'n_estimators': 1071, 'num_leaves': 25, 'min_child_samples': 36, 'learning_rate': 0.10320258241974468, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.08547376339713011, 'FLAML_sample_size': 364083}, 'Best Learner': 'lgbm', 'Best Hyper-parameters': {'n_estimators': 1071, 'num_leaves': 25, 'min_child_samples': 36, 'learning_rate': 0.10320258241974468, 'log_max_bin': 10, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.08547376339713011, 'FLAML_sample_size': 364083}}\n" ] } ], @@ -511,7 +538,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -612,6 +639,14 @@ "execution_count": 16, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/site-packages/xgboost/sklearn.py:888: UserWarning: The use of label encoder in XGBClassifier is deprecated and will be removed in a future release. To remove this warning, do the following: 1) Pass option use_label_encoder=False when constructing XGBClassifier object; and 2) Encode your labels (y) as integers starting with 0, i.e. 0, 1, 2, ..., [num_class - 1].\n", + " warnings.warn(label_encoder_deprecation_msg, UserWarning)\n" + ] + }, { "data": { "text/plain": [ @@ -620,7 +655,7 @@ " importance_type='gain', interaction_constraints='',\n", " learning_rate=0.300000012, max_delta_step=0, max_depth=6,\n", " min_child_weight=1, missing=nan, monotone_constraints='()',\n", - " n_estimators=100, n_jobs=0, num_parallel_tree=1, random_state=0,\n", + " n_estimators=100, n_jobs=32, num_parallel_tree=1, random_state=0,\n", " reg_alpha=0, reg_lambda=1, scale_pos_weight=1, subsample=1,\n", " tree_method='exact', validate_parameters=1, verbosity=None)" ] @@ -656,7 +691,7 @@ "text": [ "default xgboost accuracy = 0.6676060098186078\n", "default lgbm accuracy = 0.6602346380315323\n", - "flaml (4min) accuracy = 0.6713287750470908\n" + "flaml (4min) accuracy = 0.6720332824110467\n" ] } ], @@ -833,66 +868,93 @@ "name": "stderr", "output_type": "stream", "text": [ - "[flaml.automl: 11-02 19:28:10] {1483} INFO - Data split method: stratified\n", - "[flaml.automl: 11-02 19:28:10] {1487} INFO - Evaluation method: holdout\n", - "[flaml.automl: 11-02 19:28:10] {1537} INFO - Minimizing error metric: 1-accuracy\n", - "[flaml.automl: 11-02 19:28:10] {1574} INFO - List of ML learners in AutoML Run: ['RGF', 'lgbm', 'rf', 'xgboost']\n", - "[flaml.automl: 11-02 19:28:10] {1816} INFO - iteration 0, current learner RGF\n", - "/home/dmx/miniconda2/envs/blend/lib/python3.8/site-packages/rgf/utils.py:225: UserWarning: Cannot find FastRGF executable files. FastRGF estimators will be unavailable for usage.\n", + "[flaml.automl: 11-23 01:37:21] {1861} INFO - task = classification\n", + "[flaml.automl: 11-23 01:37:21] {1863} INFO - Data split method: stratified\n", + "[flaml.automl: 11-23 01:37:21] {1867} INFO - Evaluation method: holdout\n", + "[flaml.automl: 11-23 01:37:22] {1933} INFO - Minimizing error metric: 1-accuracy\n", + "[flaml.automl: 11-23 01:37:22] {1985} INFO - List of ML learners in AutoML Run: ['RGF', 'lgbm', 'rf', 'xgboost']\n", + "[flaml.automl: 11-23 01:37:22] {2223} INFO - iteration 0, current learner RGF\n", + "/usr/local/lib/python3.7/site-packages/rgf/utils.py:224: UserWarning: Cannot find FastRGF executable files. FastRGF estimators will be unavailable for usage.\n", " warnings.warn(\"Cannot find FastRGF executable files. \"\n", - "[flaml.automl: 11-02 19:28:12] {1933} INFO - Estimated sufficient time budget=838163s. Estimated necessary time budget=838s.\n", - "[flaml.automl: 11-02 19:28:12] {2013} INFO - at 3.4s,\testimator RGF's best error=0.3840,\tbest estimator RGF's best error=0.3840\n", - "[flaml.automl: 11-02 19:28:12] {1816} INFO - iteration 1, current learner RGF\n", - "[flaml.automl: 11-02 19:28:14] {2013} INFO - at 4.6s,\testimator RGF's best error=0.3840,\tbest estimator RGF's best error=0.3840\n", - "[flaml.automl: 11-02 19:28:14] {1816} INFO - iteration 2, current learner RGF\n", - "[flaml.automl: 11-02 19:28:15] {2013} INFO - at 5.8s,\testimator RGF's best error=0.3840,\tbest estimator RGF's best error=0.3840\n", - "[flaml.automl: 11-02 19:28:15] {1816} INFO - iteration 3, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:15] {2013} INFO - at 5.9s,\testimator lgbm's best error=0.3777,\tbest estimator lgbm's best error=0.3777\n", - "[flaml.automl: 11-02 19:28:15] {1816} INFO - iteration 4, current learner RGF\n", - "[flaml.automl: 11-02 19:28:16] {2013} INFO - at 7.1s,\testimator RGF's best error=0.3840,\tbest estimator lgbm's best error=0.3777\n", - "[flaml.automl: 11-02 19:28:16] {1816} INFO - iteration 5, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:16] {2013} INFO - at 7.2s,\testimator lgbm's best error=0.3777,\tbest estimator lgbm's best error=0.3777\n", - "[flaml.automl: 11-02 19:28:16] {1816} INFO - iteration 6, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:16] {2013} INFO - at 7.3s,\testimator lgbm's best error=0.3777,\tbest estimator lgbm's best error=0.3777\n", - "[flaml.automl: 11-02 19:28:16] {1816} INFO - iteration 7, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:16] {2013} INFO - at 7.3s,\testimator lgbm's best error=0.3690,\tbest estimator lgbm's best error=0.3690\n", - "[flaml.automl: 11-02 19:28:16] {1816} INFO - iteration 8, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:16] {2013} INFO - at 7.4s,\testimator lgbm's best error=0.3690,\tbest estimator lgbm's best error=0.3690\n", - "[flaml.automl: 11-02 19:28:16] {1816} INFO - iteration 9, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:16] {2013} INFO - at 7.5s,\testimator lgbm's best error=0.3690,\tbest estimator lgbm's best error=0.3690\n", - "[flaml.automl: 11-02 19:28:16] {1816} INFO - iteration 10, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 7.6s,\testimator lgbm's best error=0.3690,\tbest estimator lgbm's best error=0.3690\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 11, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 7.7s,\testimator lgbm's best error=0.3690,\tbest estimator lgbm's best error=0.3690\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 12, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 7.9s,\testimator lgbm's best error=0.3650,\tbest estimator lgbm's best error=0.3650\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 13, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 8.0s,\testimator lgbm's best error=0.3650,\tbest estimator lgbm's best error=0.3650\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 14, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 8.2s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 15, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 8.4s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 16, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:17] {2013} INFO - at 8.5s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:17] {1816} INFO - iteration 17, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:18] {2013} INFO - at 8.7s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:18] {1816} INFO - iteration 18, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:18] {2013} INFO - at 8.8s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:18] {1816} INFO - iteration 19, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:18] {2013} INFO - at 9.0s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:18] {1816} INFO - iteration 20, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:18] {2013} INFO - at 9.1s,\testimator lgbm's best error=0.3644,\tbest estimator lgbm's best error=0.3644\n", - "[flaml.automl: 11-02 19:28:18] {1816} INFO - iteration 21, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:19] {2013} INFO - at 10.4s,\testimator lgbm's best error=0.3630,\tbest estimator lgbm's best error=0.3630\n", - "[flaml.automl: 11-02 19:28:22] {2230} INFO - retrain lgbm for 2.3s\n", - "[flaml.automl: 11-02 19:28:22] {2237} INFO - retrained model: LGBMClassifier(colsample_bytree=0.832361601243933,\n", - " learning_rate=0.1125645711212136, max_bin=1023,\n", - " min_child_samples=13, n_estimators=43, num_leaves=20,\n", - " reg_alpha=0.0018874193214614083, reg_lambda=0.3799695712161002,\n", + "[flaml.automl: 11-23 01:37:23] {2337} INFO - Estimated sufficient time budget=396003s. Estimated necessary time budget=396s.\n", + "[flaml.automl: 11-23 01:37:23] {2417} INFO - at 1.6s,\testimator RGF's best error=0.3787,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:23] {2223} INFO - iteration 1, current learner RGF\n", + "[flaml.automl: 11-23 01:37:23] {2417} INFO - at 2.2s,\testimator RGF's best error=0.3787,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:23] {2223} INFO - iteration 2, current learner RGF\n", + "[flaml.automl: 11-23 01:37:24] {2417} INFO - at 2.8s,\testimator RGF's best error=0.3787,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:24] {2223} INFO - iteration 3, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:24] {2417} INFO - at 2.9s,\testimator lgbm's best error=0.4459,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:24] {2223} INFO - iteration 4, current learner RGF\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.5s,\testimator RGF's best error=0.3787,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 5, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.6s,\testimator lgbm's best error=0.4459,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 6, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.6s,\testimator lgbm's best error=0.3787,\tbest estimator RGF's best error=0.3787\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 7, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.7s,\testimator lgbm's best error=0.3653,\tbest estimator lgbm's best error=0.3653\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 8, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.7s,\testimator lgbm's best error=0.3646,\tbest estimator lgbm's best error=0.3646\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 9, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.9s,\testimator lgbm's best error=0.3646,\tbest estimator lgbm's best error=0.3646\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 10, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 3.9s,\testimator lgbm's best error=0.3646,\tbest estimator lgbm's best error=0.3646\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 11, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 4.0s,\testimator lgbm's best error=0.3611,\tbest estimator lgbm's best error=0.3611\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 12, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 4.1s,\testimator lgbm's best error=0.3611,\tbest estimator lgbm's best error=0.3611\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 13, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 4.2s,\testimator lgbm's best error=0.3611,\tbest estimator lgbm's best error=0.3611\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 14, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:25] {2417} INFO - at 4.3s,\testimator lgbm's best error=0.3611,\tbest estimator lgbm's best error=0.3611\n", + "[flaml.automl: 11-23 01:37:25] {2223} INFO - iteration 15, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:26] {2417} INFO - at 4.4s,\testimator lgbm's best error=0.3611,\tbest estimator lgbm's best error=0.3611\n", + "[flaml.automl: 11-23 01:37:26] {2223} INFO - iteration 16, current learner RGF\n", + "[flaml.automl: 11-23 01:37:26] {2417} INFO - at 5.0s,\testimator RGF's best error=0.3787,\tbest estimator lgbm's best error=0.3611\n", + "[flaml.automl: 11-23 01:37:26] {2223} INFO - iteration 17, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:26] {2417} INFO - at 5.1s,\testimator lgbm's best error=0.3567,\tbest estimator lgbm's best error=0.3567\n", + "[flaml.automl: 11-23 01:37:26] {2223} INFO - iteration 18, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:26] {2417} INFO - at 5.2s,\testimator lgbm's best error=0.3537,\tbest estimator lgbm's best error=0.3537\n", + "[flaml.automl: 11-23 01:37:26] {2223} INFO - iteration 19, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:27] {2417} INFO - at 5.4s,\testimator lgbm's best error=0.3537,\tbest estimator lgbm's best error=0.3537\n", + "[flaml.automl: 11-23 01:37:27] {2223} INFO - iteration 20, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:27] {2417} INFO - at 5.6s,\testimator lgbm's best error=0.3537,\tbest estimator lgbm's best error=0.3537\n", + "[flaml.automl: 11-23 01:37:27] {2223} INFO - iteration 21, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:27] {2417} INFO - at 5.7s,\testimator lgbm's best error=0.3537,\tbest estimator lgbm's best error=0.3537\n", + "[flaml.automl: 11-23 01:37:27] {2223} INFO - iteration 22, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:27] {2417} INFO - at 5.9s,\testimator lgbm's best error=0.3537,\tbest estimator lgbm's best error=0.3537\n", + "[flaml.automl: 11-23 01:37:27] {2223} INFO - iteration 23, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:27] {2417} INFO - at 6.3s,\testimator lgbm's best error=0.3481,\tbest estimator lgbm's best error=0.3481\n", + "[flaml.automl: 11-23 01:37:27] {2223} INFO - iteration 24, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:28] {2417} INFO - at 6.7s,\testimator lgbm's best error=0.3481,\tbest estimator lgbm's best error=0.3481\n", + "[flaml.automl: 11-23 01:37:28] {2223} INFO - iteration 25, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:29] {2417} INFO - at 7.5s,\testimator lgbm's best error=0.3419,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:29] {2223} INFO - iteration 26, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:30] {2417} INFO - at 8.7s,\testimator lgbm's best error=0.3419,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:30] {2223} INFO - iteration 27, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.4s,\testimator lgbm's best error=0.3419,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 28, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.4s,\testimator xgboost's best error=0.3787,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 29, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.5s,\testimator xgboost's best error=0.3787,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 30, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.5s,\testimator xgboost's best error=0.3765,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 31, current learner rf\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.7s,\testimator rf's best error=0.3777,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 32, current learner rf\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.8s,\testimator rf's best error=0.3710,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 33, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 9.8s,\testimator xgboost's best error=0.3765,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:31] {2223} INFO - iteration 34, current learner rf\n", + "[flaml.automl: 11-23 01:37:31] {2417} INFO - at 10.0s,\testimator rf's best error=0.3710,\tbest estimator lgbm's best error=0.3419\n", + "[flaml.automl: 11-23 01:37:32] {2629} INFO - retrain lgbm for 0.6s\n", + "[flaml.automl: 11-23 01:37:32] {2634} INFO - retrained model: LGBMClassifier(colsample_bytree=0.6821331092849664,\n", + " learning_rate=0.2532267767742095, max_bin=255,\n", + " min_child_samples=3, n_estimators=188, num_leaves=9,\n", + " reg_alpha=0.0009765625, reg_lambda=0.05089268633400602,\n", " verbose=-1)\n", - "[flaml.automl: 11-02 19:28:22] {1598} INFO - fit succeeded\n", - "[flaml.automl: 11-02 19:28:22] {1599} INFO - Time taken to find the best model: 10.391593217849731\n", - "[flaml.automl: 11-02 19:28:22] {1610} WARNING - Time taken to find the best model is 104% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" + "[flaml.automl: 11-23 01:37:32] {2014} INFO - fit succeeded\n", + "[flaml.automl: 11-23 01:37:32] {2016} INFO - Time taken to find the best model: 7.508742332458496\n", + "[flaml.automl: 11-23 01:37:32] {2030} WARNING - Time taken to find the best model is 75% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" ] } ], @@ -962,106 +1024,129 @@ "name": "stderr", "output_type": "stream", "text": [ - "[flaml.automl: 11-02 19:28:22] {1483} INFO - Data split method: stratified\n", - "[flaml.automl: 11-02 19:28:22] {1487} INFO - Evaluation method: holdout\n", - "[flaml.automl: 11-02 19:28:23] {1537} INFO - Minimizing error metric: customized metric\n", - "[flaml.automl: 11-02 19:28:23] {1574} INFO - List of ML learners in AutoML Run: ['lgbm', 'rf', 'catboost', 'xgboost', 'extra_tree', 'lrl1']\n", - "[flaml.automl: 11-02 19:28:23] {1816} INFO - iteration 0, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:23] {1933} INFO - Estimated sufficient time budget=53001s. Estimated necessary time budget=962s.\n", - "[flaml.automl: 11-02 19:28:23] {2013} INFO - at 1.2s,\testimator lgbm's best error=0.6647,\tbest estimator lgbm's best error=0.6647\n", - "[flaml.automl: 11-02 19:28:23] {1816} INFO - iteration 1, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:23] {2013} INFO - at 1.4s,\testimator lgbm's best error=0.6647,\tbest estimator lgbm's best error=0.6647\n", - "[flaml.automl: 11-02 19:28:23] {1816} INFO - iteration 2, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:23] {2013} INFO - at 1.4s,\testimator lgbm's best error=0.6491,\tbest estimator lgbm's best error=0.6491\n", - "[flaml.automl: 11-02 19:28:23] {1816} INFO - iteration 3, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:23] {2013} INFO - at 1.6s,\testimator xgboost's best error=0.6672,\tbest estimator lgbm's best error=0.6491\n", - "[flaml.automl: 11-02 19:28:23] {1816} INFO - iteration 4, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:23] {2013} INFO - at 1.7s,\testimator lgbm's best error=0.6423,\tbest estimator lgbm's best error=0.6423\n", - "[flaml.automl: 11-02 19:28:23] {1816} INFO - iteration 5, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 1.8s,\testimator lgbm's best error=0.6423,\tbest estimator lgbm's best error=0.6423\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 6, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 1.9s,\testimator lgbm's best error=0.6423,\tbest estimator lgbm's best error=0.6423\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 7, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.0s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 8, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.1s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 9, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.2s,\testimator xgboost's best error=0.6672,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 10, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.3s,\testimator xgboost's best error=0.6500,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 11, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.4s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 12, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.5s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 13, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:24] {2013} INFO - at 2.6s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:24] {1816} INFO - iteration 14, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 2.8s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 15, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 2.9s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 16, current learner extra_tree\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 3.1s,\testimator extra_tree's best error=0.6599,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 17, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 3.2s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 18, current learner extra_tree\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 3.4s,\testimator extra_tree's best error=0.6457,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 19, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 3.5s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 20, current learner extra_tree\n", - "[flaml.automl: 11-02 19:28:25] {2013} INFO - at 3.6s,\testimator extra_tree's best error=0.6457,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:25] {1816} INFO - iteration 21, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:26] {2013} INFO - at 3.8s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", - "[flaml.automl: 11-02 19:28:26] {1816} INFO - iteration 22, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:26] {2013} INFO - at 4.0s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:26] {1816} INFO - iteration 23, current learner rf\n", - "[flaml.automl: 11-02 19:28:26] {2013} INFO - at 4.2s,\testimator rf's best error=0.6477,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:26] {1816} INFO - iteration 24, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:26] {2013} INFO - at 4.4s,\testimator xgboost's best error=0.6393,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:26] {1816} INFO - iteration 25, current learner extra_tree\n", - "[flaml.automl: 11-02 19:28:26] {2013} INFO - at 4.5s,\testimator extra_tree's best error=0.6457,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:26] {1816} INFO - iteration 26, current learner rf\n", - "[flaml.automl: 11-02 19:28:26] {2013} INFO - at 4.7s,\testimator rf's best error=0.6446,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:26] {1816} INFO - iteration 27, current learner extra_tree\n", - "[flaml.automl: 11-02 19:28:27] {2013} INFO - at 4.9s,\testimator extra_tree's best error=0.6439,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:27] {1816} INFO - iteration 28, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:27] {2013} INFO - at 5.1s,\testimator xgboost's best error=0.6342,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:27] {1816} INFO - iteration 29, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:27] {2013} INFO - at 5.4s,\testimator xgboost's best error=0.6342,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:27] {1816} INFO - iteration 30, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:27] {2013} INFO - at 5.5s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:27] {1816} INFO - iteration 31, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:27] {2013} INFO - at 5.7s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:27] {1816} INFO - iteration 32, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:28] {2013} INFO - at 5.9s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:28] {1816} INFO - iteration 33, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:28] {2013} INFO - at 6.2s,\testimator xgboost's best error=0.6342,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:28] {1816} INFO - iteration 34, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:28] {2013} INFO - at 6.3s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:28] {1816} INFO - iteration 35, current learner rf\n", - "[flaml.automl: 11-02 19:28:28] {2013} INFO - at 6.5s,\testimator rf's best error=0.6446,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:28] {1816} INFO - iteration 36, current learner extra_tree\n", - "[flaml.automl: 11-02 19:28:28] {2013} INFO - at 6.6s,\testimator extra_tree's best error=0.6439,\tbest estimator lgbm's best error=0.6335\n", - "[flaml.automl: 11-02 19:28:28] {1816} INFO - iteration 37, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:29] {2013} INFO - at 6.9s,\testimator xgboost's best error=0.6330,\tbest estimator xgboost's best error=0.6330\n", - "[flaml.automl: 11-02 19:28:29] {1816} INFO - iteration 38, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:29] {2013} INFO - at 7.1s,\testimator xgboost's best error=0.6330,\tbest estimator xgboost's best error=0.6330\n", - "[flaml.automl: 11-02 19:28:29] {1816} INFO - iteration 39, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:30] {2013} INFO - at 7.9s,\testimator lgbm's best error=0.6328,\tbest estimator lgbm's best error=0.6328\n", - "[flaml.automl: 11-02 19:28:30] {1816} INFO - iteration 40, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:30] {2013} INFO - at 8.1s,\testimator xgboost's best error=0.6330,\tbest estimator lgbm's best error=0.6328\n", - "[flaml.automl: 11-02 19:28:30] {1816} INFO - iteration 41, current learner xgboost\n", - "[flaml.automl: 11-02 19:28:30] {2013} INFO - at 8.4s,\testimator xgboost's best error=0.6330,\tbest estimator lgbm's best error=0.6328\n", - "[flaml.automl: 11-02 19:28:30] {1816} INFO - iteration 42, current learner lgbm\n", - "[flaml.automl: 11-02 19:28:31] {2013} INFO - at 9.4s,\testimator lgbm's best error=0.6241,\tbest estimator lgbm's best error=0.6241\n", - "[flaml.automl: 11-02 19:28:31] {1816} INFO - iteration 43, current learner catboost\n", - "[flaml.automl: 11-02 19:28:32] {2013} INFO - at 10.7s,\testimator catboost's best error=0.6410,\tbest estimator lgbm's best error=0.6241\n", - "[flaml.automl: 11-02 19:28:33] {2230} INFO - retrain lgbm for 1.0s\n", - "[flaml.automl: 11-02 19:28:33] {2237} INFO - retrained model: LGBMClassifier(learning_rate=1.0, max_bin=1023, min_child_samples=13,\n", - " n_estimators=9, num_leaves=16, reg_alpha=0.0036546217826270403,\n", - " reg_lambda=6.081586897506841, verbose=-1)\n", - "[flaml.automl: 11-02 19:28:33] {1598} INFO - fit succeeded\n", - "[flaml.automl: 11-02 19:28:33] {1599} INFO - Time taken to find the best model: 9.365035772323608\n", - "[flaml.automl: 11-02 19:28:33] {1610} WARNING - Time taken to find the best model is 94% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" + "[flaml.automl: 11-23 01:37:32] {1861} INFO - task = classification\n", + "[flaml.automl: 11-23 01:37:32] {1863} INFO - Data split method: stratified\n", + "[flaml.automl: 11-23 01:37:32] {1867} INFO - Evaluation method: holdout\n", + "[flaml.automl: 11-23 01:37:32] {1933} INFO - Minimizing error metric: customized metric\n", + "[flaml.automl: 11-23 01:37:32] {1985} INFO - List of ML learners in AutoML Run: ['lgbm', 'rf', 'catboost', 'xgboost', 'extra_tree', 'xgb_limitdepth', 'lrl1']\n", + "[flaml.automl: 11-23 01:37:32] {2223} INFO - iteration 0, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:32] {2337} INFO - Estimated sufficient time budget=13940s. Estimated necessary time budget=342s.\n", + "[flaml.automl: 11-23 01:37:32] {2417} INFO - at 0.6s,\testimator lgbm's best error=0.6647,\tbest estimator lgbm's best error=0.6647\n", + "[flaml.automl: 11-23 01:37:32] {2223} INFO - iteration 1, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:32] {2417} INFO - at 0.6s,\testimator lgbm's best error=0.6647,\tbest estimator lgbm's best error=0.6647\n", + "[flaml.automl: 11-23 01:37:32] {2223} INFO - iteration 2, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:32] {2417} INFO - at 0.6s,\testimator lgbm's best error=0.6491,\tbest estimator lgbm's best error=0.6491\n", + "[flaml.automl: 11-23 01:37:32] {2223} INFO - iteration 3, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 0.7s,\testimator xgboost's best error=0.6672,\tbest estimator lgbm's best error=0.6491\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 4, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 0.8s,\testimator lgbm's best error=0.6423,\tbest estimator lgbm's best error=0.6423\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 5, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 0.9s,\testimator lgbm's best error=0.6423,\tbest estimator lgbm's best error=0.6423\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 6, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 1.0s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 7, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 1.0s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 8, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 1.1s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 9, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 1.2s,\testimator xgboost's best error=0.6672,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 10, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 1.2s,\testimator xgboost's best error=0.6500,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 11, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:33] {2417} INFO - at 1.7s,\testimator extra_tree's best error=0.6548,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:33] {2223} INFO - iteration 12, current learner rf\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.1s,\testimator rf's best error=0.6474,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 13, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.2s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 14, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.2s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 15, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.3s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 16, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.4s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 17, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.4s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 18, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.5s,\testimator lgbm's best error=0.6400,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 19, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:34] {2417} INFO - at 2.6s,\testimator xgboost's best error=0.6413,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:34] {2223} INFO - iteration 20, current learner rf\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 2.8s,\testimator rf's best error=0.6474,\tbest estimator lgbm's best error=0.6400\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 21, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 2.8s,\testimator xgboost's best error=0.6393,\tbest estimator xgboost's best error=0.6393\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 22, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 2.9s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 23, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.0s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 24, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.1s,\testimator extra_tree's best error=0.6548,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 25, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.3s,\testimator extra_tree's best error=0.6548,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 26, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.3s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 27, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.4s,\testimator xgboost's best error=0.6342,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 28, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.5s,\testimator xgboost's best error=0.6342,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 29, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:35] {2417} INFO - at 3.6s,\testimator extra_tree's best error=0.6548,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:35] {2223} INFO - iteration 30, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 3.7s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 31, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 3.8s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 32, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 3.9s,\testimator lgbm's best error=0.6335,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 33, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 4.0s,\testimator xgboost's best error=0.6342,\tbest estimator lgbm's best error=0.6335\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 34, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 4.3s,\testimator lgbm's best error=0.6328,\tbest estimator lgbm's best error=0.6328\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 35, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 4.4s,\testimator xgboost's best error=0.6308,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 36, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:36] {2417} INFO - at 4.6s,\testimator extra_tree's best error=0.6548,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:36] {2223} INFO - iteration 37, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 4.7s,\testimator xgboost's best error=0.6308,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 38, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 4.8s,\testimator xgboost's best error=0.6308,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 39, current learner rf\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 4.9s,\testimator rf's best error=0.6474,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 40, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 5.0s,\testimator xgboost's best error=0.6308,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 41, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 5.2s,\testimator extra_tree's best error=0.6548,\tbest estimator xgboost's best error=0.6308\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 42, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 5.4s,\testimator lgbm's best error=0.6276,\tbest estimator lgbm's best error=0.6276\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 43, current learner xgboost\n", + "[flaml.automl: 11-23 01:37:37] {2417} INFO - at 5.6s,\testimator xgboost's best error=0.6308,\tbest estimator lgbm's best error=0.6276\n", + "[flaml.automl: 11-23 01:37:37] {2223} INFO - iteration 44, current learner extra_tree\n", + "[flaml.automl: 11-23 01:37:38] {2417} INFO - at 5.7s,\testimator extra_tree's best error=0.6500,\tbest estimator lgbm's best error=0.6276\n", + "[flaml.automl: 11-23 01:37:38] {2223} INFO - iteration 45, current learner rf\n", + "[flaml.automl: 11-23 01:37:38] {2417} INFO - at 5.8s,\testimator rf's best error=0.6469,\tbest estimator lgbm's best error=0.6276\n", + "[flaml.automl: 11-23 01:37:38] {2223} INFO - iteration 46, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:38] {2417} INFO - at 6.1s,\testimator lgbm's best error=0.6276,\tbest estimator lgbm's best error=0.6276\n", + "[flaml.automl: 11-23 01:37:38] {2223} INFO - iteration 47, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:38] {2417} INFO - at 6.3s,\testimator lgbm's best error=0.6276,\tbest estimator lgbm's best error=0.6276\n", + "[flaml.automl: 11-23 01:37:38] {2223} INFO - iteration 48, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:38] {2417} INFO - at 6.6s,\testimator lgbm's best error=0.6259,\tbest estimator lgbm's best error=0.6259\n", + "[flaml.automl: 11-23 01:37:38] {2223} INFO - iteration 49, current learner catboost\n", + "[flaml.automl: 11-23 01:37:39] {2417} INFO - at 6.8s,\testimator catboost's best error=0.6828,\tbest estimator lgbm's best error=0.6259\n", + "[flaml.automl: 11-23 01:37:39] {2223} INFO - iteration 50, current learner catboost\n", + "[flaml.automl: 11-23 01:37:39] {2417} INFO - at 6.9s,\testimator catboost's best error=0.6828,\tbest estimator lgbm's best error=0.6259\n", + "[flaml.automl: 11-23 01:37:39] {2223} INFO - iteration 51, current learner catboost\n", + "[flaml.automl: 11-23 01:37:39] {2417} INFO - at 7.1s,\testimator catboost's best error=0.6738,\tbest estimator lgbm's best error=0.6259\n", + "[flaml.automl: 11-23 01:37:39] {2223} INFO - iteration 52, current learner lgbm\n", + "[flaml.automl: 11-23 01:37:41] {2417} INFO - at 9.1s,\testimator lgbm's best error=0.6222,\tbest estimator lgbm's best error=0.6222\n", + "[flaml.automl: 11-23 01:37:41] {2223} INFO - iteration 53, current learner xgb_limitdepth\n", + "[flaml.automl: 11-23 01:37:42] {2417} INFO - at 10.1s,\testimator xgb_limitdepth's best error=0.6682,\tbest estimator lgbm's best error=0.6222\n", + "[flaml.automl: 11-23 01:37:43] {2629} INFO - retrain lgbm for 1.1s\n", + "[flaml.automl: 11-23 01:37:43] {2634} INFO - retrained model: LGBMClassifier(colsample_bytree=0.9031374907114736,\n", + " learning_rate=0.24484122722842153, max_bin=1023,\n", + " min_child_samples=4, n_estimators=26, num_leaves=18,\n", + " reg_alpha=0.011566789591709752, reg_lambda=73.308812838521,\n", + " verbose=-1)\n", + "[flaml.automl: 11-23 01:37:43] {2014} INFO - fit succeeded\n", + "[flaml.automl: 11-23 01:37:43] {2016} INFO - Time taken to find the best model: 9.087406158447266\n", + "[flaml.automl: 11-23 01:37:43] {2030} WARNING - Time taken to find the best model is 91% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" ] } ], @@ -1096,7 +1181,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" + "version": "3.7.12" } }, "nbformat": 4, diff --git a/notebook/flaml_xgboost.ipynb b/notebook/flaml_xgboost.ipynb index 0cfd0f6e8d..d714b39efe 100644 --- a/notebook/flaml_xgboost.ipynb +++ b/notebook/flaml_xgboost.ipynb @@ -2,6 +2,11 @@ "cells": [ { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "Copyright (c) Microsoft Corporation. All rights reserved. \n", "\n", @@ -26,47 +31,44 @@ "```bash\n", "pip install flaml[notebook]\n", "```" - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "!pip install flaml[notebook];" - ], - "outputs": [], - "metadata": {} + ] }, { "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, "source": [ "## 2. Regression Example\n", "### Load data and preprocess\n", "\n", "Download [houses dataset](https://www.openml.org/d/537) from OpenML. The task is to predict median price of the house in the region based on demographic composition and a state of housing market in the region." - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", "execution_count": 1, - "source": [ - "from flaml.data import load_openml_dataset\n", - "X_train, X_test, y_train, y_test = load_openml_dataset(dataset_id=537, data_dir='./')" - ], + "metadata": { + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "load dataset from ./openml_ds537.pkl\n", "Dataset name: houses\n", @@ -75,237 +77,293 @@ ] } ], - "metadata": { - "slideshow": { - "slide_type": "subslide" - }, - "tags": [] - } + "source": [ + "from flaml.data import load_openml_dataset\n", + "X_train, X_test, y_train, y_test = load_openml_dataset(dataset_id=537, data_dir='./')" + ] }, { "cell_type": "markdown", - "source": [ - "### Run FLAML\n", - "In the FLAML automl run configuration, users can specify the task type, time budget, error metric, learner list, whether to subsample, resampling strategy type, and so on. All these arguments have default values which will be used if users do not provide them. " - ], "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "source": [ + "### Run FLAML\n", + "In the FLAML automl run configuration, users can specify the task type, time budget, error metric, learner list, whether to subsample, resampling strategy type, and so on. All these arguments have default values which will be used if users do not provide them. " + ] }, { "cell_type": "code", "execution_count": 2, - "source": [ - "''' import AutoML class from flaml package '''\n", - "from flaml import AutoML\n", - "automl = AutoML()" - ], - "outputs": [], "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "outputs": [], + "source": [ + "''' import AutoML class from flaml package '''\n", + "from flaml import AutoML\n", + "automl = AutoML()" + ] }, { "cell_type": "code", "execution_count": 3, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], "source": [ "settings = {\n", - " \"time_budget\": 60, # total running time in seconds\n", + " \"time_budget\": 120, # total running time in seconds\n", " \"metric\": 'r2', # primary metrics for regression can be chosen from: ['mae','mse','r2']\n", " \"estimator_list\": ['xgboost'], # list of ML learners; we tune xgboost in this example\n", " \"task\": 'regression', # task type \n", " \"log_file_name\": 'houses_experiment.log', # flaml log file\n", "}" - ], - "outputs": [], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "code", "execution_count": 4, - "source": [ - "'''The main flaml automl API'''\n", - "automl.fit(X_train=X_train, y_train=y_train, **settings)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "[flaml.automl: 09-29 23:06:46] {1446} INFO - Data split method: uniform\n", - "[flaml.automl: 09-29 23:06:46] {1450} INFO - Evaluation method: cv\n", - "[flaml.automl: 09-29 23:06:46] {1496} INFO - Minimizing error metric: 1-r2\n", - "[flaml.automl: 09-29 23:06:46] {1533} INFO - List of ML learners in AutoML Run: ['xgboost']\n", - "[flaml.automl: 09-29 23:06:46] {1763} INFO - iteration 0, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:47] {1880} INFO - Estimated sufficient time budget=2621s. Estimated necessary time budget=3s.\n", - "[flaml.automl: 09-29 23:06:47] {1952} INFO - at 0.3s,\testimator xgboost's best error=2.1267,\tbest estimator xgboost's best error=2.1267\n", - "[flaml.automl: 09-29 23:06:47] {1763} INFO - iteration 1, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:47] {1952} INFO - at 0.5s,\testimator xgboost's best error=2.1267,\tbest estimator xgboost's best error=2.1267\n", - "[flaml.automl: 09-29 23:06:47] {1763} INFO - iteration 2, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:47] {1952} INFO - at 0.6s,\testimator xgboost's best error=0.8485,\tbest estimator xgboost's best error=0.8485\n", - "[flaml.automl: 09-29 23:06:47] {1763} INFO - iteration 3, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:47] {1952} INFO - at 0.8s,\testimator xgboost's best error=0.3799,\tbest estimator xgboost's best error=0.3799\n", - "[flaml.automl: 09-29 23:06:47] {1763} INFO - iteration 4, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:47] {1952} INFO - at 1.0s,\testimator xgboost's best error=0.3799,\tbest estimator xgboost's best error=0.3799\n", - "[flaml.automl: 09-29 23:06:47] {1763} INFO - iteration 5, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:47] {1952} INFO - at 1.2s,\testimator xgboost's best error=0.3799,\tbest estimator xgboost's best error=0.3799\n", - "[flaml.automl: 09-29 23:06:47] {1763} INFO - iteration 6, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:48] {1952} INFO - at 1.5s,\testimator xgboost's best error=0.2992,\tbest estimator xgboost's best error=0.2992\n", - "[flaml.automl: 09-29 23:06:48] {1763} INFO - iteration 7, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:48] {1952} INFO - at 1.9s,\testimator xgboost's best error=0.2992,\tbest estimator xgboost's best error=0.2992\n", - "[flaml.automl: 09-29 23:06:48] {1763} INFO - iteration 8, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:49] {1952} INFO - at 2.2s,\testimator xgboost's best error=0.2992,\tbest estimator xgboost's best error=0.2992\n", - "[flaml.automl: 09-29 23:06:49] {1763} INFO - iteration 9, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:49] {1952} INFO - at 2.5s,\testimator xgboost's best error=0.2513,\tbest estimator xgboost's best error=0.2513\n", - "[flaml.automl: 09-29 23:06:49] {1763} INFO - iteration 10, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:49] {1952} INFO - at 2.8s,\testimator xgboost's best error=0.2513,\tbest estimator xgboost's best error=0.2513\n", - "[flaml.automl: 09-29 23:06:49] {1763} INFO - iteration 11, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:49] {1952} INFO - at 3.0s,\testimator xgboost's best error=0.2513,\tbest estimator xgboost's best error=0.2513\n", - "[flaml.automl: 09-29 23:06:49] {1763} INFO - iteration 12, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:50] {1952} INFO - at 3.3s,\testimator xgboost's best error=0.2113,\tbest estimator xgboost's best error=0.2113\n", - "[flaml.automl: 09-29 23:06:50] {1763} INFO - iteration 13, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:50] {1952} INFO - at 3.5s,\testimator xgboost's best error=0.2113,\tbest estimator xgboost's best error=0.2113\n", - "[flaml.automl: 09-29 23:06:50] {1763} INFO - iteration 14, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:50] {1952} INFO - at 4.0s,\testimator xgboost's best error=0.2090,\tbest estimator xgboost's best error=0.2090\n", - "[flaml.automl: 09-29 23:06:50] {1763} INFO - iteration 15, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:51] {1952} INFO - at 4.5s,\testimator xgboost's best error=0.2090,\tbest estimator xgboost's best error=0.2090\n", - "[flaml.automl: 09-29 23:06:51] {1763} INFO - iteration 16, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:51] {1952} INFO - at 5.2s,\testimator xgboost's best error=0.1919,\tbest estimator xgboost's best error=0.1919\n", - "[flaml.automl: 09-29 23:06:51] {1763} INFO - iteration 17, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:52] {1952} INFO - at 5.5s,\testimator xgboost's best error=0.1919,\tbest estimator xgboost's best error=0.1919\n", - "[flaml.automl: 09-29 23:06:52] {1763} INFO - iteration 18, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:54] {1952} INFO - at 8.0s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", - "[flaml.automl: 09-29 23:06:54] {1763} INFO - iteration 19, current learner xgboost\n", - "[flaml.automl: 09-29 23:06:55] {1952} INFO - at 9.0s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", - "[flaml.automl: 09-29 23:06:55] {1763} INFO - iteration 20, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:08] {1952} INFO - at 21.8s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", - "[flaml.automl: 09-29 23:07:08] {1763} INFO - iteration 21, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:11] {1952} INFO - at 24.4s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", - "[flaml.automl: 09-29 23:07:11] {1763} INFO - iteration 22, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:16] {1952} INFO - at 30.0s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", - "[flaml.automl: 09-29 23:07:16] {1763} INFO - iteration 23, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:20] {1952} INFO - at 33.5s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", - "[flaml.automl: 09-29 23:07:20] {1763} INFO - iteration 24, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:29] {1952} INFO - at 42.3s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", - "[flaml.automl: 09-29 23:07:29] {1763} INFO - iteration 25, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:30] {1952} INFO - at 43.2s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", - "[flaml.automl: 09-29 23:07:30] {1763} INFO - iteration 26, current learner xgboost\n", - "[flaml.automl: 09-29 23:07:50] {1952} INFO - at 63.4s,\testimator xgboost's best error=0.1663,\tbest estimator xgboost's best error=0.1663\n", - "[flaml.automl: 09-29 23:07:50] {2059} INFO - selected model: \n", - "[flaml.automl: 09-29 23:07:55] {2122} INFO - retrain xgboost for 5.4s\n", - "[flaml.automl: 09-29 23:07:55] {2128} INFO - retrained model: \n", - "[flaml.automl: 09-29 23:07:55] {1557} INFO - fit succeeded\n", - "[flaml.automl: 09-29 23:07:55] {1558} INFO - Time taken to find the best model: 63.427649974823\n", - "[flaml.automl: 09-29 23:07:55] {1569} WARNING - Time taken to find the best model is 106% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" - ] - } - ], "metadata": { "slideshow": { "slide_type": "slide" }, "tags": [] - } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[flaml.automl: 11-23 01:28:26] {1861} INFO - task = regression\n", + "[flaml.automl: 11-23 01:28:26] {1863} INFO - Data split method: uniform\n", + "[flaml.automl: 11-23 01:28:26] {1867} INFO - Evaluation method: cv\n", + "[flaml.automl: 11-23 01:28:26] {1933} INFO - Minimizing error metric: 1-r2\n", + "[flaml.automl: 11-23 01:28:26] {1985} INFO - List of ML learners in AutoML Run: ['xgboost']\n", + "[flaml.automl: 11-23 01:28:26] {2223} INFO - iteration 0, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:26] {2337} INFO - Estimated sufficient time budget=1362s. Estimated necessary time budget=1s.\n", + "[flaml.automl: 11-23 01:28:26] {2417} INFO - at 0.2s,\testimator xgboost's best error=2.1267,\tbest estimator xgboost's best error=2.1267\n", + "[flaml.automl: 11-23 01:28:26] {2223} INFO - iteration 1, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:26] {2417} INFO - at 0.3s,\testimator xgboost's best error=2.1267,\tbest estimator xgboost's best error=2.1267\n", + "[flaml.automl: 11-23 01:28:26] {2223} INFO - iteration 2, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:26] {2417} INFO - at 0.4s,\testimator xgboost's best error=0.8485,\tbest estimator xgboost's best error=0.8485\n", + "[flaml.automl: 11-23 01:28:26] {2223} INFO - iteration 3, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:27] {2417} INFO - at 0.5s,\testimator xgboost's best error=0.3799,\tbest estimator xgboost's best error=0.3799\n", + "[flaml.automl: 11-23 01:28:27] {2223} INFO - iteration 4, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:27] {2417} INFO - at 0.6s,\testimator xgboost's best error=0.3799,\tbest estimator xgboost's best error=0.3799\n", + "[flaml.automl: 11-23 01:28:27] {2223} INFO - iteration 5, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:27] {2417} INFO - at 0.8s,\testimator xgboost's best error=0.3799,\tbest estimator xgboost's best error=0.3799\n", + "[flaml.automl: 11-23 01:28:27] {2223} INFO - iteration 6, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:27] {2417} INFO - at 1.0s,\testimator xgboost's best error=0.2992,\tbest estimator xgboost's best error=0.2992\n", + "[flaml.automl: 11-23 01:28:27] {2223} INFO - iteration 7, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:27] {2417} INFO - at 1.2s,\testimator xgboost's best error=0.2992,\tbest estimator xgboost's best error=0.2992\n", + "[flaml.automl: 11-23 01:28:27] {2223} INFO - iteration 8, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:27] {2417} INFO - at 1.3s,\testimator xgboost's best error=0.2992,\tbest estimator xgboost's best error=0.2992\n", + "[flaml.automl: 11-23 01:28:27] {2223} INFO - iteration 9, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:28] {2417} INFO - at 1.5s,\testimator xgboost's best error=0.2513,\tbest estimator xgboost's best error=0.2513\n", + "[flaml.automl: 11-23 01:28:28] {2223} INFO - iteration 10, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:28] {2417} INFO - at 1.6s,\testimator xgboost's best error=0.2513,\tbest estimator xgboost's best error=0.2513\n", + "[flaml.automl: 11-23 01:28:28] {2223} INFO - iteration 11, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:28] {2417} INFO - at 1.8s,\testimator xgboost's best error=0.2513,\tbest estimator xgboost's best error=0.2513\n", + "[flaml.automl: 11-23 01:28:28] {2223} INFO - iteration 12, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:28] {2417} INFO - at 2.1s,\testimator xgboost's best error=0.2113,\tbest estimator xgboost's best error=0.2113\n", + "[flaml.automl: 11-23 01:28:28] {2223} INFO - iteration 13, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:28] {2417} INFO - at 2.3s,\testimator xgboost's best error=0.2113,\tbest estimator xgboost's best error=0.2113\n", + "[flaml.automl: 11-23 01:28:28] {2223} INFO - iteration 14, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:29] {2417} INFO - at 2.9s,\testimator xgboost's best error=0.2090,\tbest estimator xgboost's best error=0.2090\n", + "[flaml.automl: 11-23 01:28:29] {2223} INFO - iteration 15, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:29] {2417} INFO - at 3.4s,\testimator xgboost's best error=0.2090,\tbest estimator xgboost's best error=0.2090\n", + "[flaml.automl: 11-23 01:28:29] {2223} INFO - iteration 16, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:31] {2417} INFO - at 4.7s,\testimator xgboost's best error=0.1919,\tbest estimator xgboost's best error=0.1919\n", + "[flaml.automl: 11-23 01:28:31] {2223} INFO - iteration 17, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:31] {2417} INFO - at 5.1s,\testimator xgboost's best error=0.1919,\tbest estimator xgboost's best error=0.1919\n", + "[flaml.automl: 11-23 01:28:31] {2223} INFO - iteration 18, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:34] {2417} INFO - at 8.1s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", + "[flaml.automl: 11-23 01:28:34] {2223} INFO - iteration 19, current learner xgboost\n", + "[flaml.automl: 11-23 01:28:35] {2417} INFO - at 8.8s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", + "[flaml.automl: 11-23 01:28:35] {2223} INFO - iteration 20, current learner xgboost\n", + "[flaml.automl: 11-23 01:29:03] {2417} INFO - at 36.8s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", + "[flaml.automl: 11-23 01:29:03] {2223} INFO - iteration 21, current learner xgboost\n", + "[flaml.automl: 11-23 01:29:05] {2417} INFO - at 38.9s,\testimator xgboost's best error=0.1797,\tbest estimator xgboost's best error=0.1797\n", + "[flaml.automl: 11-23 01:29:05] {2223} INFO - iteration 22, current learner xgboost\n", + "[flaml.automl: 11-23 01:29:11] {2417} INFO - at 45.4s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", + "[flaml.automl: 11-23 01:29:11] {2223} INFO - iteration 23, current learner xgboost\n", + "[flaml.automl: 11-23 01:29:17] {2417} INFO - at 51.2s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", + "[flaml.automl: 11-23 01:29:17] {2223} INFO - iteration 24, current learner xgboost\n", + "[flaml.automl: 11-23 01:29:25] {2417} INFO - at 58.5s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", + "[flaml.automl: 11-23 01:29:25] {2223} INFO - iteration 25, current learner xgboost\n", + "[flaml.automl: 11-23 01:29:26] {2417} INFO - at 59.8s,\testimator xgboost's best error=0.1782,\tbest estimator xgboost's best error=0.1782\n", + "[flaml.automl: 11-23 01:29:26] {2223} INFO - iteration 26, current learner xgboost\n", + "[flaml.automl: 11-23 01:30:13] {2417} INFO - at 107.3s,\testimator xgboost's best error=0.1660,\tbest estimator xgboost's best error=0.1660\n", + "[flaml.automl: 11-23 01:30:23] {2629} INFO - retrain xgboost for 9.5s\n", + "[flaml.automl: 11-23 01:30:23] {2634} INFO - retrained model: XGBRegressor(base_score=0.5, booster='gbtree',\n", + " colsample_bylevel=0.5656764254642628, colsample_bynode=1,\n", + " colsample_bytree=0.7313266091895249, gamma=0, gpu_id=-1,\n", + " grow_policy='lossguide', importance_type='gain',\n", + " interaction_constraints='', learning_rate=0.034786853332414935,\n", + " max_delta_step=0, max_depth=0, max_leaves=160,\n", + " min_child_weight=32.57408640781376, missing=nan,\n", + " monotone_constraints='()', n_estimators=776, n_jobs=-1,\n", + " num_parallel_tree=1, random_state=0,\n", + " reg_alpha=0.005771390107656191, reg_lambda=1.49126672786588,\n", + " scale_pos_weight=1, subsample=0.9152991332236934,\n", + " tree_method='hist', use_label_encoder=False, validate_parameters=1,\n", + " verbosity=0)\n", + "[flaml.automl: 11-23 01:30:23] {2014} INFO - fit succeeded\n", + "[flaml.automl: 11-23 01:30:23] {2016} INFO - Time taken to find the best model: 107.32724642753601\n", + "[flaml.automl: 11-23 01:30:23] {2030} WARNING - Time taken to find the best model is 89% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" + ] + } + ], + "source": [ + "'''The main flaml automl API'''\n", + "automl.fit(X_train=X_train, y_train=y_train, **settings)" + ] }, { "cell_type": "markdown", - "source": [ - "### Best model and metric" - ], "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "source": [ + "### Best model and metric" + ] }, { "cell_type": "code", "execution_count": 5, - "source": [ - "''' retrieve best config'''\n", - "print('Best hyperparmeter config:', automl.best_config)\n", - "print('Best r2 on validation data: {0:.4g}'.format(1 - automl.best_loss))\n", - "print('Training duration of best run: {0:.4g} s'.format(automl.best_config_train_time))" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "Best hyperparmeter config: {'n_estimators': 776, 'max_leaves': 160, 'min_child_weight': 32.57408640781376, 'learning_rate': 0.03478685333241491, 'subsample': 0.9152991332236934, 'colsample_bylevel': 0.5656764254642628, 'colsample_bytree': 0.7313266091895249, 'reg_alpha': 0.005771390107656191, 'reg_lambda': 1.4912667278658753}\n", - "Best r2 on validation data: 0.8337\n", - "Training duration of best run: 20.25 s\n" - ] - } - ], "metadata": { "slideshow": { "slide_type": "slide" }, "tags": [] - } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best hyperparmeter config: {'n_estimators': 776, 'max_leaves': 160, 'min_child_weight': 32.57408640781376, 'learning_rate': 0.034786853332414935, 'subsample': 0.9152991332236934, 'colsample_bylevel': 0.5656764254642628, 'colsample_bytree': 0.7313266091895249, 'reg_alpha': 0.005771390107656191, 'reg_lambda': 1.49126672786588}\n", + "Best r2 on validation data: 0.834\n", + "Training duration of best run: 9.471 s\n" + ] + } + ], + "source": [ + "# retrieve best config\n", + "print('Best hyperparmeter config:', automl.best_config)\n", + "print('Best r2 on validation data: {0:.4g}'.format(1 - automl.best_loss))\n", + "print('Training duration of best run: {0:.4g} s'.format(automl.best_config_train_time))" + ] }, { "cell_type": "code", "execution_count": 6, - "source": [ - "automl.model.estimator" - ], - "outputs": [ - { - "output_type": "execute_result", - "data": { - "text/plain": [ - "" - ] - }, - "metadata": {}, - "execution_count": 6 - } - ], "metadata": { "slideshow": { "slide_type": "slide" } - } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "XGBRegressor(base_score=0.5, booster='gbtree',\n", + " colsample_bylevel=0.5656764254642628, colsample_bynode=1,\n", + " colsample_bytree=0.7313266091895249, gamma=0, gpu_id=-1,\n", + " grow_policy='lossguide', importance_type='gain',\n", + " interaction_constraints='', learning_rate=0.034786853332414935,\n", + " max_delta_step=0, max_depth=0, max_leaves=160,\n", + " min_child_weight=32.57408640781376, missing=nan,\n", + " monotone_constraints='()', n_estimators=776, n_jobs=-1,\n", + " num_parallel_tree=1, random_state=0,\n", + " reg_alpha=0.005771390107656191, reg_lambda=1.49126672786588,\n", + " scale_pos_weight=1, subsample=0.9152991332236934,\n", + " tree_method='hist', use_label_encoder=False, validate_parameters=1,\n", + " verbosity=0)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "automl.model.estimator" + ] }, { "cell_type": "code", "execution_count": 7, - "source": [ - "''' pickle and save the automl object '''\n", - "import pickle\n", - "with open('automl.pkl', 'wb') as f:\n", - " pickle.dump(automl, f, pickle.HIGHEST_PROTOCOL)" - ], - "outputs": [], - "metadata": { - "slideshow": { - "slide_type": "slide" + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" } - } + ], + "source": [ + "# plot feature importance\n", + "import matplotlib.pyplot as plt\n", + "plt.barh(X_train.columns, automl.model.estimator.feature_importances_)" + ] }, { "cell_type": "code", "execution_count": 8, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [], "source": [ - "''' compute predictions of testing dataset ''' \n", - "y_pred = automl.predict(X_test)\n", - "print('Predicted labels', y_pred)\n", - "print('True labels', y_test)" - ], + "# pickle and save the automl object\n", + "import pickle\n", + "with open('automl.pkl', 'wb') as f:\n", + " pickle.dump(automl, f, pickle.HIGHEST_PROTOCOL)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "Predicted labels [137582.95 255519.23 139866.06 ... 185638.95 202493.78 269308.22]\n", "True labels 14740 136900.0\n", @@ -323,44 +381,68 @@ ] } ], - "metadata": { - "slideshow": { - "slide_type": "slide" - }, - "tags": [] - } - }, - { - "cell_type": "code", - "execution_count": 9, "source": [ - "''' compute different metric values on testing dataset'''\n", - "from flaml.ml import sklearn_metric_loss_score\n", - "print('r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))\n", - "print('mse', '=', sklearn_metric_loss_score('mse', y_pred, y_test))\n", - "print('mae', '=', sklearn_metric_loss_score('mae', y_pred, y_test))" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "r2 = 0.8439648010832427\n", - "mse = 2062552297.5716143\n", - "mae = 30303.196008584666\n" - ] - } - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - }, - "tags": [] - } + "# compute predictions of testing dataset\n", + "y_pred = automl.predict(X_test)\n", + "print('Predicted labels', y_pred)\n", + "print('True labels', y_test)" + ] }, { "cell_type": "code", "execution_count": 10, + "metadata": { + "slideshow": { + "slide_type": "slide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "r2 = 0.8439648010782455\n", + "mse = 2062552297.637671\n", + "mae = 30303.196010098716\n" + ] + } + ], + "source": [ + "# compute different metric values on testing dataset\n", + "from flaml.ml import sklearn_metric_loss_score\n", + "print('r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))\n", + "print('mse', '=', sklearn_metric_loss_score('mse', y_pred, y_test))\n", + "print('mae', '=', sklearn_metric_loss_score('mae', y_pred, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "slideshow": { + "slide_type": "subslide" + }, + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.9999999999999993, 'learning_rate': 0.09999999999999995, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 1.0}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.9999999999999993, 'learning_rate': 0.09999999999999995, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 1.0}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.26208115308159446, 'learning_rate': 0.25912534572860485, 'subsample': 0.9266743941610592, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013933617380144255, 'reg_lambda': 0.18096917948292954}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.26208115308159446, 'learning_rate': 0.25912534572860485, 'subsample': 0.9266743941610592, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013933617380144255, 'reg_lambda': 0.18096917948292954}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 1.8630223791106992, 'learning_rate': 1.0, 'subsample': 0.8513627344387318, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.946138073111236, 'reg_alpha': 0.0018311776973217073, 'reg_lambda': 0.27901659190538414}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 1.8630223791106992, 'learning_rate': 1.0, 'subsample': 0.8513627344387318, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.946138073111236, 'reg_alpha': 0.0018311776973217073, 'reg_lambda': 0.27901659190538414}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 11, 'max_leaves': 4, 'min_child_weight': 5.909231502320296, 'learning_rate': 1.0, 'subsample': 0.8894434216129232, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013605736901132325, 'reg_lambda': 0.1222158118565165}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 11, 'max_leaves': 4, 'min_child_weight': 5.909231502320296, 'learning_rate': 1.0, 'subsample': 0.8894434216129232, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013605736901132325, 'reg_lambda': 0.1222158118565165}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 11, 'max_leaves': 11, 'min_child_weight': 8.517629386811171, 'learning_rate': 1.0, 'subsample': 0.9233328006239466, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.9468117873770695, 'reg_alpha': 0.034996420228767956, 'reg_lambda': 0.6169079461473824}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 11, 'max_leaves': 11, 'min_child_weight': 8.517629386811171, 'learning_rate': 1.0, 'subsample': 0.9233328006239466, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.9468117873770695, 'reg_alpha': 0.034996420228767956, 'reg_lambda': 0.6169079461473824}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 20, 'max_leaves': 15, 'min_child_weight': 43.62419686983011, 'learning_rate': 0.6413547778096401, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.8481188761562112, 'reg_alpha': 0.01241885232679939, 'reg_lambda': 0.21352682817916668}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 20, 'max_leaves': 15, 'min_child_weight': 43.62419686983011, 'learning_rate': 0.6413547778096401, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.8481188761562112, 'reg_alpha': 0.01241885232679939, 'reg_lambda': 0.21352682817916668}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 58, 'max_leaves': 8, 'min_child_weight': 51.84874392377357, 'learning_rate': 0.23511987355535005, 'subsample': 1.0, 'colsample_bylevel': 0.8182737361783602, 'colsample_bytree': 0.8031986460435498, 'reg_alpha': 0.00400039941928546, 'reg_lambda': 0.38702529681004805}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 58, 'max_leaves': 8, 'min_child_weight': 51.84874392377357, 'learning_rate': 0.23511987355535005, 'subsample': 1.0, 'colsample_bylevel': 0.8182737361783602, 'colsample_bytree': 0.8031986460435498, 'reg_alpha': 0.00400039941928546, 'reg_lambda': 0.38702529681004805}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 101, 'max_leaves': 14, 'min_child_weight': 7.444058088783035, 'learning_rate': 0.39220715578198356, 'subsample': 1.0, 'colsample_bylevel': 0.6274332478496758, 'colsample_bytree': 0.7190251742957809, 'reg_alpha': 0.007212902167942765, 'reg_lambda': 0.20172056689658188}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 101, 'max_leaves': 14, 'min_child_weight': 7.444058088783035, 'learning_rate': 0.39220715578198356, 'subsample': 1.0, 'colsample_bylevel': 0.6274332478496758, 'colsample_bytree': 0.7190251742957809, 'reg_alpha': 0.007212902167942765, 'reg_lambda': 0.20172056689658188}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 205, 'max_leaves': 30, 'min_child_weight': 5.450621032615097, 'learning_rate': 0.12229148765139466, 'subsample': 0.8895588746662894, 'colsample_bylevel': 0.47518959001130784, 'colsample_bytree': 0.6845612830806885, 'reg_alpha': 0.01126059820390593, 'reg_lambda': 0.08170816686602457}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 205, 'max_leaves': 30, 'min_child_weight': 5.450621032615097, 'learning_rate': 0.12229148765139466, 'subsample': 0.8895588746662894, 'colsample_bylevel': 0.47518959001130784, 'colsample_bytree': 0.6845612830806885, 'reg_alpha': 0.01126059820390593, 'reg_lambda': 0.08170816686602457}}\n", + "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 222, 'max_leaves': 62, 'min_child_weight': 7.5054716192185795, 'learning_rate': 0.04623175582706435, 'subsample': 0.8756054034199897, 'colsample_bylevel': 0.44768367042684304, 'colsample_bytree': 0.7352307811741962, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.6207832675443773}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 222, 'max_leaves': 62, 'min_child_weight': 7.5054716192185795, 'learning_rate': 0.04623175582706435, 'subsample': 0.8756054034199897, 'colsample_bylevel': 0.44768367042684304, 'colsample_bytree': 0.7352307811741962, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.6207832675443773}}\n" + ] + } + ], "source": [ "from flaml.data import get_output_from_log\n", "time_history, best_valid_loss_history, valid_loss_history, config_history, metric_history = \\\n", @@ -368,35 +450,30 @@ "\n", "for config in config_history:\n", " print(config)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.9999999999999993, 'learning_rate': 0.09999999999999995, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 1.0}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.9999999999999993, 'learning_rate': 0.09999999999999995, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0009765625, 'reg_lambda': 1.0}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.26208115308159446, 'learning_rate': 0.25912534572860507, 'subsample': 0.9266743941610592, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013933617380144255, 'reg_lambda': 0.18096917948292954}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 0.26208115308159446, 'learning_rate': 0.25912534572860507, 'subsample': 0.9266743941610592, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013933617380144255, 'reg_lambda': 0.18096917948292954}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 1.8630223791106992, 'learning_rate': 1.0, 'subsample': 0.8513627344387318, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.946138073111236, 'reg_alpha': 0.0018311776973217071, 'reg_lambda': 0.27901659190538414}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 4, 'max_leaves': 4, 'min_child_weight': 1.8630223791106992, 'learning_rate': 1.0, 'subsample': 0.8513627344387318, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.946138073111236, 'reg_alpha': 0.0018311776973217071, 'reg_lambda': 0.27901659190538414}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 11, 'max_leaves': 4, 'min_child_weight': 5.909231502320296, 'learning_rate': 1.0, 'subsample': 0.8894434216129232, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013605736901132325, 'reg_lambda': 0.1222158118565165}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 11, 'max_leaves': 4, 'min_child_weight': 5.909231502320296, 'learning_rate': 1.0, 'subsample': 0.8894434216129232, 'colsample_bylevel': 1.0, 'colsample_bytree': 1.0, 'reg_alpha': 0.0013605736901132325, 'reg_lambda': 0.1222158118565165}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 11, 'max_leaves': 11, 'min_child_weight': 8.517629386811171, 'learning_rate': 1.0, 'subsample': 0.9233328006239466, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.9468117873770695, 'reg_alpha': 0.034996420228767956, 'reg_lambda': 0.6169079461473819}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 11, 'max_leaves': 11, 'min_child_weight': 8.517629386811171, 'learning_rate': 1.0, 'subsample': 0.9233328006239466, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.9468117873770695, 'reg_alpha': 0.034996420228767956, 'reg_lambda': 0.6169079461473819}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 20, 'max_leaves': 15, 'min_child_weight': 43.62419686983011, 'learning_rate': 0.6413547778096401, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.8481188761562112, 'reg_alpha': 0.01241885232679939, 'reg_lambda': 0.21352682817916652}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 20, 'max_leaves': 15, 'min_child_weight': 43.62419686983011, 'learning_rate': 0.6413547778096401, 'subsample': 1.0, 'colsample_bylevel': 1.0, 'colsample_bytree': 0.8481188761562112, 'reg_alpha': 0.01241885232679939, 'reg_lambda': 0.21352682817916652}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 58, 'max_leaves': 8, 'min_child_weight': 51.84874392377363, 'learning_rate': 0.23511987355535005, 'subsample': 1.0, 'colsample_bylevel': 0.8182737361783602, 'colsample_bytree': 0.8031986460435498, 'reg_alpha': 0.00400039941928546, 'reg_lambda': 0.3870252968100477}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 58, 'max_leaves': 8, 'min_child_weight': 51.84874392377363, 'learning_rate': 0.23511987355535005, 'subsample': 1.0, 'colsample_bylevel': 0.8182737361783602, 'colsample_bytree': 0.8031986460435498, 'reg_alpha': 0.00400039941928546, 'reg_lambda': 0.3870252968100477}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 101, 'max_leaves': 14, 'min_child_weight': 7.444058088783045, 'learning_rate': 0.39220715578198356, 'subsample': 1.0, 'colsample_bylevel': 0.6274332478496758, 'colsample_bytree': 0.7190251742957809, 'reg_alpha': 0.007212902167942765, 'reg_lambda': 0.20172056689658158}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 101, 'max_leaves': 14, 'min_child_weight': 7.444058088783045, 'learning_rate': 0.39220715578198356, 'subsample': 1.0, 'colsample_bylevel': 0.6274332478496758, 'colsample_bytree': 0.7190251742957809, 'reg_alpha': 0.007212902167942765, 'reg_lambda': 0.20172056689658158}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 205, 'max_leaves': 30, 'min_child_weight': 5.450621032615104, 'learning_rate': 0.12229148765139466, 'subsample': 0.8895588746662894, 'colsample_bylevel': 0.47518959001130784, 'colsample_bytree': 0.6845612830806885, 'reg_alpha': 0.01126059820390593, 'reg_lambda': 0.08170816686602438}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 205, 'max_leaves': 30, 'min_child_weight': 5.450621032615104, 'learning_rate': 0.12229148765139466, 'subsample': 0.8895588746662894, 'colsample_bylevel': 0.47518959001130784, 'colsample_bytree': 0.6845612830806885, 'reg_alpha': 0.01126059820390593, 'reg_lambda': 0.08170816686602438}}\n", - "{'Current Learner': 'xgboost', 'Current Sample': 15480, 'Current Hyper-parameters': {'n_estimators': 222, 'max_leaves': 62, 'min_child_weight': 7.5054716192185795, 'learning_rate': 0.04623175582706431, 'subsample': 0.8756054034199897, 'colsample_bylevel': 0.44768367042684304, 'colsample_bytree': 0.7352307811741962, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.6207832675443758}, 'Best Learner': 'xgboost', 'Best Hyper-parameters': {'n_estimators': 222, 'max_leaves': 62, 'min_child_weight': 7.5054716192185795, 'learning_rate': 0.04623175582706431, 'subsample': 0.8756054034199897, 'colsample_bylevel': 0.44768367042684304, 'colsample_bytree': 0.7352307811741962, 'reg_alpha': 0.0009765625, 'reg_lambda': 0.6207832675443758}}\n" - ] - } - ], - "metadata": { - "slideshow": { - "slide_type": "subslide" - }, - "tags": [] - } + ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 12, + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -407,81 +484,59 @@ "plt.scatter(time_history, 1 - np.array(valid_loss_history))\n", "plt.step(time_history, 1 - np.array(best_valid_loss_history), where='post')\n", "plt.show()" - ], - "outputs": [ - { - "output_type": "display_data", - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - } - } - ], - "metadata": { - "slideshow": { - "slide_type": "slide" - } - } + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## 3. Comparison with untuned XGBoost\n", "\n", "### FLAML's accuracy" - ], - "metadata": {} - }, - { - "cell_type": "code", - "execution_count": 12, - "source": [ - "print('flaml (60s) r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stdout", - "text": [ - "flaml (60s) r2 = 0.8439648010832427\n" - ] - } - ], - "metadata": { - "tags": [] - } - }, - { - "cell_type": "markdown", - "source": [ - "### Default XGBoost" - ], - "metadata": {} + ] }, { "cell_type": "code", "execution_count": 13, - "source": [ - "from xgboost import XGBRegressor\n", - "xgb = XGBRegressor()" + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "flaml (120s) r2 = 0.8439648010782455\n" + ] + } ], - "outputs": [], - "metadata": {} + "source": [ + "print('flaml (120s) r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Default XGBoost" + ] }, { "cell_type": "code", "execution_count": 14, + "metadata": {}, + "outputs": [], "source": [ - "xgb.fit(X_train, y_train)" - ], + "from xgboost import XGBRegressor\n", + "xgb = XGBRegressor()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, "outputs": [ { - "output_type": "execute_result", "data": { "text/plain": [ "XGBRegressor(base_score=0.5, booster='gbtree', colsample_bylevel=1,\n", @@ -489,53 +544,703 @@ " importance_type='gain', interaction_constraints='',\n", " learning_rate=0.300000012, max_delta_step=0, max_depth=6,\n", " min_child_weight=1, missing=nan, monotone_constraints='()',\n", - " n_estimators=100, n_jobs=0, num_parallel_tree=1, random_state=0,\n", + " n_estimators=100, n_jobs=32, num_parallel_tree=1, random_state=0,\n", " reg_alpha=0, reg_lambda=1, scale_pos_weight=1, subsample=1,\n", " tree_method='exact', validate_parameters=1, verbosity=None)" ] }, + "execution_count": 15, "metadata": {}, - "execution_count": 14 + "output_type": "execute_result" } ], - "metadata": {} + "source": [ + "xgb.fit(X_train, y_train)" + ] }, { "cell_type": "code", - "execution_count": 15, - "source": [ - "y_pred = xgb.predict(X_test)\n", - "from flaml.ml import sklearn_metric_loss_score\n", - "print('default xgboost r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))" - ], + "execution_count": 16, + "metadata": { + "tags": [] + }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ "default xgboost r2 = 0.8265451174596482\n" ] } ], - "metadata": { - "tags": [] - } + "source": [ + "y_pred = xgb.predict(X_test)\n", + "from flaml.ml import sklearn_metric_loss_score\n", + "print('default xgboost r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))" + ] }, { "cell_type": "markdown", + "metadata": {}, "source": [ "## 4. Add customized XGBoost learners in FLAML\n", - "You can easily enable a custom objective function by adding a customized XGBoost learner (XGBoostEstimator for regression tasks, and XGBoostSklearnEstimator for classification tasks) in FLAML. In the following example, we show how to add such a customized XGBoostEstimator with a custom objective function. " - ], - "metadata": {} + "You can easily enable a custom objective function by adding a customized XGBoost learner (inherit XGBoostEstimator or XGBoostSklearnEstimator) in FLAML. In the following example, we show how to add such a customized XGBoost learner with a custom objective function. " + ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 17, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "[flaml.automl: 11-23 01:30:27] {1861} INFO - task = regression\n", + "[flaml.automl: 11-23 01:30:27] {1863} INFO - Data split method: uniform\n", + "[flaml.automl: 11-23 01:30:27] {1867} INFO - Evaluation method: holdout\n", + "[flaml.automl: 11-23 01:30:27] {1933} INFO - Minimizing error metric: 1-r2\n", + "[flaml.automl: 11-23 01:30:27] {1985} INFO - List of ML learners in AutoML Run: ['my_xgb1', 'my_xgb2']\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 0, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2337} INFO - Estimated sufficient time budget=341s. Estimated necessary time budget=0s.\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.1s,\testimator my_xgb1's best error=1.7590,\tbest estimator my_xgb1's best error=1.7590\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 1, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.1s,\testimator my_xgb1's best error=0.7534,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 2, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.1s,\testimator my_xgb1's best error=0.7534,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 3, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.1s,\testimator my_xgb1's best error=0.7534,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 4, current learner my_xgb2\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.2s,\testimator my_xgb2's best error=4.1611,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 5, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.2s,\testimator my_xgb1's best error=0.7534,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 6, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.2s,\testimator my_xgb1's best error=0.7534,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 7, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.2s,\testimator my_xgb1's best error=0.7534,\tbest estimator my_xgb1's best error=0.7534\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 8, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.3s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 9, current learner my_xgb2\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.3s,\testimator my_xgb2's best error=4.1611,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 10, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.3s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 11, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.4s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 12, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.4s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 13, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.4s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 14, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.5s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 15, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.5s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 16, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.5s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 17, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.6s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 18, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.6s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 19, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.6s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 20, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.7s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 21, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.7s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 22, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.8s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 23, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.8s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 24, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.8s,\testimator my_xgb1's best error=0.4908,\tbest estimator my_xgb1's best error=0.4908\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 25, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:27] {2417} INFO - at 0.9s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:27] {2223} INFO - iteration 26, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 0.9s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 27, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.0s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 28, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.0s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 29, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.0s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 30, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.1s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 31, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.2s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 32, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.2s,\testimator my_xgb1's best error=0.4842,\tbest estimator my_xgb1's best error=0.4842\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 33, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.3s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 34, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.3s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 35, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.3s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 36, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.4s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 37, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.4s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 38, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.5s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 39, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.5s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 40, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.6s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 41, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.6s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 42, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.6s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 43, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.7s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 44, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.7s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 45, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.8s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 46, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.8s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 47, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.8s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 48, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.8s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 49, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.9s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 50, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:28] {2417} INFO - at 1.9s,\testimator my_xgb1's best error=0.4836,\tbest estimator my_xgb1's best error=0.4836\n", + "[flaml.automl: 11-23 01:30:28] {2223} INFO - iteration 51, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.0s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 52, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.0s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 53, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.0s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 54, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.1s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 55, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.1s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 56, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.2s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 57, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.3s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 58, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.3s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 59, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.3s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 60, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.4s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 61, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.4s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 62, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.5s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 63, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.5s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 64, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.6s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 65, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.6s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 66, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.6s,\testimator my_xgb1's best error=0.4110,\tbest estimator my_xgb1's best error=0.4110\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 67, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.8s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 68, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.8s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 69, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:29] {2417} INFO - at 2.9s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:29] {2223} INFO - iteration 70, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:30] {2417} INFO - at 3.0s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:30] {2223} INFO - iteration 71, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:30] {2417} INFO - at 3.1s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:30] {2223} INFO - iteration 72, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:30] {2417} INFO - at 3.2s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:30] {2223} INFO - iteration 73, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:30] {2417} INFO - at 3.4s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:30] {2223} INFO - iteration 74, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:30] {2417} INFO - at 3.6s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:30] {2223} INFO - iteration 75, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:30] {2417} INFO - at 3.7s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:30] {2223} INFO - iteration 76, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.0s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 77, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.0s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 78, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.2s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 79, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.4s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 80, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.5s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 81, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.8s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 82, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:31] {2417} INFO - at 4.9s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:31] {2223} INFO - iteration 83, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:32] {2417} INFO - at 5.3s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:32] {2223} INFO - iteration 84, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:32] {2417} INFO - at 5.4s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:32] {2223} INFO - iteration 85, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:32] {2417} INFO - at 5.6s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:32] {2223} INFO - iteration 86, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:32] {2417} INFO - at 5.8s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:32] {2223} INFO - iteration 87, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:33] {2417} INFO - at 6.4s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:33] {2223} INFO - iteration 88, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:33] {2417} INFO - at 6.5s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:33] {2223} INFO - iteration 89, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:33] {2417} INFO - at 6.6s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:33] {2223} INFO - iteration 90, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:33] {2417} INFO - at 6.8s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:33] {2223} INFO - iteration 91, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:34] {2417} INFO - at 7.2s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:34] {2223} INFO - iteration 92, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:34] {2417} INFO - at 7.3s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:34] {2223} INFO - iteration 93, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:34] {2417} INFO - at 7.5s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:34] {2223} INFO - iteration 94, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:34] {2417} INFO - at 7.6s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:34] {2223} INFO - iteration 95, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:34] {2417} INFO - at 7.7s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:34] {2223} INFO - iteration 96, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.1s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:35] {2223} INFO - iteration 97, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.1s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:35] {2223} INFO - iteration 98, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.5s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:35] {2223} INFO - iteration 99, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.6s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:35] {2223} INFO - iteration 100, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.7s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:35] {2223} INFO - iteration 101, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.8s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:35] {2223} INFO - iteration 102, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:35] {2417} INFO - at 8.9s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 103, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:36] {2417} INFO - at 9.0s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 104, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:36] {2417} INFO - at 9.1s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 105, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:36] {2417} INFO - at 9.2s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 106, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:36] {2417} INFO - at 9.4s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 107, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:36] {2417} INFO - at 9.4s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 108, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:36] {2417} INFO - at 9.6s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:36] {2223} INFO - iteration 109, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.0s,\testimator my_xgb1's best error=0.3716,\tbest estimator my_xgb1's best error=0.3716\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 110, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.1s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 111, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.2s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 112, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.3s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 113, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.4s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 114, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.4s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 115, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.4s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 116, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.5s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 117, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.6s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 118, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.7s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 119, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.7s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 120, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.8s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 121, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:37] {2417} INFO - at 10.8s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:37] {2223} INFO - iteration 122, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.0s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 123, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.1s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 124, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.2s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 125, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.3s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 126, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.4s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 127, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.6s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 128, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.6s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 129, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.7s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 130, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.8s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 131, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.8s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 132, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:38] {2417} INFO - at 11.9s,\testimator my_xgb1's best error=0.3499,\tbest estimator my_xgb1's best error=0.3499\n", + "[flaml.automl: 11-23 01:30:38] {2223} INFO - iteration 133, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 134, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 135, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 136, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 137, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 138, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 139, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 140, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 141, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 142, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 143, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 144, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:39] {2417} INFO - at 12.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:39] {2223} INFO - iteration 145, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 146, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 147, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 148, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 149, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 150, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 151, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 152, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 153, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 154, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 155, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 156, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:40] {2417} INFO - at 13.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:40] {2223} INFO - iteration 157, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 158, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 159, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 160, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 161, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 162, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 163, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:41] {2417} INFO - at 14.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:41] {2223} INFO - iteration 164, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 165, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 166, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 167, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 168, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 169, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 170, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 171, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 172, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 173, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 174, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 175, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:42] {2417} INFO - at 15.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:42] {2223} INFO - iteration 176, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 177, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 178, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 179, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 180, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 181, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 182, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 183, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 184, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 185, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:43] {2417} INFO - at 16.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:43] {2223} INFO - iteration 186, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 187, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 188, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 189, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 190, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 191, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 192, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 193, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 194, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 195, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:44] {2417} INFO - at 17.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:44] {2223} INFO - iteration 196, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 197, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 198, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 199, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 200, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 201, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 202, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 203, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 204, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:45] {2417} INFO - at 18.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:45] {2223} INFO - iteration 205, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 206, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 207, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 208, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 209, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 210, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 211, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 212, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 213, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 214, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:46] {2417} INFO - at 19.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:46] {2223} INFO - iteration 215, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 216, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 217, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 218, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 219, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 220, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 221, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 222, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 223, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:47] {2417} INFO - at 20.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:47] {2223} INFO - iteration 224, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 225, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 226, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 227, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 228, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 229, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 230, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 231, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:48] {2417} INFO - at 21.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:48] {2223} INFO - iteration 232, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 21.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 233, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 234, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 235, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 236, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 237, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 238, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 239, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 240, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 241, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 242, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:49] {2417} INFO - at 22.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:49] {2223} INFO - iteration 243, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 244, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 245, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 246, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 247, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 248, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 249, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 250, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 251, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:50] {2223} INFO - iteration 252, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:50] {2417} INFO - at 23.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 253, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 254, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 255, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 256, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 257, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 258, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 259, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 260, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 261, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:51] {2417} INFO - at 24.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:51] {2223} INFO - iteration 262, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 263, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 264, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 265, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 266, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 267, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 268, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 269, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 270, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 271, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:52] {2417} INFO - at 25.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:52] {2223} INFO - iteration 272, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 25.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 273, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 274, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 275, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 276, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 277, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 278, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 279, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 280, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 281, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:53] {2417} INFO - at 26.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:53] {2223} INFO - iteration 282, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 26.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 283, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 284, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 285, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 286, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 287, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 288, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 289, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 290, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 291, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 292, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:54] {2417} INFO - at 27.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:54] {2223} INFO - iteration 293, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 294, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.1s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 295, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 296, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 297, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.4s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 298, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.5s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 299, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 300, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 301, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.7s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 302, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 303, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:55] {2417} INFO - at 28.9s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:55] {2223} INFO - iteration 304, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 305, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 306, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.2s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 307, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.3s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 308, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.6s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 309, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 310, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:56] {2417} INFO - at 29.8s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:56] {2223} INFO - iteration 311, current learner my_xgb1\n", + "[flaml.automl: 11-23 01:30:57] {2417} INFO - at 30.0s,\testimator my_xgb1's best error=0.3347,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:57] {2223} INFO - iteration 312, current learner my_xgb2\n", + "[flaml.automl: 11-23 01:30:57] {2417} INFO - at 30.0s,\testimator my_xgb2's best error=4.1611,\tbest estimator my_xgb1's best error=0.3347\n", + "[flaml.automl: 11-23 01:30:57] {2629} INFO - retrain my_xgb1 for 0.1s\n", + "[flaml.automl: 11-23 01:30:57] {2634} INFO - retrained model: \n", + "[flaml.automl: 11-23 01:30:57] {2014} INFO - fit succeeded\n", + "[flaml.automl: 11-23 01:30:57] {2016} INFO - Time taken to find the best model: 11.981720209121704\n" + ] + } + ], "source": [ "import numpy as np \n", "\n", - "''' define your customized objective function '''\n", + "# define your customized objective function\n", "def logregobj(preds, dtrain):\n", " labels = dtrain.get_label()\n", " preds = 1.0 / (1.0 + np.exp(-preds)) # transform raw leaf weight\n", @@ -543,21 +1248,19 @@ " hess = preds * (1.0 - preds)\n", " return grad, hess\n", "\n", - "''' create customized XGBoost learners class with your objective function '''\n", + "# create customized XGBoost learners class with your objective function\n", "from flaml.model import XGBoostEstimator\n", "\n", "\n", "class MyXGB1(XGBoostEstimator):\n", - " '''XGBoostEstimator with the logregobj function as the objective function\n", - " '''\n", + " \"XGBoostEstimator with the logregobj function as the objective function\"\n", "\n", " def __init__(self, **config):\n", " super().__init__(objective=logregobj, **config) \n", "\n", "\n", "class MyXGB2(XGBoostEstimator):\n", - " '''XGBoostEstimator with 'reg:squarederror' as the objective function\n", - " '''\n", + " \"\"\"XGBoostEstimator with 'reg:squarederror' as the objective function\"\"\"\n", "\n", " def __init__(self, **config):\n", " super().__init__(objective='reg:gamma', **config)\n", @@ -575,235 +1278,26 @@ " \"log_file_name\": 'houses_experiment_my_xgb.log', # flaml log file\n", "}\n", "automl.fit(X_train=X_train, y_train=y_train, **settings)" - ], - "outputs": [ - { - "output_type": "stream", - "name": "stderr", - "text": [ - "[flaml.automl: 09-29 23:08:00] {1446} INFO - Data split method: uniform\n", - "[flaml.automl: 09-29 23:08:00] {1450} INFO - Evaluation method: holdout\n", - "[flaml.automl: 09-29 23:08:00] {1496} INFO - Minimizing error metric: 1-r2\n", - "[flaml.automl: 09-29 23:08:00] {1533} INFO - List of ML learners in AutoML Run: ['my_xgb1', 'my_xgb2']\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 0, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1880} INFO - Estimated sufficient time budget=443s. Estimated necessary time budget=0s.\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.1s,\testimator my_xgb1's best error=53750617.1059,\tbest estimator my_xgb1's best error=53750617.1059\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 1, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.1s,\testimator my_xgb1's best error=260718.5183,\tbest estimator my_xgb1's best error=260718.5183\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 2, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.2s,\testimator my_xgb2's best error=4.1611,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 3, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.2s,\testimator my_xgb2's best error=4.1611,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 4, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.3s,\testimator my_xgb1's best error=260718.5183,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 5, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.3s,\testimator my_xgb1's best error=260718.5183,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 6, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.4s,\testimator my_xgb1's best error=40726.5769,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 7, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.4s,\testimator my_xgb1's best error=1918.9637,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 8, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.5s,\testimator my_xgb1's best error=1918.9637,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 9, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.5s,\testimator my_xgb1's best error=1918.9637,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 10, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.6s,\testimator my_xgb2's best error=4.1611,\tbest estimator my_xgb2's best error=4.1611\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 11, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.6s,\testimator my_xgb2's best error=4.1603,\tbest estimator my_xgb2's best error=4.1603\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 12, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.7s,\testimator my_xgb2's best error=4.1603,\tbest estimator my_xgb2's best error=4.1603\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 13, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:00] {1952} INFO - at 0.7s,\testimator my_xgb2's best error=4.1603,\tbest estimator my_xgb2's best error=4.1603\n", - "[flaml.automl: 09-29 23:08:00] {1763} INFO - iteration 14, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 0.8s,\testimator my_xgb1's best error=1918.9637,\tbest estimator my_xgb2's best error=4.1603\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 15, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 0.8s,\testimator my_xgb2's best error=3.8476,\tbest estimator my_xgb2's best error=3.8476\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 16, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 0.9s,\testimator my_xgb1's best error=93.9115,\tbest estimator my_xgb2's best error=3.8476\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 17, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.0s,\testimator my_xgb2's best error=0.3645,\tbest estimator my_xgb2's best error=0.3645\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 18, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.1s,\testimator my_xgb2's best error=0.3645,\tbest estimator my_xgb2's best error=0.3645\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 19, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.2s,\testimator my_xgb2's best error=0.3139,\tbest estimator my_xgb2's best error=0.3139\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 20, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.2s,\testimator my_xgb1's best error=93.9115,\tbest estimator my_xgb2's best error=0.3139\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 21, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.3s,\testimator my_xgb1's best error=12.3445,\tbest estimator my_xgb2's best error=0.3139\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 22, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.4s,\testimator my_xgb2's best error=0.3139,\tbest estimator my_xgb2's best error=0.3139\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 23, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.4s,\testimator my_xgb2's best error=0.3139,\tbest estimator my_xgb2's best error=0.3139\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 24, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.5s,\testimator my_xgb1's best error=12.3445,\tbest estimator my_xgb2's best error=0.3139\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 25, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.6s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 26, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:01] {1952} INFO - at 1.7s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:01] {1763} INFO - iteration 27, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 1.9s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 28, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 1.9s,\testimator my_xgb1's best error=12.3445,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 29, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.0s,\testimator my_xgb1's best error=4.1558,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 30, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.0s,\testimator my_xgb1's best error=2.4948,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 31, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.2s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 32, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.2s,\testimator my_xgb1's best error=2.4948,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 33, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.3s,\testimator my_xgb1's best error=2.4948,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 34, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.5s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 35, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.6s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 36, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.6s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 37, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:02] {1952} INFO - at 2.7s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:02] {1763} INFO - iteration 38, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:03] {1952} INFO - at 3.0s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:03] {1763} INFO - iteration 39, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:03] {1952} INFO - at 3.1s,\testimator my_xgb2's best error=0.2254,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:03] {1763} INFO - iteration 40, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:03] {1952} INFO - at 3.1s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.2254\n", - "[flaml.automl: 09-29 23:08:03] {1763} INFO - iteration 41, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:03] {1952} INFO - at 3.6s,\testimator my_xgb2's best error=0.1900,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:03] {1763} INFO - iteration 42, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:04] {1952} INFO - at 4.0s,\testimator my_xgb2's best error=0.1900,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:04] {1763} INFO - iteration 43, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:04] {1952} INFO - at 4.2s,\testimator my_xgb2's best error=0.1900,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:04] {1763} INFO - iteration 44, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:04] {1952} INFO - at 4.3s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:04] {1763} INFO - iteration 45, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:04] {1952} INFO - at 4.3s,\testimator my_xgb2's best error=0.1900,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:04] {1763} INFO - iteration 46, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:04] {1952} INFO - at 4.4s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:04] {1763} INFO - iteration 47, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:04] {1952} INFO - at 4.4s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:04] {1763} INFO - iteration 48, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.2s,\testimator my_xgb2's best error=0.1900,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 49, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.3s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 50, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.3s,\testimator my_xgb1's best error=1.4151,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 51, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.4s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 52, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.5s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 53, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.6s,\testimator my_xgb2's best error=0.1900,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 54, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.7s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 55, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:05] {1952} INFO - at 5.7s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1900\n", - "[flaml.automl: 09-29 23:08:05] {1763} INFO - iteration 56, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:07] {1952} INFO - at 7.1s,\testimator my_xgb2's best error=0.1865,\tbest estimator my_xgb2's best error=0.1865\n", - "[flaml.automl: 09-29 23:08:07] {1763} INFO - iteration 57, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:07] {1952} INFO - at 7.4s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1865\n", - "[flaml.automl: 09-29 23:08:07] {1763} INFO - iteration 58, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:08] {1952} INFO - at 7.9s,\testimator my_xgb2's best error=0.1790,\tbest estimator my_xgb2's best error=0.1790\n", - "[flaml.automl: 09-29 23:08:08] {1763} INFO - iteration 59, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:09] {1952} INFO - at 9.1s,\testimator my_xgb2's best error=0.1790,\tbest estimator my_xgb2's best error=0.1790\n", - "[flaml.automl: 09-29 23:08:09] {1763} INFO - iteration 60, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:09] {1952} INFO - at 9.2s,\testimator my_xgb2's best error=0.1790,\tbest estimator my_xgb2's best error=0.1790\n", - "[flaml.automl: 09-29 23:08:09] {1763} INFO - iteration 61, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:13] {1952} INFO - at 12.8s,\testimator my_xgb2's best error=0.1707,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:13] {1763} INFO - iteration 62, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:13] {1952} INFO - at 12.9s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:13] {1763} INFO - iteration 63, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:13] {1952} INFO - at 13.0s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:13] {1763} INFO - iteration 64, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:14] {1952} INFO - at 14.5s,\testimator my_xgb2's best error=0.1707,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:14] {1763} INFO - iteration 65, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:14] {1952} INFO - at 14.7s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:14] {1763} INFO - iteration 66, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:14] {1952} INFO - at 14.7s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:14] {1763} INFO - iteration 67, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:18] {1952} INFO - at 18.5s,\testimator my_xgb2's best error=0.1707,\tbest estimator my_xgb2's best error=0.1707\n", - "[flaml.automl: 09-29 23:08:18] {1763} INFO - iteration 68, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:22] {1952} INFO - at 22.7s,\testimator my_xgb2's best error=0.1699,\tbest estimator my_xgb2's best error=0.1699\n", - "[flaml.automl: 09-29 23:08:22] {1763} INFO - iteration 69, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:23] {1952} INFO - at 23.0s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1699\n", - "[flaml.automl: 09-29 23:08:23] {1763} INFO - iteration 70, current learner my_xgb2\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.1s,\testimator my_xgb2's best error=0.1685,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 71, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.1s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 72, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.2s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 73, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.4s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 74, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.5s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 75, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.6s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 76, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:28] {1952} INFO - at 28.7s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:28] {1763} INFO - iteration 77, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 28.8s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 78, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 28.9s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 79, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.0s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 80, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.1s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 81, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.2s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 82, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.3s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 83, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.4s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 84, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.6s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 85, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:29] {1952} INFO - at 29.7s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:29] {1763} INFO - iteration 86, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:30] {1952} INFO - at 29.8s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:30] {1763} INFO - iteration 87, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:30] {1952} INFO - at 29.9s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:30] {1763} INFO - iteration 88, current learner my_xgb1\n", - "[flaml.automl: 09-29 23:08:30] {1952} INFO - at 30.0s,\testimator my_xgb1's best error=1.0011,\tbest estimator my_xgb2's best error=0.1685\n", - "[flaml.automl: 09-29 23:08:30] {2059} INFO - selected model: \n", - "[flaml.automl: 09-29 23:08:35] {2122} INFO - retrain my_xgb2 for 4.9s\n", - "[flaml.automl: 09-29 23:08:35] {2128} INFO - retrained model: \n", - "[flaml.automl: 09-29 23:08:35] {1557} INFO - fit succeeded\n", - "[flaml.automl: 09-29 23:08:35] {1558} INFO - Time taken to find the best model: 28.05234169960022\n", - "[flaml.automl: 09-29 23:08:35] {1569} WARNING - Time taken to find the best model is 94% of the provided time budget and not all estimators' hyperparameter search converged. Consider increasing the time budget.\n" - ] - } - ], - "metadata": { - "tags": [] - } + ] }, { "cell_type": "code", - "execution_count": 17, - "source": [ - "print('Best hyperparmeter config:', automl.best_config)\n", - "print('Best r2 on validation data: {0:.4g}'.format(1-automl.best_loss))\n", - "print('Training duration of best run: {0:.4g} s'.format(automl.best_config_train_time))\n", - "\n", - "y_pred = automl.predict(X_test)\n", - "print('Predicted labels', y_pred)\n", - "print('True labels', y_test)\n", - "\n", - "from flaml.ml import sklearn_metric_loss_score\n", - "print('r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))\n", - "print('mse', '=', sklearn_metric_loss_score('mse', y_pred, y_test))\n", - "print('mae', '=', sklearn_metric_loss_score('mae', y_pred, y_test))" - ], + "execution_count": 18, + "metadata": { + "tags": [] + }, "outputs": [ { - "output_type": "stream", "name": "stdout", + "output_type": "stream", "text": [ - "Best hyperparmeter config: {'n_estimators': 810, 'max_leaves': 148, 'min_child_weight': 30.65305732414229, 'learning_rate': 0.05793074143079172, 'subsample': 0.9452642648281835, 'colsample_bylevel': 0.8662229421401874, 'colsample_bytree': 0.7851677398738949, 'reg_alpha': 0.00738292823760415, 'reg_lambda': 1.2202619267865558}\n", - "Best r2 on validation data: 0.8315\n", - "Training duration of best run: 5.028 s\n", - "Predicted labels [146309.06 253975.23 148795.17 ... 192561.88 182641.44 270495.53]\n", - "True labels 14740 136900.0\n", + "Best hyperparmeter config: {'n_estimators': 28, 'max_leaves': 182, 'max_depth': 0, 'min_child_weight': 0.001, 'learning_rate': 0.2276973644896658, 'subsample': 0.6775148384104485, 'colsample_bylevel': 0.9912902070149149, 'colsample_bytree': 1.0, 'reg_alpha': 0.07330248020902469, 'reg_lambda': 0.36054508770487687}\n", + "Best r2 on validation data: 0.6653\n", + "Training duration of best run: 0.09387 s\n", + "Predicted labels\n", + "[172378.17 248509.11 156986.72 ... 201823.47 238128.38 273842.53]\n", + "True labels\n", + "14740 136900.0\n", "10101 241300.0\n", "20566 200700.0\n", "2670 72500.0\n", @@ -815,28 +1309,35 @@ "8522 227300.0\n", "16798 265600.0\n", "Name: median_house_value, Length: 5160, dtype: float64\n", - "r2 = 0.8483896546182459\n", - "mse = 2004062342.1743872\n", - "mae = 28633.257468053536\n" + "r2 = 0.6722200251197084\n", + "mse = 4332761742.09886\n", + "mae = 43937.87377986465\n" ] } ], - "metadata": { - "tags": [] - } - }, - { - "cell_type": "code", - "execution_count": null, - "source": [], - "outputs": [], - "metadata": {} + "source": [ + "print('Best hyperparmeter config:', automl.best_config)\n", + "print('Best r2 on validation data: {0:.4g}'.format(1-automl.best_loss))\n", + "print('Training duration of best run: {0:.4g} s'.format(automl.best_config_train_time))\n", + "\n", + "y_pred = automl.predict(X_test)\n", + "print(f'Predicted labels\\n{y_pred}')\n", + "print(f'True labels\\n{y_test}')\n", + "\n", + "from flaml.ml import sklearn_metric_loss_score\n", + "print('r2', '=', 1 - sklearn_metric_loss_score('r2', y_pred, y_test))\n", + "print('mse', '=', sklearn_metric_loss_score('mse', y_pred, y_test))\n", + "print('mae', '=', sklearn_metric_loss_score('mae', y_pred, y_test))" + ] } ], "metadata": { + "interpreter": { + "hash": "0cfea3304185a9579d09e0953576b57c8581e46e6ebc6dfeb681bc5a511f7544" + }, "kernelspec": { - "name": "python3", - "display_name": "Python 3.8.0 64-bit ('blend': conda)" + "display_name": "Python 3.8.0 64-bit ('blend': conda)", + "name": "python3" }, "language_info": { "codemirror_mode": { @@ -848,12 +1349,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.0" - }, - "interpreter": { - "hash": "0cfea3304185a9579d09e0953576b57c8581e46e6ebc6dfeb681bc5a511f7544" + "version": "3.7.12" } }, "nbformat": 4, "nbformat_minor": 2 -} \ No newline at end of file +}