Crie uma tarefa AutoML para previsão de séries temporais usando a API - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Crie uma tarefa AutoML para previsão de séries temporais usando a API

A previsão em machine learning se refere ao processo de prever resultados ou tendências futuras com base em dados e padrões históricos. Ao analisar dados de séries temporais anteriores e identificar padrões subjacentes, os algoritmos de machine learning podem fazer previsões e fornecer informações valiosas sobre o comportamento futuro. Na previsão, o objetivo é desenvolver modelos que possam capturar com precisão a relação entre as variáveis de entrada e a variável alvo ao longo do tempo. Isso envolve examinar vários fatores, como tendências, sazonalidade e outros padrões relevantes nos dados. As informações coletadas são então usadas para treinar um modelo de Machine Learning. O modelo treinado é capaz de gerar previsões pegando novos dados de entrada e aplicando os padrões e relacionamentos aprendidos. Ele pode fornecer previsões para uma ampla variedade de casos de uso, como projeções de vendas, tendências do mercado de ações, previsões meteorológicas, previsão de demanda e muito mais.

As instruções a seguir mostram como criar um trabalho do Amazon SageMaker Autopilot como um experimento piloto para tipos de problemas de previsão de séries temporais usando SageMaker o API Reference.

nota

Tarefas como classificação de texto e imagem, previsão de séries temporais e ajuste fino de grandes modelos de linguagem estão disponíveis exclusivamente por meio da versão 2 da API REST do AutoML. Se sua linguagem preferida for Python, você pode se referir diretamente ao AWS SDK for Python (Boto3)objeto AutoMLv2 do Amazon Python SDK. SageMaker

Os usuários que preferem a conveniência de uma interface de usuário podem usar o Amazon SageMaker Canvas para acessar modelos pré-treinados e modelos básicos de IA generativos, ou criar modelos personalizados para textos específicos, classificação de imagens, necessidades de previsão ou IA generativa.

Você pode criar programaticamente um experimento de previsão de séries temporais do Autopilot chamando a CreateAutoMLJobV2API em qualquer linguagem suportada pelo Amazon Autopilot ou pelo. SageMaker AWS CLI

Para obter informações sobre como essa ação da API se traduz em uma função no idioma de sua escolha, consulte a seção Ver também de CreateAutoMLJobV2 e escolha um SDK. Como exemplo, para usuários do Python, veja a sintaxe completa da solicitação de create_auto_ml_job_v2 in AWS SDK for Python (Boto3).

O Autopilot treina vários candidatos a modelo com sua série temporal alvo e, em seguida, seleciona um modelo de previsão ideal para uma determinada métrica objetiva. Depois que seus candidatos modelo forem treinados, você poderá encontrar as melhores métricas de candidatos na resposta a DescribeAutoMLJobV2 em BestCandidate.

As seções a seguir definem os parâmetros de solicitação de entrada obrigatórios e opcionais para a API CreateAutoMLJobV2 usada na previsão de séries temporais.

nota

Consulte o caderno Time-Series Forecasting with Amazon SageMaker Autopilot para ver um exemplo prático e prático de previsão de séries temporais. Neste notebook, você usa o Amazon SageMaker Autopilot para treinar um modelo de séries temporais e produzir previsões usando o modelo treinado. O notebook fornece instruções para recuperar um conjunto de dados pronto de dados históricos tabulares no Amazon S3.

Pré-requisitos

Antes de usar o Autopilot para criar um experimento de previsão de séries temporais em SageMaker, certifique-se de:

  • Prepare seu conjunto de dados de séries temporais. A preparação do conjunto de dados envolve coletar dados relevantes de várias fontes, limpá-los e filtrá-los para remover ruídos e inconsistências e organizá-los em um formato estruturado. Consulte Formato de conjuntos de dados de séries temporais e métodos de preenchimento de valores ausentes para saber mais sobre os requisitos de formatos de séries temporais no Autopilot. Opcionalmente, você pode complementar seu conjunto de dados com o calendário de feriados públicos do país de sua escolha para capturar os padrões associados. Para obter mais informações sobre calendários de feriados, consulte Calendários de feriados nacionais.

    nota

    Recomendamos fornecer pelo menos 3 a 5 pontos de dados históricos para cada 1 ponto de dados futuro que você deseja prever. Por exemplo, para prever 7 dias à frente (horizonte de 1 semana) com base em dados diários, treine seu modelo com um mínimo de 21 a 35 dias de dados históricos. Certifique-se de fornecer dados suficientes para capturar padrões sazonais e recorrentes.

  • Coloque seus dados de séries temporais em um bucket do Amazon S3.

  • Conceda acesso total ao bucket do Amazon S3 contendo seus dados de entrada para a função de SageMaker execução usada para executar seu experimento. Feito isso, você pode usar o ARN desse perfil de execução nas solicitações da API do Autopilot.

    • Para obter informações sobre como recuperar sua função SageMaker de execução, consulteObtenha um perfil de execução.

    • Para obter informações sobre como conceder permissões à sua função de SageMaker execução para acessar um ou mais buckets específicos no Amazon S3, consulte Adicionar permissões adicionais do Amazon S3 a uma função de execução em. SageMaker Criar perfil de execução

