docstr: Shuffle Split
  
  Random permutation cross-validator
  
  Yields indices to split data into training and test sets.
  
  Note: contrary to other cross-validation strategies, random splits do not guarantee that
  all folds will be different, although this is still very likely for sizeable databases.
  
  :param test_size:
  :type test_size:
  
  :param random_state:
  :type random_state:
  
  :return:
code: def shuffle_split(self, test_size=0.1, random_state=None):
      """
      Shuffle Split
  
      Random permutation cross-validator
  
      Yields indices to split data into training and test sets.
  
      Note: contrary to other cross-validation strategies, random splits do not guarantee that
      all folds will be different, although this is still very likely for sizeable databases.
  
      :param test_size:
      :type test_size:
  
      :param random_state:
      :type random_state:
  
      :return:
      """
      ss = ShuffleSplit(
          n_splits=self.n_splits,
          test_size=test_size,
          random_state=random_state,
      )
      trained_model = list(ss.split(self.df))
  
      if self.dir_folds is not None:
          self.write_files(trained_model)
  
file_path: CaseRecommender/caserec/utils/split_database.py
imports: from sklearn.model_selection import KFold, ShuffleSplit
  import os
  from caserec.utils.process_data import ReadFile, WriteFile
label_desc: Use image node_id 5 for calling the SplitDatabase obj's underlying member method code with example usage: obj.shuffle_split(test_size, random_state) without return types