Recursos de calendário para previsão de séries temporais no AutoML
Este artigo se concentra nos recursos baseados em 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 sobre como o sistema modelado se comporta, o tempo antes, durante e depois de um feriado pode enviesar os padrões da série. Cada feriado gera uma janela sobre o conjunto de dados existente à qual o aluno pode atribuir um efeito. Isso 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 obter mais informações gerais sobre a metodologia de previsão no AutoML. Instruções e exemplos para treinar modelos de previsão no AutoML podem ser encontrados em nosso artigo de configuração do AutoML para previsão de séries temporais .
Como parte da engenharia de recursos, o AutoML transforma colunas de tipo data/hora fornecidas nos dados de treinamento em novas colunas de recursos baseados em calendário. Esses recursos podem ajudar os modelos de regressão a aprender padrões sazonais em várias cadências. O AutoML sempre pode criar recursos de calendário a partir do índice de tempo da 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 de outras colunas com o tipo datetime, se houver alguma. Consulte como o AutoML usa seu guia de dados para obter mais informações sobre os requisitos de dados.
O AutoML considera duas categorias de recursos de calendário: recursos padrão baseados inteiramente em valores de data e hora e recursos de feriados específicos de um país ou região do mundo. Abordaremos esses recursos no restante do artigo.
Recursos de calendário padrão
A tabela a seguir mostra o conjunto completo de recursos de calendário padrão do AutoML, juntamente com uma saída de exemplo. O exemplo usa o formato padrão YY-mm-dd %H-%m-%d
para representação datetime.
Nome da funcionalidade | Description | Exemplo de saída para 2011-01-01 00:25:30 |
---|---|---|
year |
Característica numérica que representa 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 que tem 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. É 1 se a data for anterior a 1 e 2 de julho caso contrário. | |
quarter |
Característica numérica que representa o trimestre da data dada. Leva valores 1, 2, 3 ou 4 representando o primeiro, segundo, terceiro, quarto trimestre do ano civil. | 1 |
month |
Característica numérica que representa o mês do calendário. Leva valores de 1 a 12. | 1 |
month_lbl |
Recurso de cadeia de caracteres que representa o nome do mês. | 'Janeiro' |
day |
Característica numérica que representa o dia do mês. Leva valores de 1 a 31. | 1 |
hour |
Característica numérica que representa a hora do dia. Leva valores de 0 a 23. | 0 |
minute |
Característica numérica que representa o minuto dentro da hora. Leva valores de 0 a 59. | 25 |
second |
Característica numérica que representa o segundo da data-hora dada. No caso em que apenas o formato de data é fornecido, então ele é assumido como 0. Leva valores de 0 a 59. | 30 |
am_pm |
Característica numérica que indica se a hora é de manhã ou à noite. É 0 para tempos antes das 12h e 1 para tempos depois das 12h. | 0 |
am_pm_lbl |
Recurso de cadeia de caracteres que indica se a hora é de manhã ou à noite. | 'AM' |
hour12 |
Característica numérica que representa a hora do dia num 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 |
Característica numérica que representa o dia da semana. Leva valores de 0 a 6, onde 0 corresponde a segunda-feira. | 5 |
wday_lbl |
Recurso de cadeia de caracteres que representa o nome do dia da semana. | |
qday |
Característica numérica que representa o dia dentro do trimestre. Leva valores de 1 a 92. | 1 |
yday |
Característica numérica que representa o dia do ano. Leva valores de 1 a 365, ou de 1 a 366 no caso de ano bissexto. | 1 |
week |
Característica 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. Leva valores de 1 a 52, ou 53 para anos tendo 1º de janeiro caindo na quinta-feira ou para anos bissextos tendo 1º de janeiro caindo na quarta-feira. | 52 |
O conjunto completo de recursos 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 treinamento contêm recursos de data/hora além do índice de tempo. A tabela a seguir mostra os recursos criados para diferentes tipos de coluna:
Finalidade da coluna | Funcionalidades do calendário |
---|---|
Índice de tempo | O conjunto completo menos recursos de calendário que têm alta correlação com outros recursos. Por exemplo, se a frequência da série temporal for diária, todos os recursos com uma frequência mais granular do que diária serão removidos, pois não fornecem informações úteis. |
Outra coluna datetime | Um conjunto reduzido que consiste em Year , Month , Day , DayOfWeek , DayOfYear , QuarterOfYear , WeekOfMonth , Minute Hour , e Second . Se a coluna for uma data sem hora, Hour , Minute e Second será 0. |
Características de férias
O AutoML pode, opcionalmente, criar recursos que representam feriados de um país ou região específica. Esses recursos são configurados no AutoML usando o country_or_region_for_holidays
parâmetro, que aceita um código de país ISO.
Nota
Os recursos de férias só podem ser feitos para séries temporais com frequência diária.
A tabela a seguir resume os recursos de feriado:
Nome da funcionalidade | Description |
---|---|
Holiday |
Recurso de cadeia de caracteres que especifica se uma data é um feriado nacional/regional. Dias dentro de algum intervalo de um feriado também são marcados. |
isPaidTimeOff |
Recurso binário que assume o valor 1 se o dia for um "feriado de folga remunerada" em determinado país ou região. |
O AutoML usa os Conjuntos de Dados Abertos do Azure como uma fonte para informações de férias. Para obter mais informações, consulte a documentação do PublicHolidays .
Para entender melhor a geração de recursos de férias, considere os seguintes dados de exemplo:
Para criar recursos de feriados americanos para esses dados, definimos como country_or_region_for_holiday
'EUA' nas configurações de previsão, conforme mostrado no exemplo de código a seguir:
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:
Observe que os recursos gerados têm o prefixo _automl_
pré-configurado para seus nomes de coluna. O AutoML geralmente usa esse prefixo para distinguir os recursos de entrada dos recursos projetados.
Próximos passos
- Saiba mais sobre como configurar o AutoML para treinar um modelo de previsão de séries temporais.
- Navegue pelas perguntas frequentes sobre a previsão do AutoML.
- Saiba mais sobre os recursos com atraso de previsão do AutoML.
- Saiba mais sobre como o AutoML usa o aprendizado de máquina para criar modelos de previsão.