Hola, descubrimos la solución a lo que necesitas, desplázate y la hallarás aquí.
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 congap=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)
en el
+ n_samples % (n_splits + 1)i
th split, con un conjunto de prueba de tamañon_samples//(n_splits + 1)
por defecto, donden_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