Share via


Introducción a los métodos de previsión de ML automatizado

Este artículo se centra en los métodos que usa ML automatizado para preparar los datos de una serie temporal y crear modelos de previsión. 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.

ML automatizado usa varios métodos para prever valores de series temporales. Estos métodos pueden clasificarse a grandes rasgos en dos categorías:

  1. Modelos de serie temporal que usan valores históricos de la cantidad de destino para realizar predicciones en el futuro.
  2. Modelos de regresión, o explicativos, que usan variables de predicción para prever los valores del destino.

Por ejemplo, piense en un problema a la hora de prever la demanda diaria de una marca determinada de zumo de naranja en una tienda de comestibles. Suponga que $y_t$ representa la demanda de esta marca el día $t$. Un modelo de serie temporal predice la demanda en $t+1$ mediante alguna función de la demanda histórica,

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$.

La función $f$ suele tener parámetros que podemos ajustar mediante la demanda observada en el pasado. La cantidad de historial que $f$ usa para realizar predicciones, $s$, también se puede considerar un parámetro del modelo.

Es posible que el modelo de serie temporal del ejemplo de demanda del zumo de naranja no sea lo suficientemente preciso, ya que solo usa información sobre la demanda pasada. Hay muchos otros factores que probablemente influirán en la demanda futura, como el precio, el día de la semana y si es un día festivo o no. Considere la posibilidad de usar un modelo de regresión que use estas variables de predicción,

$y = g(\text{price}, \text{day of week}, \text{holiday})$.

De nuevo, $g$ generalmente tiene un conjunto de parámetros, incluidos los que rigen la regularización, que ML automatizado ajusta mediante los valores anteriores de la demanda y las variables de predicción. Se omite $t$ de la expresión para resaltar que el modelo de regresión usa patrones correlacionales entre variables definidas al mismo tiempo para realizar predicciones. Es decir, para predecir $y_{t+1}$ a partir de $g$, debemos saber en qué día de la semana cae $t+1$, si es un día festivo y el precio del zumo de naranja el día $t+1$. Los dos primeros fragmentos de información siempre se encuentran fácilmente mediante un calendario. Se suele fijar un precio al por menor por adelantado, por lo que es probable que el precio del zumo de naranja también se conozca un día antes. Sin embargo, puede que el precio de dentro de 10 días no se conozca. Es importante comprender que la utilidad de esta regresión está limitada por la distancia en el futuro que necesitamos prever, también denominada horizonte de previsión, y en qué grado conocemos los valores futuros de las variables de predicción.

Importante

Los modelos de regresión de previsión de ML automatizado suponen que todas las características proporcionadas por el usuario se conocen en el futuro, al menos hasta el horizonte de previsión.

Los modelos de regresión de previsión de ML automatizado también se pueden aumentar para que usen los valores históricos del destino y las variables de predicción. El resultado es un modelo híbrido con características de un modelo de serie temporal y un modelo puro de regresión. Las cantidades históricas son variables de predicción adicionales en la regresión y se hace referencia a ellas como cantidades con retardo. El orden del retardo hace referencia a cuanto tiempo en el pasado se remonta el valor. Por ejemplo, el valor actual de un pedido con un retardo de orden 2 del objetivo de nuestro ejemplo de demanda de zumo de naranja es la demanda observada de hace dos días.

Otra diferencia notable entre los modelos de serie temporal y los modelos de regresión es la forma en que generan previsiones. Los modelos de serie temporal se definen generalmente mediante relaciones de recursividad y generan previsiones de una en una. Para prever muchos períodos del futuro, los modelos se iteran hasta alcanzar el horizonte de previsión, retroalimentando las previsiones anteriores en el modelo para generar la siguiente previsión de un período futuro según sea necesario. Por el contrario, los modelos de regresión se denominan pronósticos directos ya que generan todas las previsiones hasta el horizonte en una sola pasada. Los pronósticos directos pueden ser preferibles a los recursivos ya que los modelos recursivos agravan los errores de predicción al retroalimentar el modelo con previsiones anteriores. Cuando se incluyen características de retardo, ML automatizado realiza algunas modificaciones importantes en los datos de entrenamiento para que los modelos de regresión puedan funcionar como pronósticos directos. Consulte el artículo sobre las características de los retardos para obtener más detalles.

Modelos de previsión en ML automatizado

En la tabla siguiente se enumeran los modelos de previsión implementados en ML automatizado y a qué categoría pertenecen:

Modelos de Time Series Modelos de regresión
Naive, Naive estacional, Media, Media estacional, ARIMA(X), Suavizado exponencial Linear SGD, LARS LASSO, Elastic Net, Prophet, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

Los modelos de cada categoría se enumeran aproximadamente según el orden de complejidad de los patrones que pueden incorporar, lo que se conoce también como capacidad del modelo. Un modelo simple, que simplemente prevé el último valor observado, tiene una capacidad baja mientras que una red convolucional temporal (TCNForecaster), que es una red neuronal profunda con potencialmente millones de parámetros ajustables, tiene una alta capacidad.

