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 o 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.
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 do AutoML. REST API Se sua linguagem preferida for Python, você pode se referir diretamente ao AWS SDK for Python (Boto3) MLV2
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 um experimento de previsão de séries temporais do Autopilot de forma programática chamando o CreateAutoMLJobV2
APIem qualquer idioma suportado pelo Amazon Autopilot ou pelo. SageMaker AWS CLI
Para obter informações sobre como essa API ação se traduz em uma função no idioma de sua escolha, consulte a seção Consulte também CreateAutoMLJobV2
e escolha umaSDK. 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 os CreateAutoMLJobV2
API usados na previsão de séries temporais.
nota
Consulte o caderno Time-Series Forecasting with Amazon SageMaker Autopilot
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 essa função ARN de execução nas API solicitações do Autopilot.
-
Para obter informações sobre como recuperar sua função SageMaker de execução, consulteObtenha sua função 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 tipostring
e ter um comprimento mínimo de 1 caractere e um comprimento máximo de 32. -
Pelo menos um
AutoMLJobChannel
emAutoMLJobInputDataConfig
no qual você especifica o nome do bucket do Amazon S3 que contém seus dados. Opcionalmente, você pode especificar os tipos de conteúdo (CSVou arquivos Parquet) e compressão (GZip). -
Um
AutoMLProblemTypeConfig
dos tiposTimeSeriesForecastingJobConfig
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) emin
(minuto). Por exemplo,1D
indica todos os dias e15min
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 de1H
em vez de60min
.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.
-
Um TimeSeriesConfigno 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" },
-
-
E
OutputDataConfig
para especificar o caminho de saída do Amazon S3 para armazenar os artefatos do seu trabalho do AutoML. -
A
RoleArn
para especificar ARN a função usada para acessar seus dados. Você pode usar a função ARN 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. ForecastQuantiles
TimeSeriesForecastingJobConfig
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
de. TimeSeriesForecastingJobConfig 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 de TimeSeriesForecastingJobConfigao criar sua tarefa de 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 do objetivo ao criar sua tarefa AutoML no MetricName
atributo de A Objective. utoMLJob
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 AutoML passando um HolidayConfigAttributesobjeto para o atributo de. HolidayConfig
TimeSeriesForecastingJobConfig 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.
-
Para permitir que o Autopilot gere o nome do endpoint, defina
AutoGenerateEndpointName
comoTrue
. -
Para fornecer seu próprio nome para o endpoint, defina
AutoGenerateEndpointName to
.False
and provide a name of your choice in EndpointName
Você pode configurar seu trabalho AutoML V2 para iniciar automaticamente um trabalho remoto no Amazon EMR Serverless quando recursos computacionais adicionais forem necessários para processar grandes conjuntos de dados. Ao fazer a transição perfeita para o EMR Serverless quando necessário, o trabalho do AutoML pode lidar com conjuntos de dados que, de outra forma, excederiam os recursos inicialmente provisionados, sem qualquer intervenção manual de sua parte. EMRO Serverless está disponível para os tipos de problemas tabulares e de séries temporais. Recomendamos configurar essa opção para conjuntos de dados de séries temporais maiores que 30 GB.
Para permitir que sua tarefa AutoML V2 faça a transição automática para EMR Serverless para um grande conjunto de dados, você precisa fornecer um EmrServerlessComputeConfig
objeto, que inclua um ExecutionRoleARN
campo, para a solicitação de entrada AutoMLComputeConfig
da tarefa AutoML V2.
Essa ExecutionRoleARN
é a IAM função que ARN concede ao trabalho AutoML V2 as permissões necessárias para EMR executar trabalhos sem servidor.
Essa função deve ter a seguinte relação de confiança:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
E conceda as permissões para:
-
Crie, liste e atualize aplicativos EMR sem servidor.
-
Iniciar, listar, obter ou cancelar execuções de trabalhos em um EMR aplicativo sem servidor.
-
Marque recursos EMR sem servidor.
-
Passe uma IAM função para o serviço EMR Serverless para execução.
Ao conceder a
iam:PassRole
permissão, a tarefa AutoML V2 pode assumir temporariamente a função e passá-la paraEMRServerlessRuntimeRole-*
EMR o serviço Serverless. Essas são as IAM funções usadas pelos ambientes de execução de tarefas EMR sem servidor para acessar outros AWS serviços e recursos necessários durante o tempo de execução, como o Amazon S3 para acesso a dados, registro em log CloudWatch , acesso ao AWS Glue catálogo de dados ou outros serviços com base em seus requisitos de carga de trabalho.Consulte Job runtime roles for Amazon EMR Serverless para obter detalhes sobre essas permissões de função.
A IAM política definida no JSON documento fornecido concede essas permissões:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "EMRServerlessCreateApplicationOperation", "Effect": "Allow", "Action": "emr-serverless:CreateApplication", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessListApplicationOperation", "Effect": "Allow", "Action": "emr-serverless:ListApplications", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessApplicationOperations", "Effect": "Allow", "Action": [ "emr-serverless:UpdateApplication", "emr-serverless:GetApplication" ], "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessStartJobRunOperation", "Effect": "Allow", "Action": "emr-serverless:StartJobRun", "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessListJobRunOperation", "Effect": "Allow", "Action": "emr-serverless:ListJobRuns", "Resource": "arn:aws:emr-serverless:*:*:/applications/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessJobRunOperations", "Effect": "Allow", "Action": [ "emr-serverless:GetJobRun", "emr-serverless:CancelJobRun" ], "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*", "Condition": { "StringEquals": { "aws:ResourceTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "EMRServerlessTagResourceOperation", "Effect": "Allow", "Action": "emr-serverless:TagResource", "Resource": "arn:aws:emr-serverless:*:*:/*", "Condition": { "StringEquals": { "aws:RequestTag/sagemaker:is-canvas-resource": "True", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } }, { "Sid": "IAMPassOperationForEMRServerless", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*", "Condition": { "StringEquals": { "iam:PassedToService": "emr-serverless.amazonaws.com", "aws:ResourceAccount": "${aws:PrincipalAccount}" } } } ] }