Introducción a los métodos de previsión de ML automatizado
En este artículo se describen los métodos que Usa AutoML en Azure Machine Learning para preparar los datos de series temporales y crear modelos de previsión. Para obtener instrucciones y ejemplos sobre los modelos de previsión de entrenamiento en AutoML, consulte Configuración de AutoML para la previsión de serie temporal.
Métodos de previsión en AutoML
ML automatizado usa varios métodos para prever valores de series temporales. Estos métodos pueden clasificarse a grandes rasgos en dos categorías:
- Modelos de serie temporal que usan valores históricos de la cantidad de destino para realizar predicciones en el futuro
- Regresión, o explicativa, modelos que usan variables de predicción para predecir valores del destino
Supongamos que necesita prever la demanda diaria de una marca determinada de jugo de naranja de una tienda de comestibles. Para la expresión, deje que $y_t$ represente la demanda de esta marca el día $t$. Un modelo serie temporal predice la demanda en $t+1$ utilizando alguna función de la demanda histórica con la siguiente expresión:
$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$
La función $f$ a menudo tiene parámetros que se optimizan mediante la demanda observada del 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 de jugo de naranja no sea lo suficientemente preciso porque solo usa información sobre la demanda pasada. Hay muchos otros factores que pueden influir en la demanda futura, como el precio, el día de la semana y los períodos festivos. Considere un modelo de regresión que use estas variables de predicción con la expresión siguiente:
$y = g(\text{price}, \text{day of week}, \text{holiday})$
De nuevo, la función $g$ generalmente tiene un conjunto de parámetros, incluidos los valores que rigen la regularización, que AutoML se ajusta mediante valores anteriores de la demanda y los predictores. Se omite $t$ de la expresión para resaltar que el modelo de regresión usa patrones correlaciónales entre variables definidas de forma contemporánea para realizar predicciones. Para predecir $y_{t+1}$ de $g$, debe saber qué día de la semana corresponde a $t+1$, si el día es un día festivo y el precio del jugo de naranja en el día $t+1$. Los dos primeros fragmentos de información son fáciles de identificar mediante el uso de un calendario. Un precio de venta directa suele establecerse con antelación, por lo que es probable que el precio del jugo de naranja también se conozca un día con antelación. Sin embargo, es posible que el precio no se conozca dentro de 10 días. Es importante comprender que la utilidad de esta regresión está limitada por cuánto tiempo en el futuro necesita previsiones, también denominada horizonte de previsión y en qué grado conoce los valores futuros de los predictores.
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 predictoras adicionales en la regresión denominadas cantidades retardada. El orden del retardo hace referencia a cuanto tiempo en el pasado se remonta el valor. Por ejemplo, el valor actual de un retraso de dos pedidos del objetivo para el ejemplo de demanda de jugo de naranja es la demanda observada de jugo de hace dos días.
Otra diferencia notable entre los modelos de serie temporal y los modelos de regresión es cómo generan previsiones. Las relaciones de recursividad generalmente definen modelos de series temporales que generan previsiones de uno a uno. 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. En cambio, los modelos de regresión se consideran pronósticos directos que generan todas las previsiones hasta el horizonte en un único intento. Los pronósticos directos pueden ser preferibles a los métodos recursivos porque los modelos recursivos componen el error de predicción cuando devuelven las previsiones anteriores al modelo. Cuando se incluyen características de retraso, AutoML realiza algunas modificaciones importantes en los datos de entrenamiento para que los modelos de regresión puedan funcionar como pronósticos directos. Para obtener más información, consulte características de retraso para la previsión de series temporales en AutoML.
Modelos de previsión en ML automatizado
AutoML en Machine Learning implementa los siguientes modelos de previsión. Para cada categoría, los modelos se enumeran aproximadamente en orden de la complejidad de los patrones que pueden incorporar, también conocidos como la capacidad del modelo. Un modelo Naive, que simplemente pronostica el último valor observado, tiene poca capacidad, mientras que la Red Convolucional Temporal (TCNForecaster), una red neuronal profunda (DNN) con millones de parámetros potencialmente sintonizables, tiene una gran capacidad.
Modelos de serie temporal | 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 |
AutoML también incluye modelos de conjuntos que crean combinaciones ponderadas de los modelos con mejores resultados para mejorar aún más la precisión. Para la previsión, use una conjunto de votación suave donde se encuentran la composición y los pesos mediante el Algoritmo de selección de conjuntos de Caruana.
Nota:
Hay dos advertencias importantes para los conjuntos de modelos de previsión:
- Las TCN no se pueden incluir actualmente en los conjuntos.
- Por defecto, AutoML desactiva el método de conjunto de pila, que se incluye con las tareas de regresión y clasificación por defecto en AutoML. El conjunto de pila ajusta un metamodelo a las previsiones del mejor modelo para hallar las ponderaciones del conjunto. Durante la prueba comparativa interna, esta estrategia tiene una tendencia creciente a ajustarse a los datos de series temporales. Este resultado puede dar lugar a una generalización deficiente, por lo que el conjunto de la pila está deshabilitado de forma predeterminada. Puede habilitar el conjunto en la configuración de AutoML, según sea necesario.
Uso de los datos por parte de ML automatizado
AutoML acepta datos de serie temporal en formato "ancho" tabular. Cada variable debe tener su propia columna correspondiente. AutoML requiere que una columna 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 series temporales más sencillo consta de una columna temporal y una columna numérica de destino. El destino es la variable que pretende predecir en el futuro. En la tabla siguiente se muestran valores de ejemplo para este formato:
timestamp | quantity |
---|---|
2012-01-01 | 100 |
2012-01-02 | 97 |
2012-01-03 | 106 |
… | … |
2013-12-31 | 347 |
En casos más complejos, el conjunto de datos puede contener otras columnas alineadas con el índice de tiempo:
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 |
En el segundo ejemplo se incluye una SKU, un precio de venta al por menor y una marca para indicar si se anunció un artículo además de la marca de tiempo y la cantidad de destino. El segundo conjunto de datos revela dos series: una para la SKU DE JUICE1 y otra para la SKU BREAD3. La SKU es una columna de identificador de serie temporal porque la agrupación por estos valores de columna genera dos grupos que contienen una sola serie. Antes del barrido del modelo, AutoML realiza la validación básica de la configuración de entrada y los datos 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 proporciona datos de validación, el número mínimo de observaciones de entrenamiento necesarias por serie temporal se expresa de la siguiente manera:
$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
En esta expresión, $H$ es el horizonte de previsión, $l_{\text{max}}$ es el orden máximo de retraso 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 se expresa de la siguiente manera:
$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
En esta versión, $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 los 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. Para obtener más información sobre la validación cruzada para la previsión, consulte Selección de modelos en AutoML.
Falta el control de datos
Los modelos de serie temporal de AutoML requieren observaciones espaciadas periódicamente en el tiempo, lo que incluye casos como observaciones mensuales o anuales en las que el número de días entre observaciones puede variar. Antes de que se inicie el proceso de modelado, AutoML debe asegurarse de que no faltan valores de serie yde que las observaciones son normales. Como resultado, hay dos casos de datos que faltan:
- Falta un valor para algunas celdas de los datos tabulares.
- Falta una fila, que corresponde a una observación esperada dada la frecuencia de serie temporal.
En el primer caso, AutoML imputa los valores que faltan mediante técnicas configurables comunes. 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 una frecuencia diaria, pero no hay ninguna observación para el 2 de enero de 2012 (2012-01-02). En este caso, AutoML intenta rellenar los datos agregando una nueva fila para el valor que falta. A continuación, el nuevo valor de la columna quantity
y cualquier otra columna de los datos se imputan como otros valores que faltan. Para ejecutar este proceso, AutoML debe reconocer la frecuencia de la serie para poder rellenar los huecos de observación, como se muestra 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 proporcionar valores que faltan se puede configurar en la entrada. En la tabla siguiente se enumeran los métodos predeterminados:
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 para las características de categorías se controlan durante la codificación numérica mediante la inclusión de otra categoría que corresponde 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. El objetivo es la variable que se pretende predecir en el futuro.
Características diseñadas predeterminadas:
- Características del calendario derivadas del índice de hora, como el día de la semana
- Características de categorías derivadas de identificadores de serie temporal
- Codificación de tipos categóricos en tipo numérico
Características opcionales diseñadas:
- Características de los días festivos asociados a una región determinada
- Retardos de la cantidad de destino
- Retardos de columnas de características
- Agregaciones de períodos sucesivos, media acumulada, de la cantidad de destino
- Descomposición estacional ((Descomposición estacional y de tendencia mediante Loess (STL))
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 estacionarias
Una serie temporal en la que la media y la varianza cambian con el tiempo se denomina no fija. Las series temporales que muestran tendencias estocásticas son no estacionarias por naturaleza.
En la imagen siguiente se presenta una visualización para este escenario. El gráfico traza una serie que suele tendencia hacia arriba. Si calcula y compara los valores medios (promedio) de la primera y la segunda mitad de la serie, podrá identificar las diferencias. La media de la serie en la primera mitad del gráfico es menor que la media en la segunda mitad. El hecho de que la media de la serie dependa del intervalo de tiempo examinado es un ejemplo de los momentos variables en el tiempo. En este escenario, la media de una serie es el primer momento.
En la imagen siguiente se muestra un gráfico 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. En este escenario se muestra un ejemplo de una serie temporal fija de primer orden:
Los modelos de regresión AutoML no pueden tratar de forma inherente las tendencias estocásticas ni otros problemas bien conocidos asociados a las series temporales no estacionarias. Como resultado, la precisión de la previsión fuera de muestra puede ser deficiente cuando estas tendencias están presentes.
AutoML analiza automáticamente un conjunto de datos de series temporales para determinar su nivel o estacionalidad. Cuando se detectan series temporales no estacionarias, AutoML aplica automáticamente una transformación de diferenciación para mitigar los efectos del comportamiento no estacionario.
Barrido de modelos
Una vez preparados los datos con el tratamiento de los datos que faltan y la ingeniería de características, AutoML barre un conjunto de modelos e hiper parámetros utilizando 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, a continuación, opcionalmente, los mejores modelos pueden utilizarse 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. Para obtener más información, consulte Barrido y selección de modelos para la previsión en AutoML.
Agrupación de modelos
Cuando un conjunto de datos contiene más de una serie temporal, hay varias maneras de modelar los datos. Puede agrupar por los datos de 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 contienen varias series (probablemente 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.
Este es el modo en que cada tipo de modelo usa grupos:
Cada serie de un grupo independiente (1:1): Naive, Estacional Naive, Average, Estacional Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet
Todas olas series en el mismo grupo (N:1): Linear SGD, LARS LASSO, Elastic Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster
Es posible realizar agrupaciones de modelos más generales utilizando la solución de muchos modelos de AutoML. Para obtener más información, consulte Muchos modelos: cuaderno de ML automatizado.