Y lo que es más importante, ML automatizado también incluye modelos de conjuntos que crean combinaciones ponderadas de los modelos de mejor rendimiento para mejorar aún más la precisión. Para la previsión, se usa un conjunto de votación probabilística donde la composición y las ponderaciones se encuentran mediante el algoritmo de selección de conjuntos de Caruana.

Nota:

Hay dos advertencias importantes para los conjuntos de modelos de previsión:

  1. Las TCN no se pueden incluir actualmente en los conjuntos.
  2. ML automatizado deshabilita de forma predeterminada otro método de conjunto, el conjunto de pila, que se incluye con las tareas de clasificación y regresión predeterminadas en ML automatizado. El conjunto de pila ajusta un metamodelo a las previsiones del mejor modelo para hallar las ponderaciones del conjunto. Hemos detectado en las pruebas comparativas internas que esta estrategia tiene una tendencia creciente a sobreajustarse a los datos de series temporales. Esto puede dar lugar a una generalización deficiente, por lo que el conjunto de pila está deshabilitado de forma predeterminada. Sin embargo, se puede habilitar si lo desea en la configuración de ML automatizado.

Uso de los datos por parte de ML automatizado

ML automatizado acepta datos de serie temporal en formato tabular, "ancho"; es decir, cada variable debe tener su propia columna correspondiente. AutoML requiere que una de las columnas sea el eje de tiempo para el problema de previsión. Esta columna debe poder analizarse en un tipo datetime. El conjunto de datos de serie temporal más sencillo consta de una columna de fecha y una columna de destino numérica. El destino es la variable que se pretende predecir en el futuro. A continuación se muestra un ejemplo del formato en este sencillo caso:

timestamp quantity
2012-01-01 100
2012-01-02 97
2012-01-03 106
2013-12-31 347

En casos más complejos, los datos pueden contener otras columnas alineadas con el índice de fecha.

timestamp SKU price anunciado quantity
2012-01-01 JUICE1 3,5 0 100
2012-01-01 BREAD3 5.76 0 47
2012-01-02 JUICE1 3,5 0 97
2012-01-02 BREAD3 5.5 1 68
2013-12-31 JUICE1 3,75 0 347
2013-12-31 BREAD3 5.7 0 94

En este ejemplo, hay una SKU, un precio de venta al por menor y una marca que indica si se anunció un artículo además de la marca de tiempo y la cantidad de destino. Hay evidentemente dos series en este conjunto de datos: una para la SKU JUICE1 y otra para la SKU BREAD3; la columna SKU es una columna de identificador de serie temporal, ya que la agrupación mediante dicha columna proporciona dos grupos que contienen una sola serie cada una. Antes de realizar el barrido de modelos, ML automatizado realiza la validación básica de la configuración y los datos de entrada y agrega características diseñadas.

Requisitos de longitud de datos

Para entrenar un modelo de previsión, debe tener una cantidad suficiente de datos históricos. Esta cantidad de umbral varía con la configuración de entrenamiento. Si ha proporcionado datos de validación, el número mínimo de observaciones de entrenamiento necesarias por serie temporal lo proporciona,

$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

donde $H$ es el horizonte de previsión, $l_{\text{max}}$ es el orden de retardo máximo y $s_{\text{window}}$ es el tamaño de la ventana para las características de agregación graduales. Si usa la validación cruzada, el número mínimo de observaciones es,

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

donde $n_{\text{CV}}$ es el número de plegamientos de validación cruzada y $n_{\text{step}}$ es el tamaño del paso CV o el desplazamiento entre plegamientos CV. La lógica básica detrás de estas fórmulas es que siempre debe tener al menos un horizonte de observaciones de entrenamiento para cada serie temporal, incluidos algunos rellenos para retardos y divisiones de validación cruzada. Consulte la selección de modelos de previsión para obtener más información sobre la validación cruzada para la previsión.

Falta el control de datos

Los modelos de serie temporal de AutoML requieren observaciones espaciadas de forma regular en el tiempo. En este caso, el espaciado regular, incluye casos como observaciones mensuales o anuales en los que el número de días entre observaciones puede variar. Antes del modelado, AutoML debe asegurarse de que no faltan valores de serie y de que las observaciones se producen con regularidad. Por lo tanto, faltan dos casos de datos:

  • Falta un valor en alguna celda de los datos tabulares.
  • Falta una fila que corresponde a una observación esperada dada la frecuencia de la serie temporal.

En el primer caso, ML automatizado imputa los valores que faltan mediante técnicas comunes y configurables.

En la tabla siguiente se muestra un ejemplo de una fila esperada que falta:

timestamp quantity
2012-01-01 100
2012-01-03 106
2012-01-04 103
2013-12-31 347

Esta serie tiene claramente una frecuencia diaria, pero no hay observación para el 2 de enero de 2012. En este caso, AutoML intentará rellenar los datos agregando una nueva fila para 2 de enero de 2012. El nuevo valor de la columna quantity y cualquier otra columna de los datos se imputará como otros valores que faltan. Claramente, ML automatizado debe conocer la frecuencia de la serie para rellenar las observaciones que faltan como en este caso. ML automatizado detecta automáticamente esta frecuencia u, opcionalmente, el usuario puede proporcionarla en la configuración.