Parâmetros necessários

Ao ligar CreateAutoMLJobV2 para criar um experimento de Autopilot para previsão de séries temporais, você deve fornecer os seguintes valores:

  • E AutoMLJobName para especificar o nome do seu trabalho. O nome deve ser do tipo string e ter um comprimento mínimo de 1 caractere e um comprimento máximo de 32.

  • Pelo menos um AutoMLJobChannel em AutoMLJobInputDataConfig no qual você especifica o nome do bucket do Amazon S3 que contém seus dados. Opcionalmente, você pode especificar o conteúdo (arquivos CSV ou Parquet) e os tipos de compactação (GZip).

  • Um AutoMLProblemTypeConfig dos tipos TimeSeriesForecastingJobConfig para definir as configurações do seu trabalho de previsão de séries temporais. Em particular, você deve especificar:

    • A frequência das previsões, que se refere à granularidade desejada (por hora, diariamente, mensalmente etc.) de sua previsão.

      Os intervalos válidos são um número inteiro seguido de Y (ano), M (mês), W (semana), D (dia), H (hora) e min (minuto). Por exemplo, 1D indica todos os dias e 15min indica a cada 15 minutos. O valor de uma frequência não deve se sobrepor à próxima frequência maior. Por exemplo, você deve usar uma frequência de 1H em vez de 60min.

      Os valores válidos para cada frequência são os seguintes:

      • Minute (Minuto): 1 a 59

      • Hour (Hora): 1 a 23

      • Day (Dia): 1 a 6

      • Week (Semana): 1 a 4

      • Month (Mês): 1 a 11

      • Year (Ano): 1

    • O horizonte das previsões em sua previsão, que se refere ao número de etapas de tempo que o modelo prevê. O horizonte de previsão também é chamado de comprimento da previsão. O horizonte máximo de previsão é o menor de 500 intervalos de tempo ou 1/4 dos intervalos de tempo no conjunto de dados.

    • Uma TimeSeriesconfiguração na qual você define o esquema do seu conjunto de dados para mapear os cabeçalhos das colunas de acordo com sua previsão especificando:

      • R TargetAttributeName: A coluna que contém dados históricos do campo de destino a serem previstos.

      • R TimestampAttributeName: A coluna que contém um momento no qual o valor alvo de um determinado item é registrado.

      • R ItemIdentifierAttributeName: A coluna que contém os identificadores do item para o qual você deseja prever o valor alvo.

    Veja a seguir um exemplo desses parâmetros de solicitação. Neste exemplo, você está configurando uma previsão diária para a quantidade esperada ou o nível de demanda de itens específicos em um período de 20 dias.

    "AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },
  • Um OutputDataConfig para especificar o caminho de saída do Amazon S3 para armazenar os artefatos do seu trabalho do AutoML.

  • Um RoleArn para especificar o ARN da função usada para acessar seus dados. Você pode usar o ARN da função de execução à qual concedeu acesso aos seus dados.

Todos os outros parâmetros são opcionais. Por exemplo, você pode definir quantis de previsão específicos, escolher um método de preenchimento para valores ausentes no conjunto de dados ou definir como agregar dados que não estejam alinhados com a frequência da previsão. Para aprender como definir esses parâmetros adicionais, consulte Parâmetros opcionais.

Parâmetros opcionais

As seções a seguir fornecem detalhes de alguns parâmetros opcionais que você pode passar para seu trabalho AutoML de previsão de séries temporais.

Por padrão, seu trabalho de piloto automático treina uma lista predefinida de algoritmos em seu conjunto de dados. No entanto, você pode fornecer um subconjunto da seleção padrão de algoritmos.

Para a previsão de séries temporais, você deve escolher TimeSeriesForecastingJobConfig como o tipo de. AutoMLProblemTypeConfig

Em seguida, você pode especificar uma matriz de selecionados AutoMLAlgorithms no AlgorithmsConfig atributo de CandidateGenerationConfig.

Veja a seguir um exemplo de um AlgorithmsConfig atributo listando exatamente três algoritmos (“cnn-qr”, “propheta”, “arima”) em seu campo. AutoMLAlgorithms

