sklearn.model_selection.StratifiedShuffleSplit

class sklearn.model_selection.StratifiedShuffleSplit

Validador cruzado ShuffleSplit estratificado

Proporciona índices de entrenamiento/prueba para dividir los datos en conjuntos de entrenamiento/prueba.

Este objeto de validación cruzada es una fusión de StratifiedKFold y ShuffleSplit, que devuelve pliegues aleatorios estratificados. Los pliegues se realizan conservando el porcentaje de muestras para cada clase.

Nota: al igual que la estrategia ShuffleSplit, las separaciones aleatorias estratificadas no garantizan que todos los pliegues sean diferentes, aunque esto es muy probable para conjuntos de datos de gran tamaño.

Más información en el Manual de usuario.

Parámetros
n_splitsint, default=10

Número de iteraciones remezcladas y separadas.

test_sizefloat o int, default=None

Si es punto flotante (float), debe estar entre 0.0 y 1.0 y representa la proporción del conjunto de datos a incluir en la división del tren. Si es int, representa el número absoluto de muestras de entrenamiento. Si es None, el valor se establece automáticamente en el complemento del tamaño de la prueba.

train_sizefloat o int, default=None

Si es float, debe estar entre 0.0 y 1.0 y representa la proporción del conjunto de datos a incluir en la división del tren. Si es int, representa el número absoluto de muestras de tren. Si es None, el valor se establece automáticamente en el complemento del tamaño de la prueba.

random_stateentero, instancia de o None, default=None

Controla la aleatoriedad de los índices de entrenamiento y prueba producidos. Pasa un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.

Ejemplos

>>> 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 = X[train_index], X[test_index]
...     y_train, y_test = y[train_index], y[test_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]

Métodos

get_n_splits

Devuelve el número de iteraciones divididas en el validador cruzado

split

Generar índices para dividir los datos en conjunto de entrenamiento y de prueba.

get_n_splits()

Devuelve el número de iteraciones divididas en el validador cruzado

Parámetros
Xobjeto

Siempre ignorado, existe por compatibilidad.

yobjeto

Siempre ignorado, existe por compatibilidad.

groupsobjeto

Siempre ignorado, existe por compatibilidad.

Devuelve
n_splitsint

Devuelve el número de iteraciones divididas en el validador cruzado.

split()

Generar índices para dividir los datos en conjunto de entrenamiento y de prueba.

Parámetros
Xarray-like de forma (n_samples, n_features)

Datos de entrenamiento, donde n_samples es el número de muestras y n_features es el número de características.

Ten en cuenta que proporcionar y es suficiente para generar las divisiones y, por lo tanto, np.zeros(n_samples) puede ser utilizado como un marcador de posición para X en lugar de datos de entrenamiento reales.

yarray-like de forma (n_samples,) o (n_samples, n_labels)

La variable objetivo para los problemas de aprendizaje supervisado. La estratificación se realiza en base a las etiquetas y.

groupsobjeto

Siempre ignorado, existe por compatibilidad.

Produce
trainndarray

El entrenamiento establece los índices para esa división.

testndarray

Los índices del conjunto de pruebas para esa división.

Notas

Los separadores CV aleatorios pueden devolver resultados diferentes para cada llamada de separación. Puedes hacer que los resultados sean idénticos estableciendo random_state a un número entero.

Ejemplos usando sklearn.model_selection.StratifiedShuffleSplit