def METHOD_NAME(self, X, y):
    """Fit a pipeline on cases (X,y), where y is the target variable.
    Parameters
    ----------
    X : 3D np.array of shape = [n_instances, n_dimensions, series_length]
        The training data.
    y : array-like, shape = [n_instances]
        The class labels.
    Returns
    -------
    self :
        Reference to self.
    Notes
    -----
    Changes state by creating a fitted model that updates attributes
    ending in "_" and sets is_fitted flag to True.
    """
    self.n_instances_, self.n_dims_, self.series_length_ = X.shape
    self._rotf = RotationForestRegressor(
        n_estimators=self.n_estimators,
        save_transformed_data=self.save_transformed_data,
        n_jobs=self._n_jobs,
        random_state=self.random_state,
    )
    self._tsfresh = TSFreshFeatureExtractor(
        default_fc_parameters=self.default_fc_parameters,
        n_jobs=self._n_jobs,
        chunksize=self.chunksize,
        show_warnings=self.verbose > 1,
        disable_progressbar=self.verbose < 1,
    )
    X_t = self._tsfresh.fit_transform(X, y)
    self._rotf.fit(X_t, y)
    if self.save_transformed_data:
        self.transformed_data_ = X_t
    return self