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
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.
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 paraX
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.