Cree un trabajo de AutoML para la previsión de series temporales mediante la API - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cree un trabajo de AutoML para la previsión de series temporales mediante la API

En machine learning, la previsión se refiere al proceso de predecir los resultados o tendencias futuros en función de patrones y datos históricos. Al analizar datos de series temporales pasadas e identificar los patrones subyacentes, los algoritmos de machine learning pueden hacer predicciones y proporcionar información valiosa sobre el comportamiento futuro. Al pronosticar, el objetivo es desarrollar modelos que puedan capturar con precisión la relación entre las variables de entrada y la variable objetivo a lo largo del tiempo. Esto implica examinar varios factores, como las tendencias, la estacionalidad y otros patrones relevantes de los datos. La información recopilada se utiliza luego para entrenar un modelo de machine learning. El modelo entrenado es capaz de generar predicciones tomando nuevos datos de entrada y aplicando las relaciones y los patrones aprendidos. Puede proporcionar pronósticos para una amplia gama de casos de uso, como proyecciones de ventas, tendencias del mercado de valores, pronósticos meteorológicos, pronósticos de demanda y muchos más.

Las siguientes instrucciones muestran cómo crear un trabajo de Amazon SageMaker Autopilot como experimento piloto para tipos de problemas de previsión de series temporales mediante SageMaker API Reference.

nota

Las tareas como la clasificación de textos e imágenes, la previsión de series temporales y el ajuste de modelos de lenguaje de gran tamaño están disponibles exclusivamente a través de la versión 2 de la API REST de AutoML. Si el lenguaje de su elección es Python, puede hacer referencia directamente al AWS SDK for Python (Boto3)objeto AutoMLv2 del SDK de Amazon SageMaker Python.

Los usuarios que prefieran la comodidad de una interfaz de usuario pueden usar Amazon SageMaker Canvas para acceder a modelos previamente entrenados y modelos básicos de IA generativa, o crear modelos personalizados adaptados a textos específicos, clasificación de imágenes, necesidades de previsión o IA generativa.

Puede crear un experimento de previsión de series temporales con piloto automático mediante programación llamando a la CreateAutoMLJobV2API en cualquier idioma compatible con Amazon Autopilot o el. SageMaker AWS CLI

Para obtener información sobre cómo se traduce esta acción de API en una función en el lenguaje que usted prefiera, consulte la sección Véase también de CreateAutoMLJobV2 y seleccione un SDK. Como ejemplo, para los usuarios de Python, consulte la sintaxis de solicitud completa de create_auto_ml_job_v2 en AWS SDK for Python (Boto3).

Piloto automático entrena a varios modelos candidatos con su serie temporal objetivo y, a continuación, selecciona un modelo de pronóstico óptimo para una métrica objetivo determinada. Cuando los candidatos a modelo hayan recibido entrenamiento, podrá encontrar las mejores métricas candidatas en la respuesta a DescribeAutoMLJobV2 en BestCandidate.

En las siguientes secciones se definen los parámetros de solicitud de entrada obligatorios y opcionales para la API CreateAutoMLJobV2 utilizada en la previsión de series temporales.

nota

Consulte el cuaderno Previsión de series temporales con Amazon SageMaker Autopilot para ver un ejemplo práctico y práctico de previsión de series temporales. En este cuaderno, utiliza Amazon SageMaker Autopilot para entrenar un modelo de series temporales y producir predicciones utilizando el modelo entrenado. El cuaderno proporciona instrucciones para recuperar un conjunto de datos históricos tabulares listo para usar en Amazon S3.

Requisitos previos

Antes de utilizar el piloto automático para crear un experimento de previsión de series temporales, asegúrese de SageMaker:

  • Prepare su conjunto de datos de series temporales. La preparación del conjunto de datos implica recopilar datos relevantes de diversas fuentes, limpiarlos y filtrarlos para eliminar el ruido y las incoherencias y organizarlos en un formato estructurado. Consulte Formato de conjuntos de datos de series temporales y métodos de relleno de valores faltantes para obtener más información sobre los requisitos de formato de series temporales en Piloto automático. Si lo desea, puede complementar su conjunto de datos con el calendario de días festivos del país que elija para capturar los patrones asociados. Para obtener más información sobre los calendarios de días festivos, consulte Calendarios de días festivos nacionales.

    nota

    Recomendamos proporcionar al menos de 3 a 5 puntos de datos históricos por cada punto de datos futuro que desee predecir. Por ejemplo, para pronosticar con 7 días de antelación (horizonte de 1 semana) en función de los datos diarios, entrene su modelo con un mínimo de 21 a 35 días de datos históricos. Asegúrese de proporcionar datos suficientes para capturar los patrones estacionales y recurrentes.

  • Coloque el conjunto de datos de serie temporal en un bucket de Amazon S3.

  • Conceda acceso completo al bucket de Amazon S3 que contiene los datos de entrada para la función de SageMaker ejecución utilizada para ejecutar el experimento. Una vez hecho esto, puede usar el ARN de este rol de ejecución en las solicitudes de la API de Piloto automático.

    • Para obtener información sobre cómo recuperar su función SageMaker de ejecución, consulteObtener un rol de ejecución.

    • Para obtener información sobre cómo conceder permisos a su función de SageMaker ejecución para acceder a uno o más buckets específicos en Amazon S3, consulte Añadir permisos adicionales de Amazon S3 a una función de SageMaker ejecución enCreación de un rol de ejecución.

