def _fit_one_model( self, model: TimeSeriesForecastingModel, X_split: pd.DataFrame, results: pd.DataFrame, only_model: bool = False, ) -> pd.DataFrame: """ Fits one model on a split and calculates its score and fit time Parameters ---------- model: BaseEstimator, model to fit X_split: pd.DataFrame, subset of training data to fit on results: pd.DataFrame, results dataframe to add score results only_model: bool, use ``only_model`` property to reuse the fitted features Returns ------- """ start_time = time() model_index = self._models_are_equal(model) model.cache_features = True model.fit(X_split, only_model=only_model) scores = model.score(metrics=self.metrics) results.loc[[model_index], ["Train score", "Test score"]] = scores.values fit_time = time() - start_time results.loc[model_index, "Fit time"] = fit_time return results
def time_series_forecasting_model1_cache(features1, model1): return TimeSeriesForecastingModel( features=features1, horizon=2, model=model1, cache_features=True, )
def test_constructor(self, features1, model1): horizon, cache_features = 2, True time_series_forecasting_model = TimeSeriesForecastingModel( features=features1, horizon=horizon, model=model1, cache_features=cache_features, ) assert time_series_forecasting_model.features == features1 assert time_series_forecasting_model.horizon == horizon assert time_series_forecasting_model.model == model1 assert time_series_forecasting_model.cache_features == cache_features