class sklearn.model_selection.TimeSeriesSplit(n_splits=5, *, max_train_size=None, test_size=None, gap=0)[source]

Validador cruzado de series temporales

Proporciona índices de entrenamiento / prueba para dividir muestras de datos de series de tiempo que se observan a intervalos de tiempo fijos, en conjuntos de entrenamiento / prueba. En cada división, los índices de prueba deben ser más altos que antes y, por lo tanto, barajar en el validador cruzado es inapropiado.

Este objeto de validación cruzada es una variación de KFold. En la k-ésima división, devuelve los primeros k pliegues como conjunto de tren y el (k + 1) -ésimo pliegue como conjunto de prueba.

Tenga en cuenta que, a diferencia de los métodos estándar de validación cruzada, los conjuntos de entrenamiento sucesivos son superconjuntos de los anteriores.

Leer más en el Guía del usuario.

Nuevo en la versión 0.18.

Parámetros
n_splitsint, default=5

Número de divisiones. Debe tener al menos 2.

Modificado en la versión 0.22: n_splits el valor predeterminado cambió de 3 a 5.

max_train_sizeint, default=None

Tamaño máximo para un solo conjunto de entrenamiento.

test_sizeint, default=None

Se usa para limitar el tamaño del equipo de prueba. Predeterminado a n_samples // (n_splits + 1), que es el valor máximo permitido con gap=0.

Nuevo en la versión 0.24.

gapint, default=0

Número de muestras para excluir del final de cada conjunto de trenes antes del conjunto de prueba.

Nuevo en la versión 0.24.

Notas

El conjunto de entrenamiento tiene tamaño i * n_samples // (n_splits + 1)
+ n_samples % (n_splits + 1)
en el i th split, con un conjunto de prueba de tamaño n_samples//(n_splits + 1) por defecto, donde n_samples es el número de muestras.

Ejemplos de

>>>import numpy as np
>>>from sklearn.model_selection import TimeSeriesSplit
>>> X = np.array([[1,2],[3,4],[1,2],[3,4],[1,2],[3,4]])>>> y = np.array([1,2,3,4,5,6])>>> tscv = TimeSeriesSplit()>>>print(tscv)
TimeSeriesSplit(gap=0, max_train_size=None, n_splits=5, test_size=None)>>>for train_index, test_index in tscv.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:[0] TEST:[1]
TRAIN:[01] TEST:[2]
TRAIN:[012] TEST:[3]
TRAIN:[0123] TEST:[4]
TRAIN:[01234] TEST:[5]>>># Fix test_size to 2 with 12 samples>>> X = np.random.randn(12,2)>>> y = np.random.randint(0,2,12)>>> tscv = TimeSeriesSplit(n_splits=3, test_size=2)>>>for train_index, test_index in tscv.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:[012345] TEST:[67]
TRAIN:[01234567] TEST:[89]
TRAIN:[0123456789] TEST:[1011]>>># Add in a 2 period gap>>> tscv = TimeSeriesSplit(n_splits=3, test_size=2, gap=2)>>>for train_index, test_index in tscv.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:[0123] TEST:[67]
TRAIN:[012345] TEST:[89]
TRAIN:[01234567] TEST:[1011]

Métodos

get_n_splits([X, y, groups])

Devuelve el número de iteraciones de división en el validador cruzado.

split(X[, y, groups])

Genere índices para dividir los datos en conjuntos de entrenamiento y prueba.

get_n_splits(X=None, y=None, groups=None)[source]

Devuelve el número de iteraciones de división en el validador cruzado.

Parámetros
Xobject

Siempre ignorado, existe por compatibilidad.

yobject

Siempre ignorado, existe por compatibilidad.

groupsobject

Siempre ignorado, existe por compatibilidad.

Devoluciones
n_splitsint

Devuelve el número de iteraciones de división en el validador cruzado.

split(X, y=None, groups=None)[source]

Genere índices para dividir los datos en conjuntos de entrenamiento y prueba.

Parámetros
Xarray-like of shape (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 of shape (n_samples,)

Siempre ignorado, existe por compatibilidad.

groupsarray-like of shape (n_samples,)

Siempre ignorado, existe por compatibilidad.

Rendimientos
trainndarray

El entrenamiento estableció índices para esa división.

testndarray

Las pruebas establecieron índices para esa división.

Ejemplos usando sklearn.model_selection.TimeSeriesSplit

Visualización del comportamiento de validación cruzada en scikit-learn

Visualización del comportamiento de validación cruzada en scikit-learn