Compartir vía


Características del calendario para la previsión de series temporales en AutoML

Este artículo se centra en las características basadas en calendarios que AutoML crea para aumentar la precisión de los modelos de regresión de previsión. Dado que los días festivos pueden tener una fuerte influencia sobre cómo se comporta el sistema modelado, el tiempo anterior, durante y después de un día festivo puede inclinar los patrones de la serie. Cada día festivo genera una ventana sobre el conjunto de datos existente al que el aprendiz puede asignar un efecto. Esto puede ser especialmente útil en escenarios como días festivos que generan altas demandas de productos específicos. Consulte el artículo de información general sobre los métodos para obtener más información general sobre la metodología de previsión en AutoML. Encontrará instrucciones y ejemplos para entrenar modelos de previsión en AutoML en nuestro artículo configuración de AutoML para la previsión de series temporales.

Como parte de la ingeniería de características, AutoML transforma columnas de tipo datetime proporcionadas en los datos de entrenamiento en nuevas columnas de características basadas en calendarios. Estas características pueden ayudar a los modelos de regresión a aprender patrones estacionales con varias cadencias. AutoML siempre puede crear características de calendario a partir del índice de tiempo de la serie temporal, ya que se trata de una columna necesaria en los datos de entrenamiento. Las características del calendario también se realizan a partir de otras columnas con tipo datetime, si hay alguna. Consulte la guía de uso de AutoML para obtener más información sobre los requisitos de datos.

AutoML tiene en cuenta dos categorías de características de calendario: características estándar basadas completamente en valores de fecha y hora y características de vacaciones que son específicas de un país o región del mundo. Veremos estas características en el resto del artículo.

Características de calendario estándar

En la tabla siguiente se muestra el conjunto completo de características de calendario estándar de AutoML junto con una salida de ejemplo. En el ejemplo se usa el formato estándar YY-mm-dd %H-%m-%d para la representación datetime.

Nombre de característica Descripción Salida de ejemplo para 2011-01-01 00:25:30
year Característica numérica que representa el año natural 2011
year_iso Representa el año ISO tal y como se define en ISO 8601. Los años ISO comienzan en la primera semana del año que tiene un jueves. Por ejemplo, si el 1 de enero es un viernes, el año ISO comienza el 4 de enero. Los años ISO pueden diferir de los años naturales. 2010
half Característica que indica si la fecha está en la primera o segunda mitad del año. Es 1 si la fecha es anterior al 1 de julio y al 2 de otro modo.
quarter Característica numérica que representa el trimestre de la fecha especificada. Toma los valores 1, 2, 3 o 4 que representan primero, segundo, tercero y cuarto trimestre del año natural. 1
month Característica numérica que representa el mes natural. Toma los valores de 1 a 12. 1
month_lbl Característica de cadena que representa el nombre del mes. "January"
day Característica numérica que representa el día del mes. Toma valores de 1 a 31. 1
hour Característica numérica que representa la hora del día. Toma valores entre 0 y 23. 0
minute Característica numérica que representa el minuto dentro de la hora. Toma valores entre 0 y 59. 25
second Característica numérica que representa el segundo de la fecha y hora especificada. En caso de que solo se proporcione el formato de fecha, se supone que es 0. Toma valores entre 0 y 59. 30
am_pm Característica numérica que indica si la hora está en la mañana o por la noche. Es 0 las veces anteriores a las 12 p.m. y 1 para las horas posteriores a las 12 p.m. 0
am_pm_lbl Característica de cadena que indica si la hora está en la mañana o por la noche. "am"
hour12 Característica numérica que representa la hora del día en un reloj de 12 horas. Toma valores entre 0 y 12 para la primera mitad del día y entre 1 y 11 para la segunda mitad. 0
wday Característica numérica que representa el día de la semana. Toma valores entre 0 y 6, donde 0 corresponde al lunes. 5
wday_lbl Característica de cadena que representa el nombre del día de la semana.
qday Característica numérica que representa el día dentro del trimestre. Toma los valores de 1 a 92. 1
yday Característica numérica que representa el día del año. Toma valores de 1 a 365, o 1 a 366 en el caso de año bisiesto. 1
week Característica numérica que representa la semana ISO tal como se define en ISO 8601. Las semanas ISO siempre comienzan el lunes y terminan el domingo. Los valores tardan de 1 a 52 o 53 años que tienen el 1 de enero cayendo el jueves o por años bisiestos teniendo el 1 de enero cayendo el miércoles. 52

Es posible que el conjunto completo de características de calendario estándar no se cree en todos los casos. El conjunto generado depende de la frecuencia de la serie temporal y de si los datos de entrenamiento contienen características datetime además del índice de hora. En la tabla siguiente se muestran las características creadas para distintos tipos de columna:

Propósito de la columna Características de calendario
Índice de tiempo El conjunto completo menos las características del calendario que tienen una correlación alta con otras características. Por ejemplo, si la frecuencia de la serie temporal es diaria, se quitarán todas las características con una frecuencia más granular que diaria, ya que no proporcionan información útil.
Otra columna datetime Conjunto reducido que consta de Year, Month, Day, DayOfWeekDayOfYear, QuarterOfYear, WeekOfMonth, Hour, Minute, y Second. Si la columna es una fecha sin hora, Hour, Minute, y Second será 0.

Características de vacaciones

AutoML puede crear características que representan los días festivos de un país o región específicos. Estas características se configuran en AutoML mediante el country_or_region_for_holidays parámetro que acepta un código de país ISO.

Nota:

Las características de vacaciones solo se pueden hacer para series temporales con frecuencia diaria.

En la tabla siguiente se resumen las características de vacaciones:

Nombre de característica Descripción
Holiday Característica de cadena que especifica si una fecha es una fiesta nacional o regional. Los días dentro de algún intervalo de vacaciones también están marcados.
isPaidTimeOff Característica binaria que toma el valor 1 si el día es un "festivo retribuido" en el país o región especificados.

AutoML usa Azure Open Datasets como origen para obtener información de vacaciones. Para más información, consulte la documentación de PublicHolidays.

Para comprender mejor la generación de características de vacaciones, tenga en cuenta los siguientes datos de ejemplo:

sample_data

Para que las características de los días festivos estadounidenses para estos datos se establezcan country_or_region_for_holiday en "US" en la configuración de previsión, como se muestra en el ejemplo de código siguiente:

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'
)

Las características de vacaciones generadas tienen un aspecto similar la siguiente salida:

sample_data_output

Tenga en cuenta que las características generadas tienen el prefijo _automl_ antepuesto a sus nombres de columna. AutoML generalmente usa este prefijo para distinguir las características de entrada de las características diseñadas.

Pasos siguientes