def fit()

in kats/models/ensemble/kats_ensemble.py [0:0]


    def fit(self, err_method: str = "mape") -> KatsEnsemble:
        """Fit individual forecasting models via calling fitExecutor

        This is the fit methdo to fit individual forecasting model
        """

        self.seasonality = KatsEnsemble.seasonality_detector(self.data)

        # check if self.params["seasonality_length"] is given
        if self.seasonality and self.params["seasonality_length"] is None:
            msg = "The given time series contains seasonality,\
            a `seasonality_length` must be given in params."
            raise _logged_error(msg)

        # set up auto backtesting flag
        auto_backtesting = False if self.params["aggregation"] == "median" else True

        # check fitExecutor
        fitExecutor = self.params.get("fitExecutor")
        if fitExecutor is None:
            fitExecutor = self.fitExecutor

        if self.seasonality:
            # STL decomposition
            sea_data, desea_data = KatsEnsemble.deseasonalize(
                self.data, self.decomposition_method
            )
            self.sea_data = sea_data
            self.desea_data = desea_data

            # we created extra models
            given_models = copy(self.params["models"].models)
            for m in self.params["models"].models:
                if m.model_name.lower() in SMODELS.keys():
                    tmp = copy(m)
                    tmp.model_name = m.model_name + "_smodel"
                    given_models.append(tmp)

            self.model_params = model_params = EnsembleParams(given_models)
            self.fitted, self.weights = fitExecutor(
                data=desea_data,
                models=model_params,
                should_auto_backtest=auto_backtesting,
            )
        else:
            # fit models on the original data
            self.model_params = model_params = EnsembleParams(
                self.params["models"].models
            )
            self.fitted, self.weights = fitExecutor(
                data=self.data,
                models=model_params,
                should_auto_backtest=auto_backtesting,
                err_method=err_method,
            )
        return self