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ño n_samples // n_splits + 1, los demás pliegues tienen el tamaño n_samples // n_splits, donde n_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

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,), 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.

Ejemplos usando sklearn.model_selection.KFold