Partilhar via


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

Este artigo centra-se nas funcionalidades baseadas no calendário que o AutoML cria para aumentar a precisão dos modelos de regressão de previsão. Uma vez que as férias podem ter uma forte influência na forma como o sistema modelado se comporta, o tempo antes, durante e depois de um feriado pode influenciar os padrões da série. Cada feriado gera uma janela sobre o seu conjunto de dados existente ao qual o formando pode atribuir um efeito. Isto pode ser especialmente útil em cenários como feriados que geram exigências elevadas para produtos específicos. Veja o artigo de descrição geral dos métodos para obter informações mais gerais sobre a metodologia de previsão no AutoML. Pode encontrar instruções e exemplos para preparar modelos de previsão no AutoML no nosso artigo configurar a AutoML para previsão de série temporal .

Como parte da engenharia de funcionalidades, o AutoML transforma colunas de tipo datetime fornecidas nos dados de preparação em novas colunas de funcionalidades baseadas no calendário. Estas funcionalidades podem ajudar os modelos de regressão a aprender padrões sazonais em várias cadências. O AutoML pode sempre criar funcionalidades de calendário a partir do índice de tempo da série temporal, uma vez que esta é uma coluna necessária nos dados de preparação. As funcionalidades do calendário também são efetuadas a partir de outras colunas com o tipo datetime, se existirem. Veja como o AutoML utiliza o seu guia de dados para obter mais informações sobre os requisitos de dados.

O AutoML considera duas categorias de funcionalidades de calendário: funcionalidades padrão que se baseiam inteiramente em valores de data e hora e funcionalidades de feriados específicas de um país ou região do mundo. Vamos ver estas funcionalidades no resto do artigo.

Funcionalidades de calendário padrão

A tabela seguinte mostra o conjunto completo de funcionalidades de calendário padrão do AutoML, juntamente com um resultado de exemplo. O exemplo utiliza o formato padrão YY-mm-dd %H-%m-%d para a representação datetime.

Nome da funcionalidade Description Saída de exemplo para 2011-01-01 00:25:30
year Funcionalidade numérica que representa o ano do calendário 2011
year_iso Representa o ano ISO conforme definido na ISO 8601. Os anos iso começam na primeira semana do ano que tem uma quinta-feira. Por exemplo, se 1 de janeiro for uma sexta-feira, o ano ISO começa a 4 de janeiro. Os anos iso podem diferir dos anos do calendário. 2010
half Funcionalidade que indica se a data se encontra na primeira ou segunda metade do ano. É 1 se a data for anterior a 1 e 2 de julho.
quarter Funcionalidade numérica que representa o trimestre da data especificada. São necessários os valores 1, 2, 3 ou 4 que representam o primeiro, segundo, terceiro, quarto trimestre do ano civil. 1
month Funcionalidade numérica que representa o mês do calendário. Utiliza os valores de 1 a 12. 1
month_lbl Funcionalidade de cadeia que representa o nome do mês. 'Janeiro'
day Funcionalidade numérica que representa o dia do mês. São necessários valores de 1 a 31. 1
hour Funcionalidade numérica que representa a hora do dia. Leva os valores de 0 a 23. 0
minute Funcionalidade numérica que representa o minuto dentro da hora. Leva os valores de 0 a 59. 25
second Funcionalidade numérica que representa o segundo do datetime especificado. No caso de apenas o formato de data ser fornecido, é assumido como 0. Leva os valores de 0 a 59. 30
am_pm Funcionalidade numérica que indica se a hora é de manhã ou à noite. É 0 por vezes antes das 12:00 e 1 para as vezes depois das 12:00. 0
am_pm_lbl Funcionalidade de cadeia que indica se a hora é de manhã ou de noite. 'am'
hour12 Funcionalidade numérica que representa a hora do dia num relógio de 12 horas. Leva os valores de 0 a 12 para a primeira metade do dia e de 1 a 11 para o segundo semestre. 0
wday Funcionalidade numérica que representa o dia da semana. Leva os valores de 0 a 6, em que 0 corresponde a segunda-feira. 5
wday_lbl Funcionalidade de cadeia que representa o nome do dia da semana.
qday Funcionalidade numérica que representa o dia dentro do trimestre. Utiliza os valores de 1 a 92. 1
yday Funcionalidade numérica que representa o dia do ano. São necessários valores de 1 a 365 ou de 1 a 366 no caso do ano bissexto. 1
week Funcionalidade numérica que representa a semana ISO , conforme definido na ISO 8601. As semanas iso começam sempre na segunda-feira e terminam no domingo. São precisos valores de 1 a 52, ou 53 para anos que tenham 1 de janeiro caindo na quinta-feira ou para anos bissextos tendo 1 de janeiro caído na quarta-feira. 52

O conjunto completo de funcionalidades de calendário padrão 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 preparação contêm funcionalidades de datetime, além do índice de hora. A tabela seguinte mostra as funcionalidades criadas para diferentes tipos de coluna:

Finalidade da coluna Funcionalidades do calendário
Índice de tempo O conjunto completo menos as funcionalidades do calendário que têm uma correlação elevada com outras funcionalidades. Por exemplo, se a frequência de série temporal for diária, todas as funcionalidades com uma frequência mais granular do que a diária serão removidas, uma vez que não fornecem informações úteis.
Outra coluna datetime Um conjunto reduzido que consiste em , , , , , DayOfYearQuarterOfYear, WeekOfMonth, Hour, e MinuteSecond. DayOfWeekDayMonthYear Se a coluna for uma data sem hora, Hour, Minutee Second será 0.

Funcionalidades festivas

Opcionalmente, o AutoML pode criar funcionalidades que representam feriados de um país ou região específico. Estas funcionalidades são configuradas no AutoML com o country_or_region_for_holidays parâmetro , que aceita um código de país ISO.

Nota

As funcionalidades de feriados só podem ser efetuadas para séries de tempo com frequência diária.

A tabela seguinte resume as funcionalidades de feriados:

Nome da funcionalidade Description
Holiday Funcionalidade de cadeia que especifica se uma data é um feriado nacional/regional. Os dias dentro de alguns intervalos de feriados também são marcados.
isPaidTimeOff Funcionalidade binária que assume o valor 1 se o dia for um "feriado de folga pago" no país ou região especificado.

O AutoML utiliza o Azure Open Datasets como origem para informações de feriados. Para obter mais informações, veja a documentação publicHolidays .

Para compreender melhor a geração de funcionalidades festivas, considere os seguintes dados de exemplo:

sample_data

Para criar funcionalidades de férias americanas para estes dados, definimos o country_or_region_for_holiday como "EUA" nas definições de previsão , conforme 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'
)

As funcionalidades de feriado geradas têm o seguinte aspeto:

sample_data_output

Tenha em atenção que as funcionalidades geradas têm o prefixo _automl_ pré-anexado aos respetivos nomes de colunas. Geralmente, o AutoML utiliza este prefixo para distinguir as funcionalidades de entrada das funcionalidades concebidas.

Passos seguintes