Parámetros necesarios

Al llamar a CreateAutoMLJobV2 para crear un experimento de Piloto automático a fin de realizar una previsión de series temporales, debe proporcionar los siguientes valores:

  • Un AutoMLJobName para especificar el nombre del trabajo. El nombre debe ser del tipo string y tener una longitud de caracteres de entre 1 y 32.

  • Al menos un AutoMLJobChannel en AutoMLJobInputDataConfig, en el que usted especifique el nombre del bucket de Amazon S3 que contiene sus datos. Si lo desea, puede especificar el contenido (archivos CSV o Parquet) y los tipos de compresión (GZip).

  • Un AutoMLProblemTypeConfig del tipo TimeSeriesForecastingJobConfig para configurar los ajustes de su trabajo de previsión de series temporales. Es especialmente importante que especifique lo siguiente:

    • La frecuencia de las predicciones; es decir, la granularidad deseada (por hora, día, mes, etc.) de su previsión.

      Los intervalos válidos son un número entero seguido de Y (año), M (mes), W (semana), D (día), H (hora) y min (minuto). Por ejemplo, 1D indica todos los días y 15min indica cada 15 minutos. El valor de una frecuencia no debe superponerse con la siguiente frecuencia mayor. Por ejemplo, debe utilizar una frecuencia de 1H en lugar de 60min.

      Los valores válidos de cada frecuencia son los siguientes:

      • Minuto: de 1 a 59

      • Hora: de 1 a 23

      • Día: de 1 a 6

      • Semana: de 1 a 4

      • Mes: de 1 a 11

      • Año: 1

    • El horizonte de predicciones de su pronóstico; es decir, el número de intervalos de tiempo que predice el modelo. El horizonte de previsión también se denomina longitud de predicción. El horizonte máximo de previsión es 500 intervalos temporales o 1/4 de los intervalos temporales del conjunto de datos (el valor más pequeño).

    • A, TimeSeriesConfigen la que define el esquema de su conjunto de datos para asignar los encabezados de las columnas a su pronóstico especificando:

      • Un TargetAttributeName: la columna que contiene los datos históricos del campo objetivo que se va a pronosticar.

      • Un TimestampAttributeName: la columna que contiene un punto en el tiempo en el que se registra el valor objetivo de un elemento determinado.

      • Un ItemIdentifierAttributeName: la columna que contiene los identificadores de los elementos para los que desea predecir el valor objetivo.

    Lo que sigue es un ejemplo de estos parámetros de solicitud. En este ejemplo, está configurando una previsión diaria para la cantidad o el nivel de demanda esperados de artículos específicos durante un periodo de 20 días.

    "AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },
  • Una OutputDataConfig para especificar la ruta de salida de Amazon S3 a fin de almacenar los artefactos de su trabajo de AutoML.

  • Un RoleArn para especificar el ARN del rol utilizado para acceder a sus datos. Puede utilizar el ARN de la función de ejecución a la que ha concedido acceso a sus datos.

Todos los demás parámetros son opcionales. Por ejemplo, puede establecer cuantiles de previsión específicos, elegir un método de relleno para los valores que faltan en el conjunto de datos o definir cómo agregar los datos que no se ajustan a la frecuencia de la previsión. Para saber cómo configurar esos parámetros adicionales, consulte Parámetros opcionales.

Parámetros opcionales

En las siguientes secciones, se proporcionan detalles de algunos parámetros opcionales que puede pasar a la predicción de series temporales de AutoML.

Piloto automático entrena a seis modelos candidatos con su serie temporal objetivo; luego, combina estos modelos con un método de conjunto de apilamiento a fin de crear un modelo de previsión óptimo para una métrica objetivo determinada. Cada modelo de pronóstico de Piloto automático genera un pronóstico probabilístico con pronósticos en cuantiles de entre P1 y P99. Estos cuantiles se utilizan para contabilizar la incertidumbre de las previsiones. De forma predeterminada, se generarán pronósticos para los valores 0,1 (p10), 0,5 (p50) y 0,9 (p90). Puede especificar sus propios cuantiles.

En el piloto automático, puede especificar hasta cinco cuantiles de pronóstico, desde 0.01 (p1) hasta 0.99 (p99), mediante incrementos de 0.01 o más en el atributo de. ForecastQuantiles TimeSeriesForecastingJobConfig

