sklearn.model_selection
.TimeSeriesSplit¶
- class sklearn.model_selection.TimeSeriesSplit¶
Validador cruzado de series de tiempo
Proporciona índices de entrenamiento/prueba para separar muestras de datos de series temporales que se observan en intervalos de tiempo fijos, en conjuntos de entrenamiento/prueba. En cada separación, los índices de prueba deben ser mayores que los anteriores, por lo que no es apropiado barajar en el validador cruzado.
Este objeto de validación cruzada es una variación de
KFold
. En la kª división, devuelve los primeros k pliegues como conjunto de entrenamiento y el (k+1)º pliegue como conjunto de prueba.Ten en cuenta que, a diferencia de los métodos de validación cruzada estándar, los conjuntos de entrenamiento sucesivos son superconjuntos de los anteriores.
Más información en el Manual de usuario.
Nuevo en la versión 0.18.
- Parámetros
- n_splitsentero, default=5
Número de separaciones. Debe ser al menos 2.
Distinto en la versión 0.22: El valor predeterminado de
n_splits
ha cambiado de 3 a 5.- max_train_sizeentero, default=None
Tamaño máximo para un único conjunto de entrenamiento.
- test_sizeentero, default=None
Se utiliza para limitar el tamaño del conjunto de prueba. Por defecto,
n_samples // (n_splits + 1)
, que es el valor máximo permitido congap=0
.Nuevo en la versión 0.24.
- gapentero, default=0
Número de muestras a excluir del final de cada conjunto de entrenamiento antes del conjunto de prueba.
Nuevo en la versión 0.24.
Notas
El conjunto de entrenamiento tiene un tamaño
i * n_samples // (n_splits + 1) + n_samples % (n_splits + 1)
en lai``ª separación, con un conjunto de prueba de tamaño ``n_samples//(n_splits + 1)
por defecto, donden_samples
es el número de muestras.Ejemplos
>>> 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: [0 1] TEST: [2] TRAIN: [0 1 2] TEST: [3] TRAIN: [0 1 2 3] TEST: [4] TRAIN: [0 1 2 3 4] 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: [0 1 2 3 4 5] TEST: [6 7] TRAIN: [0 1 2 3 4 5 6 7] TEST: [8 9] TRAIN: [0 1 2 3 4 5 6 7 8 9] TEST: [10 11] >>> # 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: [0 1 2 3] TEST: [6 7] TRAIN: [0 1 2 3 4 5] TEST: [8 9] TRAIN: [0 1 2 3 4 5 6 7] TEST: [10 11]
Métodos
Devuelve el número de iteraciones divididas en el validador cruzado
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
- 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()¶
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,)
Siempre ignorado, existe por compatibilidad.
- groupsarray-like de forma (n_samples,)
Siempre ignorado, existe por compatibilidad.
- Produce
- trainndarray
El entrenamiento establece los índices para esa división.
- testndarray
Los índices del conjunto de pruebas para esa separación.