class_docstr: Create a function that splits data with K-Fold Cross-Validation resampling.
  
  .. code-block:: python
  
      # create a kfold cross validation splitter with 2 kfold
      kfold_cross_validation_split(0.20)
  
  
  :param k_fold: number of folds.
  :return:
code: def _get_train_val_slices_at_fold_i(
      self, dact_data: DACTData, fold_i: int
  ) -> Tuple[DACTData, DACTData]:
      step = len(dact_data) / float(self._get_k_fold())
      a = int(step * fold_i)
      b = int(step * (fold_i + 1))
      b = min(b, len(dact_data))
  
      train_slice: DACTData = self._concat_fold_dact_data(
          dact_data[:a], dact_data[b:]
      )
      valid_slice: DACTData = dact_data[
          a:b
      ]  # held-out fold against the training data
  
      return train_slice, valid_slice
  
imports: import copy
  import math
  from abc import ABC, abstractmethod
  from typing import Any, List, Optional, Set, Tuple
  import numpy
  from neuraxle.base import ExecutionContext
  from neuraxle.data_container import DIT, EOT, IDT, DACTData
  from neuraxle.data_container import DataContainer
  from neuraxle.data_container import TrainDACT, ValidDACT
label_desc: Use image node_id 5 for calling the KFoldCrossValidationSplitter obj's underlying member method code with example usage: obj._get_train_val_slices_at_fold_i(dact_data, fold_i) and returns: train_slice,  valid_slice