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:
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:
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
- Saiba mais sobre como configurar o AutoML para treinar um modelo de previsão de série temporal.
- Procurar por Perguntas Frequentes sobre Previsão de AutoML.
- Saiba mais sobre os Recursos de Previsão de AutoML com atraso.
- Saiba mais sobre como o AutoML usa o aprendizado de máquina para compilar modelos de previsão.