Sobes.tech
Middle — Senior

Quais são as características da construção do conjunto de dados e validação para modelos de séries temporais?

sobes.tech IA

Resposta da IA

Ao construir conjuntos de dados e validação para modelos de séries temporais, é importante considerar a dependência temporal dos dados e evitar a fuga de informações futuras para o passado.

Principais características:

  1. Janela deslizante (Sliding window) — criação de exemplos de treino a partir de intervalos de tempo sequenciais, onde a entrada são valores anteriores e a saída é o próximo passo.

  2. Divisão de dados por tempo — os dados são divididos em conjuntos de treino, validação e teste estritamente por tempo, para que o modelo não veja dados futuros durante o treino.

  3. Validação considerando a sequência temporal:

    • Uso de métodos como TimeSeriesSplit, que criam partições sequenciais considerando a ordem dos dados.
    • Evitar embaralhamento aleatório (shuffle), pois isso viola a estrutura temporal.
  4. Tratamento de sazonalidade e tendências — ao construir características, consideram-se as características temporais (dia da semana, hora, feriados).

  5. Tratamento de valores ausentes e anomalias — é importante um pré-processamento correto, pois as séries temporais são sensíveis a essas distorções.

Exemplo de divisão de dados:

import pandas as pd
from sklearn.model_selection import TimeSeriesSplit

dados = pd.read_csv('timeseries.csv', parse_dates=['date'])
dados = dados.sort_values('date')

# Divisão em treino e teste por data
treino = dados[dados['date'] < '2023-01-01']
teste = dados[dados['date'] >= '2023-01-01']

# TimeSeriesSplit para validação cruzada
tscv = TimeSeriesSplit(n_splits=5)
for train_index, val_index in tscv.split(treino):
    train_fold = treino.iloc[train_index]
    val_fold = treino.iloc[val_index]
    # treino e validação do modelo

Assim, a chave é manter a ordem cronológica e evitar a fuga de informações futuras para o passado.