{ "AutoMLProblemTypeConfig": { "TimeSeriesForecastingJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["cnn-qr", "prophet", "arima"]} ] }, }, }, }

Para ver a lista de algoritmos disponíveis para previsão de séries temporais, consulte. AutoMLAlgorithms Para obter detalhes sobre cada algoritmo, consulte Suporte a algoritmos para previsão de séries temporais.

O Autopilot treina 6 candidatos a modelos com sua série temporal alvo e, em seguida, combina esses modelos usando um método de conjunto de empilhamento para criar um modelo de previsão ideal para uma determinada métrica objetiva. Cada modelo de previsão do Autopilot gera uma previsão probabilística produzindo previsões em quantis entre P1 e P99. Esses quantis são usados para contabilizar a incerteza da previsão. Por padrão, as previsões serão geradas para 0,1 (p10), 0,5 (p50) e 0,9 (p90). Você pode optar por especificar seus próprios quantis.

No piloto automático, você pode especificar até cinco quantis de previsão de 0,01 (p1) a 0,99 (p99), por incrementos de 0,01 ou mais no atributo de Config. ForecastQuantiles TimeSeries ForecastingJob

Neste exemplo, você está configurando uma previsão diária das porcentagens 10, 25, 50, 75 e 90 para a quantidade ou nível de demanda esperado de itens específicos durante um período de 20 dias.

"AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"], "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },

Para criar um modelo de previsão (também conhecido como o melhor candidato de seu experimento), você deve especificar uma frequência de previsão. A frequência da previsão determina a frequência das previsões em suas previsões. Por exemplo, previsões mensais de vendas. O melhor modelo do Autopilot pode gerar previsões para frequências de dados maiores do que a frequência na qual seus dados são registrados.

Durante o treinamento, o Autopilot agrega todos os dados que não estão alinhados com a frequência de previsão que você especifica. Por exemplo, você pode ter alguns dados diários, mas especificar uma frequência de previsão semanal. O Autopilot alinha os dados diários com base na semana em que eles pertencem. O Autopilot então o combina em um único registro para cada semana.

Durante a agregação, o método de transformação padrão é somar os dados. Você pode configurar a agregação ao criar sua tarefa AutoML no atributo Transformations Config. TimeSeries ForecastingJob Os métodos de agregação compatíveis são sum (padrão), avg, first, min, max. A agregação só é compatível com a coluna de destino.

No exemplo a seguir, você configura a agregação para calcular a média das previsões promocionais individuais para fornecer os valores finais agregados da previsão.

"Transformations": { "Aggregation": { "promo": "avg" } }

O Autopilot fornece vários métodos de preenchimento para lidar com valores ausentes no alvo e em outras colunas numéricas de seus conjuntos de dados de séries temporais. Para obter informações sobre a lista de métodos de preenchimento compatíveis e sua lógica de preenchimento disponível, consulte Processamento de valores ausentes.

Você configura sua estratégia de preenchimento no Transformations atributo TimeSeriesForecastingJobConfig ao criar sua tarefa AutoML.

Para definir um método de preenchimento, você precisa fornecer um par de valores-chave:

  • A chave é o nome da coluna para a qual você deseja especificar o método de preenchimento.

  • O valor associado à chave é um objeto que define a estratégia de preenchimento dessa coluna.

Você pode especificar vários métodos de preenchimento para uma única coluna.

Para definir um valor específico para o método de preenchimento, você deve definir o parâmetro de preenchimento para o valor do método de preenchimento desejado (por exemplo "backfill" : "value") e definir o valor real de preenchimento em um parâmetro adicional com o sufixo “_value”. Por exemplo, para definir backfill com o valor de 2, você deve incluir dois parâmetros: "backfill": "value" e "backfill_value":"2".

No exemplo a seguir, você especifica a estratégia de preenchimento para a coluna de dados incompleta, “preço”, da seguinte forma: Todos os valores ausentes entre o primeiro ponto de dados de um item e o último são definidos para 0 após o qual todos os valores ausentes são preenchidos com o valor 2 até a data final do conjunto de dados.

"Transformations": { "Filling": { "price": { "middlefill" : "zero", "backfill" : "value", "backfill_value": "2" } } }

O Autopilot produz métricas de precisão para avaliar os candidatos ao modelo e ajudar você a escolher quais usar para gerar previsões. Ao realizar um experimento de previsão de séries temporais, você pode escolher o AutoML para permitir que o Autopilot otimize o preditor para você ou pode escolher manualmente um algoritmo para seu preditor.

Por padrão, o Autopilot usa a perda quantílica ponderada média. No entanto, você pode configurar a métrica objetiva ao criar sua tarefa AutoML no MetricName atributo AutoML. JobObjective

Para ver a lista de algoritmos disponíveis, consulte Suporte a algoritmos para previsão de séries temporais.

No Autopilot, você pode incorporar um conjunto de dados projetado por atributos de informações de feriados nacionais à sua série temporal. O Autopilot fornece suporte nativo para os calendários de feriados de mais de 250 países. Depois de escolher um país, o Autopilot aplica o calendário de feriados desse país a cada item do seu conjunto de dados durante o treinamento. Isso permite que o modelo identifique padrões associados a feriados específicos.

Você pode ativar a caracterização de férias ao criar sua tarefa do AutoML passando um objeto HolidayConfigAttributes para o HolidayConfig atributo de Config. TimeSeries ForecastingJob O objeto HolidayConfigAttributes contém o atributo CountryCode de duas letras que determina o país do calendário público de feriados nacionais usado para aumentar seu conjunto de dados de séries temporais.

Consulte Código do país para obter a lista de calendários compatíveis e o código do país correspondente.

O Autopilot permite que você implante automaticamente seu modelo de previsão em um endpoint. Para habilitar a implantação automática para o melhor candidato a modelo de um trabalho do AutoML, inclua um ModelDeployConfig na solicitação de trabalho do AutoML. Isso permite a implantação do melhor modelo em um SageMaker endpoint. Abaixo estão as configurações disponíveis para personalização.