Пример #1
0
    def test_init_(self) -> None:

        target_param_names = ["learning_rate"]  # Invalid parameter name.

        with pytest.raises(NotImplementedError) as execinfo:
            _OptunaObjective(target_param_names, {}, None, {}, 0, "tune_learning_rate", None)

        assert execinfo.type is NotImplementedError
Пример #2
0
    def test_call(self):
        # type: () -> None

        target_param_names = ["lambda_l1"]
        lgbm_params = {}  # type: Dict[str, Any]
        train_set = lgb.Dataset(None)
        val_set = lgb.Dataset(None)

        lgbm_kwargs = {"valid_sets": val_set}
        best_score = -np.inf

        with turnoff_train():
            objective = _OptunaObjective(
                target_param_names,
                lgbm_params,
                train_set,
                lgbm_kwargs,
                best_score,
                "tune_lambda_l1",
                None,
            )
            study = optuna.create_study(direction="minimize")
            study.optimize(objective, n_trials=10)

            assert study.best_value == 0.5
Пример #3
0
 def _create_objective(
     self,
     target_param_names: List[str],
     train_set: "lgb.Dataset",
     step_name: str,
     pbar: Optional[tqdm.tqdm],
 ) -> _OptunaObjective:
     return _OptunaObjective(
         target_param_names,
         self.lgbm_params,
         train_set,
         self.lgbm_kwargs,
         self.best_score,
         step_name=step_name,
         model_dir=self._model_dir,
         pbar=pbar,
     )