Add objective parameter to LGBMEstimator search space (#1474)

* Initial plan

* Add objective parameter to LGBMEstimator search_space

Co-authored-by: thinkall <3197038+thinkall@users.noreply.github.com>

* Add test for LGBMEstimator objective parameter

Co-authored-by: thinkall <3197038+thinkall@users.noreply.github.com>

* Fix format error

* Remove changes, just add a test to verify the current supported usage

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: thinkall <3197038+thinkall@users.noreply.github.com>
Co-authored-by: Li Jiang <bnujli@gmail.com>
Co-authored-by: Li Jiang <lijiang1@microsoft.com>
This commit is contained in:
Copilot
2026-01-19 21:10:21 +08:00
committed by GitHub
parent f1817ea7b1
commit 46a406edd4

View File

@@ -72,5 +72,39 @@ def test_custom_hp():
print(automl.best_config_per_estimator)
def test_lgbm_objective():
"""Test that objective parameter can be set via custom_hp for LGBMEstimator"""
import numpy as np
# Create a simple regression dataset
np.random.seed(42)
X_train = np.random.rand(100, 5)
y_train = np.random.rand(100) * 100 # Scale to avoid division issues with MAPE
automl = AutoML()
settings = {
"time_budget": 3,
"metric": "mape",
"task": "regression",
"estimator_list": ["lgbm"],
"verbose": 0,
"custom_hp": {"lgbm": {"objective": {"domain": "mape"}}}, # Fixed value, not tuned
}
automl.fit(X_train, y_train, **settings)
# Verify that objective was set correctly
assert "objective" in automl.best_config, "objective should be in best_config"
assert automl.best_config["objective"] == "mape", "objective should be 'mape'"
# Verify the model has the correct objective
if hasattr(automl.model, "estimator") and hasattr(automl.model.estimator, "get_params"):
model_params = automl.model.estimator.get_params()
assert model_params.get("objective") == "mape", "Model should use 'mape' objective"
print("Test passed: objective parameter works correctly with LGBMEstimator")
if __name__ == "__main__":
test_custom_hp()
test_lgbm_objective()