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
Devuelve el número de iteraciones divididas en el validador cruzado
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.