sklearn.model_selection.ShuffleSplit

class sklearn.model_selection.ShuffleSplit

Validador cruzado de permutación aleatoria

Produce índices para dividir los datos en conjuntos de entrenamiento y de prueba.

Nota: al contrario que otras estrategias de validación cruzada, las separaciones aleatorias 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 de punto flotante (float), debe estar entre 0,0 y 1,0 y representa la proporción del conjunto de datos que se va a incluir en la división de prueba. Si es int, representa el número absoluto de muestras de prueba. Si es None, el valor se establece como el complemento del tamaño del tren. Si train_size también es None, se establecerá en 0,1.

train_sizefloat o int, default=None

Si es de 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.

random_stateentero, instancia de RandomState o None, default=None

Controla la aleatoriedad de los índices de entrenamiento y prueba producidos. Pase 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 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]

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.

yarray-like de forma (n_samples,)

La variable objetivo para los problemas de aprendizaje supervisado.

groupsarray-like de forma (n_samples,), default=None

Agrupa las etiquetas de las muestras utilizadas al separar el conjunto de datos en conjunto de entrenamiento/prueba.

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 de 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.ShuffleSplit