Funciones de transformación - Amazon Forecast

Amazon Forecast ya no está disponible para nuevos clientes. Los clientes actuales de Amazon Forecast pueden seguir utilizando el servicio con normalidad. Más información

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.

Funciones de transformación

Una función de transformación es un conjunto de operaciones que seleccionan y modifican las filas de una serie temporal relacionada. Seleccione las filas que desee con una operación de condición. A continuación, modifique las filas con una operación de transformación. Todas las condiciones se unen a una AND operación, lo que significa que todas las condiciones deben cumplirse para que se aplique la transformación. Las transformaciones se aplican en el orden en el que se enumeran.

Al crear una previsión condicional, utilice el generador de funciones de transformación para especificar las condiciones y transformaciones que desee aplicar. La siguiente imagen ilustra esta funcionalidad.

Transformation function builder interface with options to modify price and stock count.

En la sección resaltada, la columna price se multiplica por 0,90 (es decir, un 10 % de descuento) en la tienda tacoma (es decir, Tacoma, Washington) para los artículos coloreados blue. Para ello, Amazon Forecast crea primero un subconjunto de las series temporales relacionadas de referencia para que contenga solo las filas de store que sean iguales a tacoma.

Ese subconjunto se reduce aún más para incluir solo las filas de color que sean iguales a blue. Por último, todos los valores de la columna price se multiplican por 0,90 para crear una nueva serie temporal relacionada que se utilizará en la previsión condicional.

Amazon Forecast admite las siguientes condiciones:

  • EQUALS: el valor de la columna es el mismo que el valor que se proporcionó en la condición.

  • NOT_EQUALS: el valor de la columna no es el mismo que el valor que se proporcionó en la condición.

  • LESS_THAN: el valor de la columna es menor que el valor que se proporcionó en la condición.

  • GREATER_THAN: el valor de la columna es mayor que el valor que se proporcionó en la condición.

Amazon Forecast admite las siguientes acciones:

  • ADD: suma el valor proporcionado a todas las filas de la columna.

  • SUBTRACT: resta el valor proporcionado a todas las filas de la columna.

  • MULTIPLY: multiplica todas las filas de la columna por el valor proporcionado.

  • DIVIDE: divide todas las filas de la columna por el valor proporcionado.

A continuación se muestran ejemplos de cómo se puede especificar una transformación de serie temporal mediante elSDK.

Example 1

En este ejemplo, se aplica un descuento del 10 % a todos los artículos de la tienda de Seattle. Tenga en cuenta que “Ciudad” es una dimensión de previsión.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 0.90 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "seattle", "Condition": "EQUALS" } ] } ]
Example 2

En este ejemplo, se aplica un descuento del 10 % en todos los artículos de la categoría “electrónica”. Tenga en cuenta que “categoría_producto” es un metadato de un artículo.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 0.90 }, "TimeSeriesConditions": [ { "AttributeName": "product_category", "AttributeValue": "electronics", "Condition": "EQUALS" } ] } ]
Example 3

En este ejemplo, se aplica un margen de beneficio del 20% al BOA21314K item_id específico.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 1.20 }, "TimeSeriesConditions": [ { "AttributeName": "item_id", "AttributeValue": "BOA21314K", "Condition": "EQUALS" } ] } ]
Example 4

En este ejemplo, se añade 1 USD dólar a todos los artículos de las tiendas de Seattle y Bellevue.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "ADD", "Value": 1.0 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "seattle", "Condition": "EQUALS" } ] }, { "Action": { "AttributeName": "price", "Operation": "ADD", "Value": 1.0 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "bellevue", "Condition": "EQUALS" } ] } ]
Example 5

En este ejemplo, se resta 1 USD de todos los artículos de Seattle del mes de septiembre de 2022.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "SUBTRACT", "Value": 1.0 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "seattle", "Condition": "EQUALS" }, { "AttributeName": "timestamp", "AttributeValue": "2022-08-31 00:00:00", "Condition": "GREATER_THAN" }, { "AttributeName": "timestamp", "AttributeValue": "2022-10-01 00:00:00", "Condition": "LESS_THAN" } ] } ]
Example 6

En este ejemplo, primero se multiplica el precio por 10 y, a continuación, se restan 5 USD del precio. Tenga en cuenta que las acciones se aplican en el orden en que se declaran.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 10.0 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "seattle", "Condition": "EQUALS" } ] }, { "Action": { "AttributeName": "price", "Operation": "SUBTRACT", "Value": 5.0 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "seattle", "Condition": "EQUALS" } ] } ]
Example 7

En este ejemplo se crea un conjunto vacío, por lo que la acción no se aplica a ninguna serie temporal. Este código intenta modificar el precio de todos los artículos de las tiendas de Seattle y Bellevue. Como las condiciones van unidas a la AND operación y una tienda solo puede existir en una ciudad, el resultado es un conjunto vacío. Por lo tanto, la acción no se aplica.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 10.0 }, "TimeSeriesConditions": [ { "AttributeName": "city", "AttributeValue": "seattle", "Condition": "EQUALS" }, { "AttributeName": "city", "AttributeValue": "bellevue", "Condition": "EQUALS" }, ] } ]

Para ver un ejemplo práctico de cómo aplicar una condición a varios atributos, consulte el ejemplo 4.

Example 8

Las condiciones de transformación que utilizan una marca temporal se aplican a los datos alineados con los límites, no a los datos sin procesar. Por ejemplo, ingresa sus datos cada hora y realiza una previsión diaria. En este caso, Forecast alinea las marcas temporales con el día, por lo que 2020-12-31 01:00:00 se alinea con 2020-12-31 00:00:00. Este código creará un conjunto vacío porque no especifica la marca temporal en la marca temporal alineada con los límites.

TimeSeriesTransformations=[ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 10.0 }, "TimeSeriesConditions": [ { "AttributeName": "timestamp", "AttributeValue": "2020-12-31 01:00:00", "Condition": "EQUALS" }, ] } ]