diff --git a/python-package/lightgbm/basic.py b/python-package/lightgbm/basic.py index 4cfcd7239dd0..211698ac77ab 100644 --- a/python-package/lightgbm/basic.py +++ b/python-package/lightgbm/basic.py @@ -4886,6 +4886,17 @@ def refit( ) new_params["linear_tree"] = bool(out_is_linear.value) new_params.update(dataset_params) + args_names = inspect.signature(Dataset._lazy_init).parameters.keys() + refit_signature = inspect.signature(self.__class__.refit).parameters + for lazy_init_args in args_names: + if lazy_init_args in refit_signature: + default_val = refit_signature[lazy_init_args].default + current_val = locals().get(lazy_init_args) + is_default = current_val is default_val + + if is_default: + locals()[lazy_init_args] = new_params.get(lazy_init_args, current_val) + new_params.pop(lazy_init_args, None) train_set = Dataset( data=data, label=label,