Stratified ShuffleSplit cross-validator
Provides train/test indices to split data in train/test sets.
This cross-validation object is a merge of StratifiedKFold and ShuffleSplit, which returns stratified randomized folds. The folds are made by preserving the percentage of samples for each class.
Note: like the ShuffleSplit strategy, stratified 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 StratifiedShuffleSplit >>> X = np.array([1, 2], [3, 4], [1, 2], [3, 4], [1, 2], [3, 4]
) >>> y = np.array(0, 0, 0, 1, 1, 1
) >>> sss = StratifiedShuffleSplit(n_splits=5, test_size=0.5, random_state=0) >>> sss.get_n_splits(X, y) 5 >>> print(sss) StratifiedShuffleSplit(n_splits=5, random_state=0, ...) >>> for train_index, test_index in sss.split(X, y): ... print('TRAIN:', train_index, 'TEST:', test_index) ... X_train, X_test = Xtrain_index
, Xtest_index
... y_train, y_test = ytrain_index
, ytest_index
TRAIN: 5 2 3
TEST: 4 1 0
TRAIN: 5 1 4
TEST: 0 2 3
TRAIN: 5 0 2
TEST: 4 3 1
TRAIN: 4 1 0
TEST: 2 3 5
TRAIN: 0 5 1
TEST: 3 4 2