class_docstr: Perform time series splitting for cross validation on InputData structures.
  The difference between TimeSeriesSplit (sklearn) and TsInputDataSplit can be
  demonstrated by an example:
  The time series [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] must be splitted into 3
  parts, where the size of each fold for validation will be 2 elements.
  TimeSeriesSplit (return indices)
      train - [0, 1, 2, 3] test - [4, 5]
      train - [0, 1, 2, 3, 4, 5] test - [6, 7]
      train - [0, 1, 2, 3, 4, 5, 6, 7] test - [8, 9]
  TsInputDataSplit (return values of time series)
      train - [1, 2, 3, 4] test - [1, 2, 3, 4, 5, 6]
      train - [1, 2, 3, 4, 5, 6] test - [1, 2, 3, 4, 5, 6, 7, 8]
      train - [1, 2, 3, 4, 5, 6, 7, 8] test - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
class_docstr_tok: ["Perform","time","series","splitting","for","cross","validation","on","InputData","structures",".","The","difference","between","TimeSeriesSplit","(","sklearn",")","and","TsInputDataSplit","can","be","demonstrated","by","an","example",":","The","time","series","[","1",",","2",",","3",",","4",",","5",",","6",",","7",",","8",",","9",",","10","]","must","be","splitted","into","3","parts",",","where","the","size","of","each","fold","for","validation","will","be","2","elements",".","TimeSeriesSplit","(","return","indices",")","train","-","[","0",",","1",",","2",",","3","]","test","-","[","4",",","5","]","train","-","[","0",",","1",",","2",",","3",",","4",",","5","]","test","-","[","6",",","7","]","train","-","[","0",",","1",",","2",",","3",",","4",",","5",",","6",",","7","]","test","-","[","8",",","9","]","TsInputDataSplit","(","return","values","of","time","series",")","train","-","[","1",",","2",",","3",",","4","]","test","-","[","1",",","2",",","3",",","4",",","5",",","6","]","train","-","[","1",",","2",",","3",",","4",",","5",",","6","]","test","-","[","1",",","2",",","3",",","4",",","5",",","6",",","7",",","8","]","train","-","[","1",",","2",",","3",",","4",",","5",",","6",",","7",",","8","]","test","-","[","1",",","2",",","3",",","4",",","5",",","6",",","7",",","8",",","9",",","10","]"]
docstr: Define indexes for train and validation using
  "in-sample forecasting" algorithm
  
  :param data: InputData for splitting
docstr_tok: ["Define","indexes","for","train","and","validation","using","''","in-sample","forecasting","''","algorithm",":","param","data",":","InputData","for","splitting"]
code: def split(
      self, data: np.ndarray, *args
  ) -> Iterator[Tuple[InputData, InputData]]:
      """Define indexes for train and validation using
      "in-sample forecasting" algorithm
  
      :param data: InputData for splitting
      """
  
      for train_ids, test_ids in super().split(data):
          new_test_ids = np.hstack((train_ids, test_ids))
          yield train_ids, new_test_ids
  
file_path: FEDOT/fedot/core/data/cv_folds.py
imports: from typing import Iterator, Optional, Tuple, Union
  import numpy
  from fedot.core.data.multi_modal import MultiModalData
  from fedot.core.repository.tasks import TaskTypesEnum
  from sklearn.model_selection import KFold, TimeSeriesSplit
  from sklearn.model_selection._split import StratifiedKFold
  from fedot.core.data.data import InputData
  from fedot.core.data.data_split import _split_input_data_by_indexes
label_desc: Use image node_id 2 for calling the TsInputDataSplit obj's underlying member method code with example usage: obj.split(data) without return types