Detalhes de implementação de série temporal

Esses detalhes de implementação descrevem os estágios e o processamento que são específicos de um experimento de séries temporais do AutoAI

Detalhes da implementação

Consulte esses detalhes de implementação e de configuração para seu experimento de série temporal

Estágios da série temporal

Um experimento de série temporal do AutoAI inclui estes estágios quando um experimento executa:

  1. Inicialização
  2. Seleção de pipeline
  3. Avaliação de modelo
  4. Geração de pipeline final
  5. Backtest

Estágio 1: Inicialização

O estágio de inicialização processa os dados de treinamento, nesta sequência:

  • Carregue os dados
  • Divida o conjunto de dados L em dados de treinamento T e dados de validação H
  • Configure a validação, a manipulação de coluna de registro de data e hora, e a geração de janela de lookback Notas:
    • Os dados de treinamento (T) são iguais ao conjunto de dados (L) menos a retenção (H). Ao configurar o experimento, é possível ajustar o tamanho dos dados de retenção. Por padrão, o tamanho dos dados do holdout é de 20 etapas.
    • É possível especificar opcionalmente a coluna timestamp.
    • Por padrão, uma janela de lookback é gerada automaticamente detectando o período sazonal usando o método de processamento de sinal No entanto, se você tiver uma ideia de uma janela de lookback apropriada, será possível especificar o valor diretamente.

Estágio 2: Seleção Pipeline

A etapa de seleção de pipeline usa um método eficiente chamado T-Daub (Alocação de dados de séries temporais usando limites superiores). O método seleciona pipelines alocando mais dados de treinamento para os pipelines mais promissores, enquanto alocam menos dados de treinamento para os pipelines não promissores. Dessa forma, nem todas as condutas veem o conjunto completo de dados, e o processo de seleção é tipicamente mais rápido. As etapas a seguir descrevem a visão geral do processo:

  1. Todas as condutas são sequencialmente alocados vários pequenos subconjuntos de dados de treinamento. Os dados mais recentes são alocados primeiro.
  2. Cada pipeline é treinado em cada subconjunto alocado de dados de treinamento e avaliado com dados de testes (dados holdout).
  3. Um modelo de regressão linear é aplicado a cada pipeline usando o conjunto de dados descrito na etapa anterior.
  4. A pontuação de precisão do pipeline é projetada em todo o conjunto de dados de treinamento. Este método resulta em um conjunto de dados que contém a precisão e o tamanho dos dados alocados para cada pipeline
  5. O melhor pipeline é selecionado de acordo com a precisão projetada e a classificação allotérada 1.
  6. Mais dados são alocados para o melhor pipeline. Em seguida, a precisão projetada é atualizada para os demais oleodutos.
  7. As duas etapas anteriores são repetidas até que os principais pipelines N sejam treinados em todos os dados.

Estágio 3: Avaliação do modelo

Nesta etapa, os pipelines vencedores N são retreinados em todo o conjunto de dados de treinamento T. Mais adiante, eles são avaliados com os dados holdout H.

Estágio 4: Geração final de pipeline

Nesta etapa, os pipelines vencedores são retreinados em todo o conjunto de dados (L) e gerados como os pipelines finais.

À medida que a reciclagem de cada duto for concluída, o pipeline é postado no leaderboard. Você pode selecionar para inspecionar os detalhes do pipeline ou salvar o pipeline como um modelo.

Estágio 5: Backtest

Na etapa final, os dutos vencedores são retreinados e avaliados utilizando o método backtest. As etapas a seguir descrevem o método backtest:

  1. O comprimento dos dados de treinamento é determinado com base no número de backtests, comprimento da diferença e tamanho da retenção. Para saber mais sobre esses parâmetros, veja Construindo um experimento de série temporal.
  2. Partindo dos dados mais antigos, o experimento é treinado usando os dados de treinamento.
  3. Mais adiante, o experimento é avaliado sobre o primeiro conjunto de dados de validação. Se o comprimento do gap for diferente de zero, quaisquer dados na lacuna são ignorados sobre.
  4. A janela de dados de treinamento é avançada através do aumento do tamanho de holdout e comprimento do gap para formar um novo conjunto de treinamento.
  5. Um experimento fresco é treinado com esses novos dados e avaliado com o próximo conjunto de dados de validação.
  6. As duas etapas anteriores são repetidas para os períodos de backtesting restantes.

Métricas de otimização de série temporal

Aceite a métrica padrão ou escolha uma métrica para otimização de seu experimento.

Métrica Descrição
Erro absoluto médio em percentual simétrico (SMAPE) Em cada ponto ajustado, a diferença absoluta entre o valor real e o valor previsto é dividida pela metade da soma do valor real absoluto e do valor previsto. Em seguida, a média é calculada para todos esses valores em todos os pontos ajustados.
Erro Médio Absoluto (MAE) Média de diferenças absolutas entre os valores reais e valores preditos.
Erro Quadrático Médio Raiz (RMSE) Raiz quadrada da média das diferenças quadráticas entre os valores reais e os valores preditos.
R2 Medida de como o desempenho do modelo se compara ao modelo de linha de base ou modelo médio. O R2 deve ser igual ou menor que 1. O valor R2 negativo significa que o modelo em consideração é pior do que o modelo médio. O valor zero R2 significa que o modelo em consideração é tão bom ou ruim quanto o modelo médio. O valor R2 positivo significa que o modelo em consideração é melhor do que o modelo médio.

Revisando as métricas para um experimento

Ao visualizar os resultados de um experimento de série temporal, você vê os valores para as métricas usadas para treinar o experimento na tabela de classificação de pipeline:

