¿Cuáles son las características de la construcción del conjunto de datos y la validación para modelos de series temporales?
sobes.tech AI
Respuesta de la IA
Al construir conjuntos de datos y validación para modelos de series temporales, es importante tener en cuenta la dependencia temporal de los datos y evitar la filtración de información futura en el pasado.
Características principales:
-
Ventana deslizante (Sliding window) — creación de ejemplos de entrenamiento a partir de intervalos de tiempo secuenciales, donde la entrada son valores anteriores y la salida es el siguiente paso.
-
División de datos por tiempo — los datos se dividen en conjuntos de entrenamiento, validación y prueba estrictamente por tiempo, para que el modelo no vea datos futuros durante el entrenamiento.
-
Validación considerando la secuencia temporal:
- Uso de métodos como TimeSeriesSplit, que crean particiones secuenciales considerando el orden de los datos.
- Evitar mezclas aleatorias (shuffle), ya que esto viola la estructura temporal.
-
Manejo de estacionalidad y tendencias — al construir características, se consideran las características temporales (día de la semana, hora, días festivos).
-
Manejo de valores faltantes y anomalías — es importante un preprocesamiento correcto, ya que las series temporales son sensibles a estas distorsiones.
Ejemplo de división de datos:
import pandas as pd
from sklearn.model_selection import TimeSeriesSplit
datos = pd.read_csv('timeseries.csv', parse_dates=['date'])
datos = datos.sort_values('date')
# División en entrenamiento y prueba por fecha
entrenamiento = datos[datos['date'] < '2023-01-01']
prueba = datos[datos['date'] >= '2023-01-01']
# TimeSeriesSplit para validación cruzada
tscv = TimeSeriesSplit(n_splits=5)
for train_index, val_index in tscv.split(entrenamiento):
train_fold = entrenamiento.iloc[train_index]
val_fold = entrenamiento.iloc[val_index]
# entrenamiento y validación del modelo
Por lo tanto, la clave es mantener el orden cronológico y evitar la filtración de información futura en el pasado.