sklearn.model_selection
.KFold¶
- class sklearn.model_selection.KFold¶
Validador cruzado K-Folds
Proporciona índices de entrenamiento/prueba para separar los datos en conjuntos de entrenamiento/prueba. Separar el conjunto de datos en k pliegues consecutivos (sin barajar por defecto).
Cada pliegue se utiliza una vez como validación mientras que los k - 1 pliegues restantes forman el conjunto de entrenamiento.
Más información en el Manual de usuario.
- Parámetros
- n_splitsint, default=5
Número de pliegues. Debe ser al menos 2.
Distinto en la versión 0.22: El valor predeterminado de
n_splits
ha cambiado de 3 a 5.- shufflebool, default=False
Si se mezclan los datos antes de separarlos en lotes. Tener en cuenta que las muestras dentro de cada división no se barajarán.
- random_stateentero, instancia de RandomState o None, default=None
Cuando
shuffle
es True,random_state
afecta al orden de los índices, que controla la aleatoriedad de cada pliegue. En caso contrario, este parámetro no tiene ningún efecto. Pasa un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.
Ver también
StratifiedKFold
Tiene en cuenta la información de los grupos para evitar construir pliegues con distribuciones de clase desequilibradas (para tareas de clasificación binaria o multiclase).
GroupKFold
Variante del iterador K-fold con grupos no solapados.
RepeatedKFold
Repite el K-Fold n veces.
Notas
Los primeros pliegues
n_samples % n_splits
tienen el tamañon_samples // n_splits + 1
, los demás pliegues tienen el tamañon_samples // n_splits
, donden_samples
es el número de muestras.Los separadores de CV aleatorios pueden devolver resultados diferentes para cada llamada de división. Puedes hacer que los resultados sean idénticos estableciendo
random_state
a un número entero.Ejemplos
>>> import numpy as np >>> from sklearn.model_selection import KFold >>> X = np.array([[1, 2], [3, 4], [1, 2], [3, 4]]) >>> y = np.array([1, 2, 3, 4]) >>> kf = KFold(n_splits=2) >>> kf.get_n_splits(X) 2 >>> print(kf) KFold(n_splits=2, random_state=None, shuffle=False) >>> for train_index, test_index in kf.split(X): ... 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: [2 3] TEST: [0 1] TRAIN: [0 1] TEST: [2 3]
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,), default=None
La variable objetivo para los problemas de aprendizaje supervisado.
- groupsarray-like de forma (n_samples,), default=None
Agrupar 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.