En esta página, se proporciona información detallada sobre los parámetros que se usan en el entrenamiento de modelos de previsión. Si deseas obtener información para entrenar un modelo de previsión, consulta Entrena un modelo de previsión y Entrena un modelo con el flujo de trabajo tabular para la previsión.
Métodos de entrenamiento de modelos
Puedes elegir entre los siguientes métodos para entrenar tu modelo:
Codificador denso de series temporales (TiDE): Es un modelo de codificador-decodificador basado en DNN denso optimizado. Gran calidad del modelo con inferencia y entrenamiento rápidos, en especial para contextos y horizontes largos. Obtén más información.
Transformador de fusión temporal (TFT): Modelo de DNN basado en la atención diseñado para producir interpretabilidad y una alta precisión mediante la alineación del modelo con la tarea general de previsión de varios horizontes. Obtén más información.
AutoML (L2L): Es una buena opción para una amplia gama de casos de uso. Obtén más información.
Seq2Seq+: Una buena opción para experimentar. Es probable que el algoritmo converja más rápido que AutoML porque su arquitectura es más simple y usa un espacio de búsqueda más pequeño. Nuestros experimentos demuestran que Seq2Seq+ funciona bien con un presupuesto pequeño y en conjuntos de datos de menos de 1 GB de tamaño.
Tipo de atributo y disponibilidad según la previsión
Cada columna que se usa para entrenar un modelo de previsión debe tener un tipo: atributo o covariable. Las covariables se designan como disponibles o no disponibles en el momento de la previsión.
Tipo de serie | Disponible en el momento de la predicción | Descripción | Ejemplos | Campos de la API |
---|---|---|---|---|
Atributo | Disponible | Un atributo es una función estática que no cambia con el tiempo. | El color del artículo y la descripción del producto. | time_series_attribute_columns |
Covariable | Disponible |
Una variable exogénea que se espera que cambie con el tiempo. Una covariable disponible en el momento de la previsión es un indicador principal. Debes proporcionar datos de predicción para esta columna en cada punto del horizonte de previsión. |
Días festivos, promociones o eventos planificados. | available_at_forecast_columns |
Covariable | No disponible | Una covariable no disponible en el momento de la previsión. No es necesario que proporciones valores para estos atributos cuando creas una previsión. | Clima real. | unavailable_at_forecast_columns |
Obtén más información sobre la relación entre la disponibilidad de las características y el horizonte de previsión, la ventana de contexto y la ventana de previsión.
Horizonte de previsiones, ventana de contexto y ventana de previsiones
Las funciones de previsión se dividen enatributos estáticos y covariables de variante temporal.
Cuando entrenas un modelo de previsión, debes especificar qué datos de entrenamiento de covariables son los más importantes de capturar. Esto se expresa en la forma de una ventana de previsión, que es una serie de filas compuestas por lo siguiente:
- El contexto o los datos históricos hasta el momento de la predicción.
- El horizonte o las filas que se usan para la predicción.
En conjunto, las filas de la ventana definen una instancia de serie temporal que sirve como entrada de un modelo: es lo que Vertex AI entrena, evalúa y usa para la predicción. La fila que se usa para generar la ventana es la primera fila del horizonte y, además, identifica de forma única la ventana de la serie temporal.
El horizonte de previsión determina hasta qué punto del futuro el modelo predice el valor objetivo de cada fila de datos de predicción.
La ventana de contexto establece la extensión del período que el modelo consulta durante el entrenamiento (y para las previsiones). En otras palabras, para cada dato de entrenamiento, la ventana de contexto determina la extensión del período en el que el modelo busca patrones predictivos. Obtén más información sobre las prácticas recomendadas para encontrar un buen valor para la ventana de contexto.
Por ejemplo, si ventana de contexto = 14
y horizonte de previsión = 7
, cada ejemplo de ventana tendrá filas de 14 + 7 = 21
.
Disponibilidad en el pronóstico
Las variables de previsión se pueden dividir en aquellas que están disponibles en el momento de la previsión y aquellas que no están disponibles en el momento de la previsión.
Cuando se trata de variables de control que están disponibles en el momento de la previsión, Vertex AI considera los valores covariados del período de contexto y del horizonte de previsión para el entrenamiento, la evaluación y la predicción. Cuando se trata de variables de control que no están disponibles en el momento de la previsión, Vertex AI considera los valores de las variables de la ventana de contexto, pero los excluye de forma explícita del horizonte de previsión.
Estrategias de ventana móvil
Vertex AI genera ventanas de previsión a partir de los datos de entrada mediante una estrategia de ventana progresiva. La estrategia predeterminada es Recuento.
- Count (Recuento).
La cantidad de ventanas que genera Vertex AI no debe exceder el máximo proporcionado por el usuario. Si la cantidad de filas en el conjunto de datos de entrada es menor que la cantidad de ventanas, cada fila se usará para generar una ventana.
De lo contrario, Vertex AI realiza un muestreo aleatorio para seleccionar las filas.
El valor predeterminado para la cantidad máxima de ventanas es
100,000,000
. La cantidad máxima de ventanas no puede ser superior a100,000,000
. - Segmento.
Vertex AI usa una de cada filas de entrada X para generar una ventana, hasta un máximo de 100,000,000 ventanas. Esta opción es útil para predicciones estacionales o periódicas. Por ejemplo, puedes limitar la previsión a un solo día de la semana si configuras el valor de la longitud del segmento a
7
. El valor puede ser de1
a1000
. - Columna.
Puedes agregar una columna a los datos de entrada en los que los valores sean
True
oFalse
. Vertex AI genera una ventana para cada fila de entrada en la que el valor de la columna esTrue
. Los valoresTrue
yFalse
se pueden establecer en cualquier orden, siempre que el recuento total de filasTrue
sea inferior a100,000,000
. Se prefieren los valores booleanos, pero también se aceptan valores de string. Los valores de string no distinguen mayúsculas de minúsculas.
Si generas menos ventanas de 100,000,000
predeterminadas, puedes reducir el tiempo necesario para el procesamiento previo y la evaluación de modelos. Además, la reducción de muestreo de la ventana te brinda más control sobre la distribución de las ventanas que se ven durante el entrenamiento.
Si se usa correctamente, esto puede generar resultados mejorados y más coherentes.
Cómo se usan la ventana de contexto y el horizonte de previsión durante el entrenamiento y las previsiones
Supongamos que tienes datos que se recopilan de forma mensual con una ventana de contexto de 5 (meses) y un horizonte de previsión de 5 (meses). Entrenar tu modelo con 12 meses de datos daría como resultado los siguientes conjuntos de entradas y previsiones:
[1-5]:[6-10]
[2-6]:[7-11]
[3-7]:[8-12]
Después del entrenamiento, se puede usar el modelo para predecir desde el mes 13 hasta el 17:
[8-12]:[13-17]
El modelo usa solo los datos que están dentro de la ventana de contexto para realizar la previsión. Se ignorarán todos los datos que proporciones fuera de la ventana de contexto.
Después de que se recopilan los datos del mes 13, estos se pueden usar para predecir hasta el mes 18:
[9-13]:[14-18]
Esto puede continuar en el futuro, siempre y cuando obtengas buenos resultados. Con el tiempo, podrías volver a entrenar el modelo con los datos nuevos. Por ejemplo, si vuelves a entrenar el modelo después de agregar 6 meses más de datos, los datos de entrenamiento se usarán de la siguiente manera:
[2-6]:[7-11]
[3-7]:[8-12]
[4-8]:[9-13]
[5-9]:[10-14]
[6-10]:[11-15]
[7-11]:[12-16]
[8-12]:[13-17]
[9-13]:[14-18]
Luego, puedes usar el modelo para predecir desde el mes 19 hasta el 23:
[14-18]:[19-23]
Objetivos de optimización para los modelos de previsión
Cuando entrenas un modelo, Vertex AI selecciona un objetivo de optimización predeterminado según el tipo de modelo y el tipo de datos que se usa para la columna objetivo. En la siguiente tabla, se proporcionan algunos detalles sobre los modelos de previsión de problemas más adecuados para lo siguiente:
Objetivo de optimización | Valor de la API | Usa este objetivo si quieres… |
---|---|---|
RMSE | minimize-rmse |
Minimiza raíz cuadrada del error cuadrático medio (RMSE). Captura valores más extremos con exactitud y tiene menos sesgo cuando se agregan predicciones. Valor predeterminado |
MAE | minimize-mae |
Minimizar el error absoluto promedio (MAE) Observa los valores extremos como valores atípicos con un impacto menor en el modelo. |
RMSLE | minimize-rmsle |
Minimizar el error de registro de la raíz cuadrada de la media (RMSLE) Penaliza errores de tamaño relativo en lugar de valor absoluto. Es útil cuando los valores previstos y reales pueden ser bastante grandes. |
RMSPE | minimize-rmspe |
Minimizar raíz cuadrada del error de porcentaje medio (RMSPE). Captura un gran rango de valores con precisión. Similar a RMSE, pero relacionado con la magnitud objetivo. Es útil cuando el rango de valores es amplio. |
WAPE | minimize-wape-mae |
Minimiza la combinación del error porcentual absoluto ponderado (WAPE) y el error absoluto medio (MAE). Es útil cuando los valores reales son bajos. |
Pérdida de cuantil | minimize-quantile-loss |
Minimiza la pérdida escalada de bola de pinball de los cuantiles definidos para cuantificar la incertidumbre en las estimaciones. Las predicciones de cuantiles cuantifican la incertidumbre de las predicciones. Con ellas se mide la probabilidad de que una predicción esté dentro de un rango. |
Regiones con días feriados
Para ciertos casos de uso, los datos de previsión pueden tener un comportamiento irregular durante los días que corresponden a festividades regionales. Si quieres que el modelo tenga en cuenta este efecto, selecciona las regiones geográficas que corresponden a tus datos de entrada. Durante el entrenamiento, Vertex AI crea atributos categóricos para las festividades dentro del modelo en función de la fecha en la columna de tiempo y las regiones geográficas especificadas.
El siguiente es un extracto de fechas y atributos categóricos para festividades. Ten en cuenta que un atributo categórico se asigna a la fecha principal, uno o más días de la temporada previa, y uno o más días de la fecha posterior. Por ejemplo, la fecha principal del Día de la Madre en EE.UU. en 2013 fue el 12 de mayo. Las funciones del Día de la Madre se asignan a la fecha principal, seis días previos a las festividades y un día posterior a estas.
Fecha | Atributo categórico de las festividades |
---|---|
2013-05-06 | MothersDay |
2013-05-07 | MothersDay |
2013-05-08 | MothersDay |
2013-05-09 | MothersDay |
2013-05-10 | MothersDay |
2013-05-11 | MothersDay |
2013-05-12 | MothersDay |
2013-05-13 | MothersDay |
2013-05-26 | US_MemorialDay |
2013-05-27 | US_MemorialDay |
2013-05-28 | US_MemorialDay |
Los valores aceptables para las regiones de festividades incluyen los siguientes:
GLOBAL
: Detecta días festivos para todas las regiones del mundo.NA
: Detecta días festivos para NorteaméricaJAPAC
: Detecta días festivos para Japón y Asia PacificEMEA
: Detecta días festivos para Europa, Oriente Medio y ÁfricaLAC
: Detecta días festivos para Latinoamérica y el Caribe- Códigos de país ISO 3166-1: Detecta días festivos para países individuales.
Para ver la lista completa de fechas de las festividades por cada región geográfica, consulta la tabla holidays_and_events_for_forecasting
en BigQuery. Puedes abrir esta tabla a través de la consola de Google Cloud mediante los siguientes pasos:
-
En la sección BigQuery de la consola de Google Cloud, ve a la página BigQuery Studio.
- En el panel Explorador, abre el proyecto
bigquery-public-data
. Si no puedes encontrar este proyecto o si quieres obtener más información, consulta Abre un conjunto de datos públicos. - Abre el conjunto de datos
ml_datasets
. - Abre la tabla
holidays_and_events_for_forecasting
.
El siguiente es un extracto de la tabla holidays_and_events_for_forecasting
: