class_docstr: Sliding window time series split.
  
  Create `n_splits` folds with an as equally possible size through a smart variant of a brute force search.
  Groups parameter in `.split()` method should be filled with the time groups (e.g. years)
  
  If `n_splits` is 3 ("*" = train, "x" = test):
  
  ```console
  * * * x x x - - - - -
  - - - * * * x x x - -
  - - - - - - * * * x x
  ```
  
  Parameters
  ----------
  n_splits : int
      Amount of (train, test) splits to generate.
class_docstr_tok: ["Sliding","window","time","series","split",".","Create","`","n_splits","`","folds","with","an","as","equally","possible","size","through","a","smart","variant","of","a","brute","force","search",".","Groups","parameter","in","`",".split","(",")","`","method","should","be","filled","with","the","time","groups","(","e.g",".","years",")","If","`","n_splits","`","is","3","(","``","*","''","=","train",",","``","x","''","=","test",")",":","``","`","console","*","*","*","x","x","x","-","-","-","-","-","-","-","-","*","*","*","x","x","x","-","-","-","-","-","-","-","-","*","*","*","x","x","``","`","Parameters","--","--","--","--","--","n_splits",":","int","Amount","of","(","train",",","test",")","splits","to","generate","."]
docstr: Specify in which group every observation belongs.
  
  Parameters
  ----------
  groups : array-like of shape (n_samples,)
      Array with original groups.
  
  Returns
  -------
  np.ndarray
      Indices for the train and test splits of each fold
docstr_tok: ["Specify","in","which","group","every","observation","belongs",".","Parameters","--","--","--","--","--","groups",":","array-like","of","shape","(","n_samples",",",")","Array","with","original","groups",".","Returns","--","--","--","-","np.ndarray","Indices","for","the","train","and","test","splits","of","each","fold"]
code: def _regroup(self, groups):
      """Specify in which group every observation belongs.
  
      Parameters
      ----------
      groups : array-like of shape (n_samples,)
          Array with original groups.
  
      Returns
      -------
      np.ndarray
          Indices for the train and test splits of each fold
      """
  
      df = self._grouped_df.copy().reset_index()
      # set each unique group to the right group_id to group them into folds
      df.loc[: self._best_splits[0], "group"] = 0
      for group_id, splits in enumerate(
          sliding_window(self._best_splits, 2, 1)
      ):
          try:
              df.loc[splits[0] : splits[1], "group"] = group_id + 1
          except IndexError:
              df.loc[splits[0] :, "group"] = group_id + 1
  
      self._grouped_df = df
      # create a mapper to set every group to the right group_id
      mapper = dict(zip(df["index"], df["group"]))
      return np.vectorize(mapper.get)(groups)
  
imports: import numbers
  from datetime import timedelta
  from itertools import combinations
  from warnings import warn
  import numpy
  import pandas
  from sklearn.exceptions import NotFittedError
  from sklearn.model_selection._split import _BaseKFold, check_array
  from sklearn.utils.validation import indexable
  from sklego.base import Clusterer
  from sklego.common import sliding_window
label_desc: Use image node_id 10 for calling the GroupTimeSeriesSplit obj's underlying member method code with example usage: obj._regroup(groups) and returns: np