El método de imputación para rellenar los valores que faltan se puede configurar en la entrada. Los metadatos predeterminados se enumeran en la tabla siguiente:

Tipo de columna Método de imputación predeterminado
Destino Relleno hacia delante (última observación transferida)
Característica numérica Valor medio

Los valores que faltan de las características de categorías se controlan durante la codificación numérica mediante la inclusión de una categoría adicional correspondiente a un valor que falta. La imputación es implícita en este caso.

Diseño de características automatizadas

AutoML generalmente agrega columnas nuevas a los datos de usuario para aumentar la precisión del modelado. La característica diseñada puede incluir lo siguiente:

Grupo de características Valor predeterminado/opcional
Características del calendario derivadas del índice de fechas (por ejemplo, día de la semana) Valor predeterminado
Características de categorías derivadas de identificadores de serie temporal Valor predeterminado
Codificación de tipos categóricos en tipo numérico Valor predeterminado
Características de indicador de días festivos asociados a un país o región determinados Opcionales
Retardos de la cantidad de destino Opcionales
Retardos de columnas de características Opcionales
Agregaciones de períodos sucesivos (por ejemplo, media acumulada) de la cantidad de destino Opcionales
Descomposición estacional (STL) Opcionales

Puede configurar la caracterización desde el SDK de AutoML mediante la clase ForecastingJob o desde la interfaz web de Estudio de Azure Machine Learning.

Detección y control de series temporales no fijas

Una serie temporal en la que la media y la varianza cambian con el tiempo se denomina no fija. Por ejemplo, las series temporales que presentan tendencias estocásticas son no fijas por naturaleza. Para visualizar esto, la imagen siguiente traza una serie que generalmente marca una tendencia hacia arriba. Ahora, calcule y compare los valores medios (promedio) de la primera y la segunda mitad de la serie. ¿Son el mismo equipo? Aquí, la media de la serie en la primera mitad del trazado es bastante menor que en la segunda mitad. El hecho de que la media de la serie dependa del intervalo de tiempo que se está examinando es un ejemplo de los momentos que varían el tiempo. Aquí, la media de una serie es el primer momento.

Diagram showing retail sales for a non-stationary time series.

Ahora, vamos a examinar la imagen siguiente, que traza la serie original en las primeras diferencias, $\Delta y_{t} = y_t - y_{t-1}$. La media de la serie es aproximadamente constante en el intervalo de tiempo mientras que la varianza parece variar. Por tanto, este es un ejemplo de una serie temporal fija de primer orden.

Diagram showing retail sales for a weakly stationary time series.

Los modelos de regresión de AutoML no pueden tratar de forma inherente tendencias estocásticas u otros problemas conocidos asociados a series temporales no fijas. Como resultado, la precisión de la previsión que se haga fuera de la muestra puede ser deficiente si estas tendencias están presentes.

AutoML analiza automáticamente el conjunto de datos de series temporales para determinar la estacionalidad. Cuando se detectan series temporales no fijas, AutoML aplica automáticamente una transformación de diferenciación para mitigar el impacto de su comportamiento.

Barrido de modelos

Una vez preparados los datos con el control de datos y la ingeniería de características que faltan, ML automatizado barre un conjunto de modelos e hiperparámetros mediante un servicio de recomendación de modelos. Los modelos se clasifican en función de métricas de validación o validación cruzada y, opcionalmente, los modelos principales se pueden usar en un modelo de conjunto. El mejor modelo, o cualquiera de los modelos entrenados, se puede inspeccionar, descargar o implementar para generar previsiones según sea necesario. Consulte el artículo Barrido y selección de modelos para obtener más detalles.

Agrupación de modelos

Cuando un conjunto de datos contiene más de una serie temporal, como en el ejemplo de datos especificado, hay varias maneras de modelar esos datos. Por ejemplo, podemos simplemente agrupar por las columnas de identificador de serie temporal y entrenar modelos independientes para cada serie. Un enfoque más general consiste en crear particiones de los datos en grupos que pueden contener varias series relacionadas y entrenar un modelo por grupo. De forma predeterminada, la previsión de ML automatizado usa un enfoque mixto para la agrupación de modelos. Los modelos de serie temporal, además de ARIMAX y Prophet, asignan una serie a un grupo y otros modelos de regresión asignan todas las series a un único grupo. En la tabla siguiente se resumen las agrupaciones de modelos en dos categorías, una a una y varias a una:

Cada serie en su propio grupo (1:1) Todas las series en un único grupo (N:1)
Naive, Naive estacional, Media, Media estacional, Suavizado exponencial, ARIMA, ARIMAX, Prophet Linear SGD, LARS LASSO, Elastic Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

Se pueden agrupar modelos más generales a través de la solución De varios modelos de AutoML; consulte nuestro cuaderno de Muchos modelos: ML automatizado.

Pasos siguientes