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 datasets.
Read more in the :ref:`User Guide <cross_validation>`.
Parameters ---------- n_splits : int, default=10 Number of re-shuffling & splitting iterations.
test_size : float or int, default=None If float, should be between 0.0 and 1.0 and represent the proportion of the dataset to include in the test split. If int, represents the absolute number of test samples. If None, the value is set to the complement of the train size. If ``train_size`` is also None, it will be set to 0.1.
train_size : float or int, default=None If float, should be between 0.0 and 1.0 and represent the proportion of the dataset to include in the train split. If int, represents the absolute number of train samples. If None, the value is automatically set to the complement of the test size.
random_state : int or RandomState instance, default=None Controls the randomness of the training and testing indices produced. Pass an int for reproducible output across multiple function calls. See :term:`Glossary <random_state>`.
Examples -------- >>> import numpy as np >>> from sklearn.model_selection import ShuffleSplit >>> X = np.array([1, 2], [3, 4], [5, 6], [7, 8], [3, 4], [5, 6]
) >>> y = np.array(1, 2, 1, 2, 1, 2
) >>> rs = ShuffleSplit(n_splits=5, test_size=.25, random_state=0) >>> rs.get_n_splits(X) 5 >>> print(rs) ShuffleSplit(n_splits=5, random_state=0, test_size=0.25, train_size=None) >>> for train_index, test_index in rs.split(X): ... print('TRAIN:', train_index, 'TEST:', test_index) TRAIN: 1 3 0 4
TEST: 5 2
TRAIN: 4 0 2 5
TEST: 1 3
TRAIN: 1 2 4 0
TEST: 3 5
TRAIN: 3 4 1 0
TEST: 5 2
TRAIN: 3 5 1 0
TEST: 2 4
>>> rs = ShuffleSplit(n_splits=5, train_size=0.5, test_size=.25, ... random_state=0) >>> for train_index, test_index in rs.split(X): ... print('TRAIN:', train_index, 'TEST:', test_index) TRAIN: 1 3 0
TEST: 5 2
TRAIN: 4 0 2
TEST: 1 3
TRAIN: 1 2 4
TEST: 3 5
TRAIN: 3 4 1
TEST: 5 2
TRAIN: 3 5 1
TEST: 2 4