Compartilhar via


Recursos de calendário para previsão de série temporal no AutoML

Este artigo enfoca nos recursos baseadas no calendário que o AutoML cria para aumentar a precisão dos modelos de previsão de regressão. Como os feriados podem ter uma forte influência sobre como o sistema modelado se comporta, o tempo antes disso, durante e depois de um feriado pode desviar os padrões da série. Cada feriado gera uma janela sobre o conjunto de dados existente, à qual o estudante pode atribuir um efeito. Isto pode ser especialmente útil em cenários como feriados que geram alta demanda por produtos específicos. Consulte o artigo de visão geral de métodos para informações mais gerais sobre a metodologia de previsão no AutoML. Instruções e exemplos de modelos de previsão de treinamento em AutoML podem ser encontrados em nosso artigo configurar o AutoML para previsão de série temporal.

Como parte da engenharia de recursos, o AutoML transforma colunas do tipo data/hora fornecidas nos dados de treinamento em novas colunas de recursos baseados em calendário. Estes recursos podem ajudar os modelos de regressão a aprender padrões sazonais em várias cadências. O AutoML pode sempre criar recursos de calendário a partir do índice de série temporal, uma vez que esta é uma coluna obrigatória nos dados de treinamento. Os recursos de calendário também são feitos a partir de outras colunas com o tipo data/hora, se houver alguma presente. Veja o guia como o AutoML usa seus dados para obter mais informações sobre os requisitos de dados.

O AutoML considera duas categorias de recursos de calendário: recursos padrão que são baseados inteiramente em valores de data e hora e recursos de feriados que são específicos de um país ou região do mundo. Analisaremos esses recursos no restante do artigo.

Recursos do calendário padrão

A tabela a seguir mostra o conjunto completo de recursos do calendário padrão do AutoML junto com um exemplo de saída. O exemplo usa o formato padrão YY-mm-dd %H-%m-%d para representação de data/hora.

Nome do recurso Descrição Exemplo de saída para 2011-01-01 00:25:30
year Recurso numérico representando o ano civil 2011
year_iso Representa o ano ISO, conforme definido na ISO 8601. Os anos ISO começam na primeira semana do ano com uma quinta-feira. Por exemplo, se 1º de janeiro é uma sexta-feira, o ano ISO começa em 4 de janeiro. Os anos ISO podem diferir dos anos civis. 2010
half Recurso que indica se a data é no primeiro ou segundo semestre do ano. Será 1 se a data for anterior a 1º de julho, caso contrário, será 2.
quarter Recurso numérico que representa o trimestre da data determinada. São necessários os valores 1, 2, 3 ou 4 representando o primeiro, segundo, terceiro, quarto trimestre do ano civil. 1
month Recurso numérico que representa o mês do calendário. São necessários os valores de 1 a 12. 1
month_lbl Recurso da cadeia de caracteres que representa o nome do mês. 'Janeiro'
day Recurso numérico que representa o dia do mês. São necessários os valores de 1 a 31. 1
hour Recurso numérico que representa a hora do dia. São necessários os valores de 0 a 23. 0
minute Recurso numérico representando o minuto dentro de uma hora. São necessários valores de 0 a 59. 25
second Recurso numérico que representa o segundo da data/hora. No caso em que apenas o formato de data for fornecido, será considerado como 0. São necessários valores de 0 a 59. 30
am_pm Recurso numérico indicando se o horário é de manhã ou à noite. Será 0 para horas antes de 12h; será 1 para horas depois de 12h. 0
am_pm_lbl Recurso de cadeia de caracteres indicando se o horário é de manhã ou à noite. ‘am’
hour12 Recurso numérico representando a hora do dia em um relógio de 12 horas. Leva valores de 0 a 12 para a primeira metade do dia e de 1 a 11 para a segunda metade. 0
wday Recurso numérico que representa o dia da semana. Leva valores de 0 a 6, onde 0 corresponde a segunda-feira. 5
wday_lbl Recurso da cadeia de caracteres que representa o nome do dia da semana.
qday Recurso numérico representando o dia dentro do trimestre. São necessários os valores de 1 a 92. 1
yday Recurso numérico que representa o dia do ano. São necessários os valores de 1 a 365, ou 1 a 366 no caso de ano bissexto. 1
week Recurso numérico representando a semana ISO, conforme definido na ISO 8601. As semanas ISO sempre começam na segunda-feira e terminam no domingo. São necessários os valores de 1 a 52, ou 53 para os anos em que o 1º de janeiro cai na quinta-feira ou para os anos bissextos em que o 1º de janeiro cai na quarta-feira. 52

O conjunto completo de recursos padrão do ano civil pode não ser criado em todos os casos. O conjunto gerado depende da frequência da série temporal e se os dados de treinamento contêm recursos de data/hora, além do índice do tempo. A tabela a seguir mostra os recursos criados para diferentes tipos de colunas:

Finalidade da coluna Recursos do calendário
Índice do tempo O conjunto completo menos os recursos do calendário com alta correlação com outros recursos. Por exemplo, se a frequência da série temporal for diária, então quaisquer recursos com uma frequência mais granular do que diária serão removidos, uma vez que não fornecem informações úteis.
Outra coluna de data/hora Um conjunto reduzido que consiste em Year, Month, Day, DayOfWeek, DayOfYear, QuarterOfYear, WeekOfMonth, Hour, Minute, e Second. Se a coluna for uma data sem hora, Hour, Minute, e Second serão 0.

Recursos do feriado

Opcionalmente, o AutoML pode criar recursos representando feriados de um país ou região específica. Esses recursos são configurados no AutoML usando o parâmetro country_or_region_for_holidays que aceita um código ISO de país.

Observação

Os recursos de feriados só podem ser feitos para séries temporais com frequência diária.

A tabela a seguir resume os recursos dos feriados:

Nome do recurso Descrição
Holiday Recurso de cadeia de caracteres que especifica se uma data é um feriado regional ou nacional. Também são marcados os dias de um intervalo de feriado.
isPaidTimeOff Recurso binário que tem valor 1 se o dia for um "feriado de folga remunerada" no país ou região em questão.

O AutoML usa o Conjunto de Dados em Aberto no Azure como fonte de informações para os feriados. Para obter mais informações, confira a documentação Feriados Públicos.

Para entender melhor a geração de recursos de feriados, considere os seguintes dados de exemplo:

dados de exemplo

Para tornar os recursos de feriado americano para estes dados, definimos o country_or_region_for_holiday para "US" nas configurações de previsão, como mostrado no seguinte exemplo de código:

from azure.ai.ml import automl

# create a forcasting job
forecasting_job = automl.forecasting(
    compute='test_cluster',   # Name of single or multinode AML compute infrastructure created by user
    experiment_name=exp_name, # name of experiment 
    training_data=sample_data,  
    target_column_name='demand',
    primary_metric='NormalizedRootMeanSquaredError',
    n_cross_validations=3,
    enable_model_explainability=True
)

# set custom forecast settings
forecasting_job.set_forecast_settings(
    time_column_name='timeStamp',
    country_or_region_for_holidays='US'
)

Os recursos de feriados gerados se parecem com a seguinte saída:

dados de exemplo de saída

Observe que os recursos gerados têm o prefixo _automl_ anexado aos nomes de suas colunas. O AutoML geralmente usa este prefixo para distinguir os recursos de entrada dos recursos projetados.

Próximas etapas