mirror of
https://github.com/microsoft/FLAML.git
synced 2026-02-09 02:09:16 +08:00
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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user