Revisando os resultados do experimento

É possível ver que as medidas de precisão para experimentos de séries temporais podem variar amplamente, dependendo dos dados do experimento avaliados..

  • Validação é a pontuação calculada nos dados de treinamento.
  • Validação é a pontuação calculada nos dados de validação reservados.
  • Backtest é a pontuação média de todas as pontuações de backtests.

Algoritmos de série temporal

Estes algoritmos estão disponíveis para o seu experimento de série temporal. Você pode usar os algoritmos que são selecionados por padrão, ou você pode configurar seu experimento para incluir ou excluir algoritmos específicos.

Algoritmo Descrição
ARIMA O Modelo de Movimentação Média de Movimentação Integrada (ARIMA) é um modelo típico de série temporal, que pode transformar dados não estacionários a dados estacionários por meio de diferenciamento e, em seguida, prever o próximo valor usando os valores do passado, incluindo os valores de lagos e erros de previsão de atraso
BATS O algoritmo BATS combina a transformação Box- Cox, os resíduos ARMA, a tendência e os fatores de sazonalidade para prever valores futuros.
Montador O Ensembler combina vários métodos de previsão para superar a precisão da previsão simples e para evitar um possível super ajuste.
Holt-Winters Usa o triplo smoothing exponencial para prever pontos de dados em uma série, se a série for repetitiva ao longo do tempo (sazonal). Dois tipos de modelos Holt-Winters são fornecidos: Holt-Winters aditivo e Holt-Winters multiplicativo
Floresta aleatória Modelo de regressão baseado em árvore onde cada árvore do conjunto é construída a partir de uma amostra que é desenhada com substituição (por exemplo, uma amostra de bootstrap) a partir do conjunto de treinamento.
Support Vector Machine (SVM) As SVMs são um tipo de modelos de aprendizado de máquina que podem ser usados tanto para a regressão quanto para a classificação. SVMs usam um hiperplano para dividir os dados em classes separadas.
Regressão linear Constrói um relacionamento linear entre a variável de série temporal e o índice de data / hora ou hora com resíduos que seguem o processo AR.

Formatos de data e hora suportados

Os formatos de data / hora suportados em experimentos de séries temporais são baseados nas definições que são fornecidas por dateutil.

Os formatos de data suportados são:

Comum:

    YYYY
    YYYY-MM, YYYY/MM, or YYYYMM
    YYYY-MM-DD or YYYYMMDD
    mm/dd/yyyy
    mm-dd-yyyy
    JAN YYYY

Incomum:

    YYYY-Www or YYYYWww - ISO week (day defaults to 0)
    YYYY-Www-D or YYYYWwwD - ISO week and day

Numberng para os valores de semana e dia ISO segue a mesma lógica que datetime.date.isocalendar().

Os formatos de hora suportados são:

    hh
    hh:mm or hhmm
    hh:mm:ss or hhmmss
    hh:mm:ss.ssssss (Up to 6 sub-second digits)
    dd-MMM 
    yyyy/mm 

Notas:

  • Meia-noite pode ser representado como 0h ou 24h. O separador decimal pode ser um ponto ou uma vírgula.
  • As datas podem ser submetidas como strings, com aspas duplas, como "1958-01-16".

Recursos de apoio

Os recursos de suporte, também conhecidos como recursos exógenos, são recursos de entrada que podem influenciar a meta de predição. É possível usar recursos de suporte para incluir colunas adicionais de seu conjunto de dados para melhorar a previsão e aumentar a precisão de seu modelo. Por exemplo, em um experimento de série temporal para prever preços ao longo do tempo, um recurso de suporte pode ser dados sobre vendas e promoções Ou, em um modelo que prevê o consumo de energia, inclusive a temperatura diária torna a previsão mais precisa.

Algoritmos e oleodutos que utilizam recursos de Suportes

Apenas um subconjunto de algoritmos permite recursos de apoio. Por exemplo, os Holt-winters e o BATS não suportam o uso de recursos de suporte. Algoritmos que não suportam recursos de suporte ignoram sua seleção para recursos de suporte ao executar o experimento.

Alguns algoritmos usam recursos de suporte para certas variações do algoritmo, mas não para outros. Por exemplo, você pode gerar dois pipelines diferentes com o algoritmo Random Forest, RandomForestRegressor e ExogenousRandomForestRegressor. A variação ExogenousRandomForestRegressor oferece suporte a recursos de apoio, enquanto RandomForestRegressor não oferece.

Esta tabela detalha se um algoritmo fornece suporte para recursos de Suportes em um experimento de séries temporais:

Algoritmo Pipeline Fornecer suporte para recursos de Apoio
Floresta aleatória RandomForestRegressor Não
Floresta aleatória ExogenousRandomForestRegressor True
SVM SVM Não
SVM ExogenousSVM True
Montador LocalizedFlattenEnsembler True
Montador DifferenceFlattenEnsembler Não
Montador FlattenEnsembler Não
Montador ExogenousLocalizedFlattenEnsembler True
Montador ExogenousDifferenceFlattenEnsembler True
Montador ExogenousFlattenEnsembler True
Regressão MT2RForecaster Não
Regressão ExogenousMT2RForecaster True
Holt-Winters HoltWinterAdditive Não
Holt-Winters HoltWinterMultiplicative Não
BATS BATS Não
ARIMA ARIMA Não
ARIMA ARIMAX True
ARIMA ARIMAX_RSAR True
ARIMA ARIMAX_PALR True
ARIMA ARIMAX_RAR True
ARIMA ARIMAX_DMLR True

Saiba Mais

Pontuando um modelo de série temporal