From 72881d3a2b0859c4f08f6a67a578cfa7e429375f Mon Sep 17 00:00:00 2001 From: Daniel Grindrod Date: Tue, 29 Oct 2024 06:21:43 +0000 Subject: [PATCH] fix: Fixing the random state of ElasticNetClassifier by default, to ensure reproduciblity. Also included elasticnet in reproducibility tests (#1374) Co-authored-by: Daniel Grindrod Co-authored-by: Li Jiang --- flaml/automl/model.py | 5 +++++ test/automl/test_regression.py | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/flaml/automl/model.py b/flaml/automl/model.py index 12c3dca36..8e3b88e6a 100644 --- a/flaml/automl/model.py +++ b/flaml/automl/model.py @@ -2429,6 +2429,11 @@ class ElasticNetEstimator(SKLearnEstimator): def __init__(self, task="regression", **config): super().__init__(task, **config) + self.params.update( + { + "random_state": config.get("random_seed", 10242048), + } + ) assert self._task.is_regression(), "ElasticNet for regression task only" self.estimator_class = ElasticNet diff --git a/test/automl/test_regression.py b/test/automl/test_regression.py index 0bef79990..87f8ed6b2 100644 --- a/test/automl/test_regression.py +++ b/test/automl/test_regression.py @@ -236,6 +236,7 @@ def test_multioutput(): "estimator", [ "catboost", + "enet", "extra_tree", "histgb", "kneighbor", @@ -342,6 +343,7 @@ def test_reproducibility_of_catboost_regression_model(): "estimator", [ "catboost", + "enet", "extra_tree", "histgb", "kneighbor", @@ -385,7 +387,6 @@ def test_reproducibility_of_underlying_regression_models(estimator: str): automl._state.X_train_all, automl._state.y_train_all, automl._state.kf, best_model.model, "regression" ) ) - assert pytest.approx(val_loss_flaml) == reproduced_val_loss_underlying_model