En este ejemplo, se configura una previsión diaria de los percentiles 10, 25, 50, 75 y 90 para la cantidad o el nivel de demanda esperados de artículos específicos durante un periodo de 20 días.

"AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"], "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },

Para crear un modelo de previsión (también denominado el mejor modelo candidato del experimento), debe especificar una frecuencia de previsión. La frecuencia de previsión determina la frecuencia de las predicciones en sus previsiones. Por ejemplo, las previsiones de ventas mensuales. El mejor modelo de Piloto automático puede generar pronósticos para frecuencias de datos superiores a la frecuencia con la que se registran los datos.

Durante el entrenamiento, Piloto automático agrega cualquier dato que no se ajuste a la frecuencia de previsión que especifique. Por ejemplo, puede que tenga algunos datos diarios, pero que especifique una frecuencia de previsión semanal. Piloto automático ajusta los datos diarios en función de la semana a la que pertenecen. Luego, Piloto automático los combina en un solo registro para cada semana.

Durante la agregación, el método de transformación predeterminado consiste en sumar los datos. Puede configurar la agregación al crear su trabajo de AutoML en el Transformations atributo de. TimeSeriesForecastingJobConfig Los métodos de agregación compatibles son sum (predeterminado), avg, first, min y max. La agregación solo se admite en la columna de destino.

En el siguiente ejemplo, configura la agregación para calcular la media de las previsiones promocionales individuales y proporcionar los valores finales de las previsiones agregadas.

"Transformations": { "Aggregation": { "promo": "avg" } }

Piloto automático proporciona varios métodos de relleno para gestionar los valores que faltan en las columnas objetivo y otras columnas numéricas de sus conjuntos de datos de series temporales. Para obtener información sobre la lista de métodos de relleno compatibles y su lógica de relleno disponible, consulte Gestión de valores que faltan.

Configura su estrategia de llenado en el Transformations atributo de TimeSeriesForecastingJobConfigal crear su trabajo de AutoML.

Para configurar un método de relleno, debe proporcionar un par clave-valor:

  • La clave es el nombre de la columna cuyo método de relleno quiera especificar.

  • El valor asociado a la clave es un objeto que define la estrategia de relleno de esa columna.

Puede especificar varios métodos de relleno para una sola columna.

Para establecer un valor específico para el método de relleno, debe establecer el parámetro de relleno según el valor del método de relleno deseado (por ejemplo, "backfill" : "value") y definir el valor de relleno real en un parámetro adicional con el sufijo “_value”. Por ejemplo, para establecer backfill a un valor de 2, debe incluir dos parámetros: "backfill": "value" y "backfill_value":"2".

En el siguiente ejemplo, se especifica la estrategia de relleno para la columna de datos incompleta (“precio”) de la siguiente manera: todos los valores faltantes entre el primer punto de datos de un artículo y el último se establecen en 0; después, todos los valores faltantes se rellenan con el valor 2 hasta la fecha de finalización del conjunto de datos.

"Transformations": { "Filling": { "price": { "middlefill" : "zero", "backfill" : "value", "backfill_value": "2" } } }

Piloto automático produce métricas de precisión para evaluar los modelos candidatos y ayudarlo a elegir cuál usar para generar pronósticos. Cuando ejecuta un experimento de previsión de series temporales, puede elegir AutoML para que Piloto automático optimice el predictor de forma automática, o puede elegir manualmente un algoritmo para su predictor.

De forma predeterminada, Piloto automático utiliza la pérdida de cuantil ponderada media. Sin embargo, puede configurar la métrica objetivo al crear su trabajo de AutoML en el MetricName atributo de AutoML. JobObjective

Para ver la lista de algoritmos disponibles, consulte Compatibilidad de algoritmos para la previsión de series temporales.

En Piloto automático, puede incorporar a su serie temporal un conjunto de datos, con ingeniería de características, con información sobre los días festivos nacionales. Piloto automático proporciona soporte nativo para los calendarios de días festivos de más de 250 países. Después de elegir un país, Piloto automático aplica el calendario de días festivos de ese país a todos los elementos de su conjunto de datos durante el entrenamiento. Esto permite que el modelo identifique los patrones asociados a días festivos específicos.

Puede habilitar la función navideña al crear su trabajo de AutoML pasando un HolidayConfigAttributesobjeto al atributo de. HolidayConfig TimeSeriesForecastingJobConfig El objeto HolidayConfigAttributes contiene el atributo CountryCode de dos letras que determina el país del calendario festivo nacional público que se utiliza para aumentar el conjunto de datos de series temporales.

Consulte Códigos de país para obtener una lista de calendarios compatibles y su código de país correspondiente.

Piloto automático le permite implementar automáticamente su modelo de pronóstico en un punto de conexión. Para permitir la implementación automática del mejor candidato modelo para un trabajo de AutoML, incluya un ModelDeployConfig en la solicitud de trabajo de AutoML. Esto permite implementar el mejor modelo en un punto final. SageMaker A continuación, se muestran las configuraciones disponibles para la personalización.