class_docstr: A basic cross-validation iterator with random trainsets and testsets.
  
  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 datasets.
  
  See an example in the :ref:`User Guide <use_cross_validation_iterators>`.
  
  Args:
      n_splits(int): The number of folds.
      test_size(float or int ``None``): If float, it represents the
          proportion of ratings to include in the testset. If int,
          represents the absolute number of ratings in the testset. If
          ``None``, the value is set to the complement of the trainset size.
          Default is ``.2``.
      train_size(float or int or ``None``): If float, it represents the
          proportion of ratings to include in the trainset. If int,
          represents the absolute number of ratings in the trainset. If
          ``None``, the value is set to the complement of the testset size.
          Default is ``None``.
      random_state(int, RandomState instance from numpy, or ``None``):
          Determines the RNG that will be used for determining the folds. If
          int, ``random_state`` will be used as a seed for a new RNG. This is
          useful to get the same splits over multiple calls to ``split()``.
          If RandomState instance, this same instance is used as RNG. If
          ``None``, the current RNG from numpy is used. ``random_state`` is
          only used if ``shuffle`` is ``True``.  Default is ``None``.
      shuffle(bool): Whether to shuffle the ratings in the ``data`` parameter
          of the ``split()`` method. Shuffling is not done in-place. Setting
          this to `False` defeats the purpose of this iterator, but it's
          useful for the implementation of :func:`train_test_split`. Default
          is ``True``.
class_docstr_tok: ["A","basic","cross-validation","iterator","with","random","trainsets","and","testsets",".","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","datasets",".","See","an","example","in","the",":","ref",":","`","User","Guide","<","use_cross_validation_iterators",">","`",".","Args",":","n_splits","(","int",")",":","The","number","of","folds",".","test_size","(","float","or","int","``","None","``",")",":","If","float",",","it","represents","the","proportion","of","ratings","to","include","in","the","testset",".","If","int",",","represents","the","absolute","number","of","ratings","in","the","testset",".","If","``","None","``",",","the","value","is","set","to","the","complement","of","the","trainset","size",".","Default","is","``",".2","``",".","train_size","(","float","or","int","or","``","None","``",")",":","If","float",",","it","represents","the","proportion","of","ratings","to","include","in","the","trainset",".","If","int",",","represents","the","absolute","number","of","ratings","in","the","trainset",".","If","``","None","``",",","the","value","is","set","to","the","complement","of","the","testset","size",".","Default","is","``","None","``",".","random_state","(","int",",","RandomState","instance","from","numpy",",","or","``","None","``",")",":","Determines","the","RNG","that","will","be","used","for","determining","the","folds",".","If","int",",","``","random_state","``","will","be","used","as","a","seed","for","a","new","RNG",".","This","is","useful","to","get","the","same","splits","over","multiple","calls","to","``","split","(",")","``",".","If","RandomState","instance",",","this","same","instance","is","used","as","RNG",".","If","``","None","``",",","the","current","RNG","from","numpy","is","used",".","``","random_state","``","is","only","used","if","``","shuffle","``","is","``","True","``",".","Default","is","``","None","``",".","shuffle","(","bool",")",":","Whether","to","shuffle","the","ratings","in","the","``","data","``","parameter","of","the","``","split","(",")","``","method",".","Shuffling","is","not","done","in-place",".","Setting","this","to","`","False","`","defeats","the","purpose","of","this","iterator",",","but","it's","useful","for","the","implementation","of",":","func",":","`","train_test_split","`",".","Default","is","``","True","``","."]
code: def get_n_folds(self):
      return self.n_splits
  
imports: import numbers
  from collections import defaultdict
  from itertools import chain
  from math import ceil, floor
  import numpy
  from ..utils import get_rng
label_desc: Use image node_id 4 for calling the ShuffleSplit obj's underlying member method code with example usage: obj.get_n_folds() and returns: self