sklearn.model_selection.GroupShuffleSplit

class sklearn.model_selection.GroupShuffleSplit

Iterador de validación cruzada Shuffle-Group(s)-Out

Proporciona índices aleatorios de entrenamiento/prueba para dividir los datos según un grupo proporcionado por terceros. Esta información de grupo puede utilizarse para codificar estratificaciones específicas de dominio arbitrarias de las muestras como enteros.

Por ejemplo, los grupos podrían ser el año de recolección de las muestras y así permitir la validación cruzada contra las divisiones basadas en el tiempo.

La diferencia entre LeavePGroupsOut y GroupShuffleSplit es que el primero genera divisiones utilizando todos los subconjuntos de tamaño p grupos únicos, mientras que GroupShuffleSplit genera un número determinado por el usuario de divisiones de prueba aleatorias, cada una con una fracción de grupos únicos determinada por el usuario.

Por ejemplo, una alternativa menos intensiva en términos computacionales a LeavePGroupsOut(p=10) sería GroupShuffleSplit(test_size=10, n_splits=100).

Nota: Los parámetros test_size y train_size se refieren a grupos, y no a muestras, como en ShuffleSplit.

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

Parámetros
n_splitsint, default=5

Número de iteraciones remezcladas y separadas.

test_sizefloat, int, default=0.2

Si es float, debe estar entre 0.0 y 1.0 y representa la proporción de grupos a incluir en la división de prueba (redondeado hacia arriba). Si es int, representa el número absoluto de grupos de prueba. Si es None, el valor se establece como el complemento del tamaño de entrenamiento. El valor predeterminado cambiará en la versión 0.21. Seguirá siendo 0.2 sólo si no se especifica train_size, de lo contrario complementará el train_size especificado.

train_sizefloat o int, default=None

Si es float, debe estar entre 0.0 y 1.0 y representa la proporción de los grupos a incluir en la división de entrenamiento. Si es int, representa el número absoluto de grupos 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. 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 GroupShuffleSplit
>>> X = np.ones(shape=(8, 2))
>>> y = np.ones(shape=(8, 1))
>>> groups = np.array([1, 1, 2, 2, 2, 3, 3, 3])
>>> print(groups.shape)
(8,)
>>> gss = GroupShuffleSplit(n_splits=2, train_size=.7, random_state=42)
>>> gss.get_n_splits()
2
>>> for train_idx, test_idx in gss.split(X, y, groups):
...     print("TRAIN:", train_idx, "TEST:", test_idx)
TRAIN: [2 3 4 5 6 7] TEST: [0 1]
TRAIN: [0 1 5 6 7] TEST: [2 3 4]

Métodos

get_n_splits

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

split

Genera í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
Xobject

Siempre se ignora, existe por compatibilidad.

yobject

Siempre se ignora, existe por compatibilidad.

groupsobject

Siempre se ignora, existe por compatibilidad.

Devuelve
n_splitsint

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

split()

Genera í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,), default=None

La variable objetivo para los problemas de aprendizaje supervisado.

groupsarray-like de forma (n_samples,)

Etiquetas de grupo para las muestras utilizadas al dividir el conjunto de datos en conjunto de entrenamiento/prueba.

Produce
trainndarray

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

testndarray

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

Notas

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

Ejemplos utilizando sklearn.model_selection.GroupShuffleSplit