class_docstr: Cross validation splitter for time series data
class_docstr_tok: ["Cross","validation","splitter","for","time","series","data"]
docstr: Initializes object with DataFrame and splits data
  
  Parameters
  ----------
  df : pd.DataFrame
      DataFrame object containing time index, response, and other features
  forecast_len : int
      forecast length; default as 1
  incremental_len : int
      the number of observations between each successive backtest period; default as forecast_len
  n_splits : int; default None
      number of splits; when n_splits is specified, min_train_len will be ignored
  min_train_len : int
      the minimum number of observations required for the training period
  window_type : {'expanding', 'rolling }; default 'expanding'
      split scheme
  date_col : str
      optional for user to provide date columns; note that it stills uses discrete index
      as splitting scheme while `date_col` is used for better visualization only
  
  Attributes
  ----------
  _split_scheme : dict{split_meta}
      meta data of ways to split train and test set
docstr_tok: ["Initializes","object","with","DataFrame","and","splits","data","Parameters","--","--","--","--","--","df",":","pd.DataFrame","DataFrame","object","containing","time","index",",","response",",","and","other","features","forecast_len",":","int","forecast","length",";","default","as","1","incremental_len",":","int","the","number","of","observations","between","each","successive","backtest","period",";","default","as","forecast_len","n_splits",":","int",";","default","None","number","of","splits",";","when","n_splits","is","specified",",","min_train_len","will","be","ignored","min_train_len",":","int","the","minimum","number","of","observations","required","for","the","training","period","window_type",":","{","'expanding","'",",","'rolling","}",";","default","'expanding'","split","scheme","date_col",":","str","optional","for","user","to","provide","date","columns",";","note","that","it","stills","uses","discrete","index","as","splitting","scheme","while","`","date_col","`","is","used","for","better","visualization","only","Attributes","--","--","--","--","--","_split_scheme",":","dict","{","split_meta","}","meta","data","of","ways","to","split","train","and","test","set"]
code: def __init__(
      self,
      df,
      forecast_len=1,
      incremental_len=None,
      n_splits=None,
      min_train_len=None,
      window_type="expanding",
      date_col=None,
  ):
      """Initializes object with DataFrame and splits data
  
      Parameters
      ----------
      df : pd.DataFrame
          DataFrame object containing time index, response, and other features
      forecast_len : int
          forecast length; default as 1
      incremental_len : int
          the number of observations between each successive backtest period; default as forecast_len
      n_splits : int; default None
          number of splits; when n_splits is specified, min_train_len will be ignored
      min_train_len : int
          the minimum number of observations required for the training period
      window_type : {'expanding', 'rolling }; default 'expanding'
          split scheme
      date_col : str
          optional for user to provide date columns; note that it stills uses discrete index
          as splitting scheme while `date_col` is used for better visualization only
  
      Attributes
      ----------
      _split_scheme : dict{split_meta}
          meta data of ways to split train and test set
      """
  
      self.df = df.copy()
      self.min_train_len = min_train_len
      self.incremental_len = incremental_len
      self.forecast_len = forecast_len
      self.n_splits = n_splits
      self.window_type = window_type
      self.date_col = None
      self.dt_array = None
  
      if date_col is not None:
          self.date_col = date_col
          # support cases for multiple observations
          self.dt_array = pd.to_datetime(
              np.sort(self.df[self.date_col].unique())
          )
  
      self._set_defaults()
  
      # validate
      self._validate_params()
  
      # init meta data of how to split
      self._split_scheme = {}
  
      # timeseries cross validation split
      self._set_split_scheme()
  
imports: import pandas
  import numpy
  import matplotlib.pyplot
  from copy import deepcopy
  import inspect
  from .metrics import smape, wmape, mape, mse, mae, rmsse
  from ..exceptions import BacktestException
  from ..constants.constants import TimeSeriesSplitSchemeKeys, BacktestFitKeys
  from ..constants.palette import OrbitPalette
  from orbit.utils.plot import orbit_style_decorator
label_desc: Use image node_id 1 to create a new TimeSeriesSplitter object from inherited base classes: object with example: obj = TimeSeriesSplitter(df, forecast_len, incremental_len, n_splits, min_train_len, window_type, date_col)