Genere previsiones de ventas a partir de los datos de venta minorista

En la página, se proporciona orientación para obtener predicciones de Vertex AI, según los datos de venta minorista exportados a BigQuery mediante la API de Retail. Proporcionamos varios bloques de código SQL para ayudarte a transformar los datos de eventos de usuarios y de productos minoristas en un formato que pueda usar Vertex AI. A estos bloques de código les siguen los procedimientos de la consola de Vertex AI para crear un conjunto de datos, entrenar un modelo y, luego, generar una previsión.

Antes de comenzar

Antes de generar previsiones de ventas con sus datos de venta minorista, debe hacer lo siguiente:

  • Sube tus datos de venta minorista con la API de Retail. Para obtener más información, consulta los siguientes vínculos:

  • Exporta tus datos de venta minorista desde la API de Retail a BigQuery. Esto te deja una tabla de producto y una tabla de eventos de usuario en BigQuery, que puedes usar en los procedimientos siguientes. Para obtener más información, consulta Exporta tus datos a BigQuery.

    Como alternativa, si los datos de eventos de usuario y producto ya están en BigQuery, en el formato de la API de Retail, puedes usarlos para generar previsiones de ventas a partir de los datos de venta minorista. En este caso, no necesitas subir tus datos de venta minorista y exportarlos a BigQuery. Si deseas obtener más información sobre el formato de la API de Retail Retail, consulta Esquema de Retail y Acerca de los eventos de usuario.

  • Asegúrate de que se te haya otorgado la función de IAM roles/aiplatform.user para que puedas realizar los procedimientos con la consola de Vertex AI.

Crea una tabla de ventas agregada

El código SQL de esta sección transforma la tabla de eventos de usuario en una tabla de ventas agregada. Esto significa que, para cada producto de la tabla de eventos de usuario que se vendió al menos una vez, la cantidad de ventas del producto se agrega durante un período semanal. Además, el código de SQL hace lo siguiente:

  • Para cualquier producto de la tabla de eventos de usuario, si faltan marcas de tiempo entre la primera venta del producto en la tabla y la última venta de cualquier producto de la tabla, cada una de las marcas de tiempo faltantes se reabastece con una fila nueva sin ventas. De esta manera, se eliminan las brechas en el historial de ventas.

  • Si no hay al menos un producto en la tabla de eventos de usuario que tenga al menos 20 marcas de tiempo, se elige uno de forma aleatoria y se reabastece con suficientes filas (cada una con cero ventas) para alcanzar las 20 marcas de tiempo. El objetivo es cumplir con el requisito de Vertex AI de tener al menos 20 marcas de tiempo cuando se entrena un modelo.

Para crear una tabla de ventas agregada, siga estos pasos:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • start_day_of_week. El día en que comienza la semana. Valores válidos: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

    • rdm_user_event_table Los ID del proyecto, el conjunto de datos y la tabla de la tabla de eventos de usuario que exportaste a BigQuery El formato es project_id.dataset_id.table_id.

    • rdm_product_table Los ID del proyecto, el conjunto de datos y la tabla de la tabla de productos que exportaste a BigQuery El formato es project_id.dataset_id.table_id.

    • aggregated_sales_table. El ID del proyecto, el conjunto de datos y la tabla de BigQuery para la nueva tabla de ventas agregadas Usa el mismo ID del proyecto que las tablas de productos y de eventos de usuario. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente, a menos que desees reemplazarlo. El formato es project_id.dataset_id.table_id.

  2. Copia la muestra de código de SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionada, selecciona el proyecto que contiene las tablas de productos y eventos de usuarios.

  5. En el panel Editor, pega la muestra de código de SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

Tu nueva tabla de ventas agregadas se escribe en la ubicación en BigQuery que estableciste con la variable aggregated_sales_table.

Cómo procesar la tabla de productos

El código SQL de esta sección actúa sobre la tabla del producto que exportaste a BigQuery, lo que quita los campos repetidos y de struct, y desanida el campo price_info en sus campos secundarios. Esto es necesario porque Vertex AI no acepta listas ni estructuras anidadas. El resultado es una tabla de productos procesada.

Para procesar la tabla de productos, sigue estos pasos:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • rdm_product_table El ID del proyecto, el conjunto de datos y la tabla de la tabla de productos que exportaste a BigQuery El formato es project_id.dataset_id.table_id.

    • processed_product_table El ID del proyecto, el conjunto de datos y la tabla de BigQuery para la tabla nueva del producto procesada Usa el mismo ID del proyecto que las tablas de productos y de eventos de usuario. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente, a menos que desees reemplazarlo. El formato es project_id.dataset_id.table_id.

    CREATE OR REPLACE TABLE `PROCESSED_PRODUCT_TABLE` AS
    SELECT * EXCEPT (id, attributes, price_info, rating, expire_time,
    available_time, fulfillment_info, images, audience, color_info, promotions,
    publish_time, retrievable_fields, categories, brands, conditions, sizes,
    collection_member_ids, tags, materials, patterns),
    id as sku,
    price_info.price as price_info_price,
    price_info.currency_code as price_info_currency_code,
    price_info.cost as price_info_cost,
    FROM `RDM_PRODUCT_TABLE`
    
  2. Copia la muestra de código de SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionada, selecciona el proyecto que contiene las tablas de productos y eventos de usuarios.

  5. En el panel Editor, pega la muestra de código de SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La nueva tabla de productos procesados se escribe en la ubicación de BigQuery que configuraste con la variable processed_product_table.

Crea una tabla de predicción de eventos

El código SQL de esta sección extrae cada SKU que se vendió al menos una vez en la tabla de eventos del usuario. El código crea una tabla de predicción de eventos que contiene todos los SKU extraídos en todas las marcas de tiempo en el futuro. Las marcas de tiempo futuras son un array de marcas de tiempo semanales continuas que comienzan en la semana final en la tabla de eventos de usuario + 1 semana y finalizan en la última semana en la tabla de eventos de usuario + future_length. Establece el valor future_length en la cantidad de semanas futuras que deseas que prediga el modelo. Cada fila de la tabla de predicción de eventos se puede identificar de forma única mediante un SKU y una marca de tiempo.

Para crear una tabla de predicción de eventos, haz lo siguiente:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • start_day_of_week. El día en que comienza la semana. Valores válidos: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.

    • rdm_user_event_table Los ID del proyecto, el conjunto de datos y la tabla para la tabla de eventos de usuario que exportaste a BigQuery El formato es project_id.dataset_id.table_id.

    • events_prediction_table. El ID del proyecto, el conjunto de datos y la tabla de BigQuery para la tabla de predicción de eventos nuevos Usa el mismo ID del proyecto que las tablas de productos y de eventos de usuario. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente, a menos que desees reemplazarlo. El formato es project_id.dataset_id.table_id.

    • rdm_product_table El ID del proyecto, el conjunto de datos y la tabla de la tabla de productos que exportaste a BigQuery El formato es project_id.dataset_id.table_id.

    • future_length. La cantidad de semanas en el futuro, después de la última semana en la tabla de eventos del usuario, que el modelo predecirá.

  2. Copia la muestra de código de SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionada, selecciona el proyecto que contiene las tablas de productos y eventos de usuarios.

  5. En el panel Editor, pega la muestra de código de SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La tabla de predicción de eventos nueva se escribe en la ubicación de BigQuery que estableciste con la variable events_prediction_table.

Cree una tabla de entrenamiento de Vertex AI

El código SQL de esta sección une la tabla de ventas agregadas con la tabla de productos procesados. El resultado es una tabla de entrenamiento de Vertex AI, que Vertex AI usa para el entrenamiento de modelos.

Siga estos pasos para crear una tabla de entrenamiento de Vertex AI:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • vertex_ai_training_table: El proyecto, el conjunto de datos y los ID de tabla en BigQuery para la nueva tabla de entrenamiento de Vertex AI. Usa el mismo ID del proyecto que las tablas de eventos de productos y usuarios. Usa el ID de un conjunto de datos existente. Especifica un ID de tabla, pero no uses el ID de una tabla existente, a menos que desees reemplazarlo. El formato es project_id.dataset_id.table_id.

    • aggregated_sales_table. Los ID del proyecto, el conjunto de datos y la tabla de BigQuery de la tabla de ventas agregadas, que creaste en Crea una tabla de ventas agregada.

    • processed_product_table Los ID del proyecto, el conjunto de datos y la tabla de BigQuery para la tabla de productos procesados que creaste en Procesa la tabla de productos.

    CREATE OR REPLACE TABLE `VERTEX_AI_TRAINING_TABLE` AS
    SELECT t1.*, t2.* EXCEPT(sku) FROM `AGGREGATED_SALES_TABLE` AS t1
    LEFT
    JOIN `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
    
  2. Copia la muestra de código de SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionada, selecciona el proyecto que contiene las tablas de productos y eventos de usuarios.

  5. En el panel Editor, pega la muestra de código de SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La tabla de entrenamiento nueva de Vertex AI se escribe en la ubicación en BigQuery que estableciste con la variable vertex_ai_training_table.

Cree una tabla de predicción de Vertex AI

El código SQL de esta sección agrega la tabla de predicción de eventos a la tabla de ventas agregadas y, luego, la une con la tabla de productos procesados. El resultado es la tabla de predicción de Vertex AI, que se usa para crear una previsión.

Siga estos pasos para crear una tabla de predicción de Vertex AI:

  1. Reemplaza las variables en el siguiente código de ejemplo de SQL de la siguiente manera:

    • vertex_ai_prediction_table. El proyecto, el conjunto de datos y los ID de tabla en BigQuery para la nueva tabla de predicción de Vertex AI. Usa el mismo ID del proyecto y del ID del conjunto de datos que usaste para las tablas de productos y de eventos de usuario. No uses el ID de una tabla existente, a menos que desees reemplazarla. El formato es project_id.dataset_id.table_id.

    • aggregated_sales_table. Los ID de proyecto, conjunto de datos y tabla en BigQuery para la tabla de ventas agregada, que creaste en Crea una tabla de ventas agregada.

    • processed_product_table Los ID del proyecto, el conjunto de datos y la tabla de BigQuery para la tabla de productos procesados que creaste en Procesa la tabla de productos.

    • events_prediction_table. Los ID del proyecto, del conjunto de datos y de la tabla en BigQuery para la tabla de predicción de eventos, que creaste en Crea una tabla de predicción de eventos.

    CREATE OR REPLACE TABLE `VERTEX_AI_PREDICTION_TABLE` AS
    WITH append_predict_to_history AS (
      SELECT add_to_cart_quantity, category_page_view_quantity,
      detail_page_view_quantity, last_day_of_week, quantity, search_quantity, sku
      FROM `AGGREGATED_SALES_TABLE` UNION ALL SELECT NULL AS
      add_to_cart_quantity, NULL AS category_page_view_quantity, NULL AS
      detail_page_view_quantity, last_day_of_week, NULL AS quantity, NULL AS
      search_quantity, sku FROM `EVENTS_PREDICTION_TABLE`
    )
    SELECT t1.*, t2.* EXCEPT(sku) FROM append_predict_to_history AS t1 LEFT JOIN
    `PROCESSED_PRODUCT_TABLE` AS t2 ON t1.sku = t2.sku
    
  2. Copia la muestra de código de SQL.

  3. Abre la página BigQuery en la consola de Google Cloud.

    Ir a la página de BigQuery

  4. Si aún no está seleccionada, selecciona el proyecto que contiene las tablas de productos y eventos de usuarios.

  5. En el panel Editor, pega la muestra de código de SQL.

  6. Haz clic en Ejecutar y espera a que la consulta termine de ejecutarse.

La tabla de predicción nueva de Vertex AI se escribe en la ubicación en BigQuery que estableciste con la variable vertex_ai_prediction_table.

Cree un conjunto de datos de Vertex AI

En esta sección, se muestra cómo crear un conjunto de datos de Vertex AI que puede usarse para entrenar un modelo de previsión. Si quieres obtener más información, consulta Crea un conjunto de datos para entrenar modelos de previsión en la documentación de Vertex AI.

Siga estos pasos para crear un conjunto de datos de Vertex AI:

  1. En la sección Vertex AI de Google Cloud Console, ve a la página Conjunto de datos.

    Ir a la página Conjuntos de datos

  2. Haga clic en Crear para abrir la página Crear conjunto de datos.

  3. En el campo Nombre del conjunto de datos, ingresa un nombre para el conjunto de datos nuevo.

  4. Selecciona la pestaña Tabular.

  5. Selecciona el objetivo Previsión.

  6. En la lista Región, selecciona la región que usaste cuando creaste un conjunto de datos para exportar tus datos de venta minorista a BigQuery. Si seleccionaste us cuando creaste tu conjunto de datos de BigQuery, puedes seleccionar cualquier región en los Estados Unidos. Del mismo modo, si seleccionaste UE cuando creaste tu conjunto de datos de BigQuery, puedes seleccionar cualquier región de la Unión Europea. Para obtener más información, consulta Exporta tus datos a BigQuery.

  7. Haz clic en Crear para crear tu conjunto de datos vacío y avanza a la pestaña Fuente.

  8. Selecciona Seleccionar una tabla o una vista de BigQuery.

  9. En Selecciona una tabla o una vista de BigQuery, ingresa los ID del proyecto, el conjunto de datos y la tabla de la tabla de entrenamiento de Vertex AI que creaste en Crea una tabla de entrenamiento de Vertex AI. El formato es project_id.dataset_id.table_id.

  10. Haz clic en Continuar.

    Tu fuente de datos está asociada a tu conjunto de datos.

  11. En la pestaña Analizar, selecciona sku en la lista Columna de identificador de la serie y last_day_of_week en la lista Columna de marca de tiempo.

  12. Haz clic en Entrenar un modelo nuevo para avanzar a la página Entrenar un modelo nuevo. Si deseas obtener instrucciones para entrenar tu modelo, consulta Entrena un modelo de previsión.

Entrena un modelo de previsión

En esta sección, se muestra cómo entrenar un modelo de previsión con el conjunto de datos que creaste en Crea un conjunto de datos de Vertex AI. Para obtener más información, consulta Entrena un modelo de previsión en la documentación de Vertex AI.

Antes de comenzar

Antes de entrenar un modelo de previsión, debes crear un conjunto de datos de Vertex AI.

Entrenar un modelo

  1. En la página Método de entrenamiento, selecciona el método de entrenamiento de modelos. Para obtener información sobre los métodos de entrenamiento, consulta Entrena un modelo en la documentación de Vertex AI.

    Haz clic en Continuar.

  2. En la página Detalles del modelo, configura lo siguiente:

    1. Selecciona Entrenar un modelo nuevo si aún no está seleccionado.

    2. Ingresa un nombre para tu modelo nuevo.

    3. Seleccione quantity (INTEGER) en la lista Columna objetivo.

    4. Seleccione Semanal en la lista Nivel de detalle de los datos.

    5. Ingresa la ventana de contexto y el horizonte de previsión.

      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. El horizonte de previsión se especifica en unidades del Nivel de detalle de los datos.

      La ventana de contexto establece qué tan atrás se ve el modelo durante el entrenamiento (y para las previsiones). En otras palabras, para cada dato de entrenamiento, la ventana de contexto determina qué tan atrás se ve el modelo en busca de patrones predictivos. Si no especificas una ventana de contexto, el valor predeterminado es el de horizonte de previsión. La ventana de contexto se especifica en unidades de Nivel de detalle de los datos.

      Para obtener más información, consulta Consideraciones para configurar la ventana de contexto y el horizonte de previsión en la documentación de Vertex AI.

    6. Haz clic en Continuar.

  3. En la página Opciones de entrenamiento, configura de la siguiente manera. Ten en cuenta que cuando una flecha desplegable es gris o no hay una flecha desplegable, ese valor no se puede cambiar.

    1. Selecciona un valor de Transformación para las columnas de la lista Nombre de columna de la siguiente manera:

      • Si el valor de BigQuery type es Float, Integer o Numeric, configura el valor Transformation como Numeric.

      • Si el valor de BigQuery type es String o Boolean, establece el valor Transformation en Categorical.

      • Si el valor de BigQuery type es Date, establece el valor Transformation en Timestamp.

    2. Selecciona un valor de Tipo de atributo para las columnas en la lista Nombre de columna de la siguiente manera:

      • Para add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity y search_quantity, configura el valor de Feature type como Covariableate.

      • De las columnas restantes, para las que pueden cambiarse, establece el Feature Type (Atributo de tipo) como Attribute.

    3. Selecciona un valor Disponible en la previsión para las columnas en la lista de Tipo de columna de la siguiente manera:

      • En el caso de add_to_cart_quantity, category_page_view_quantity, detail_page_view_quantity y search_quantity, configura el valor Disponibilidad en la previsión como No disponible.

      • De las columnas restantes, para las que pueden cambiarse, establece el valor Feature type (Tipo de atributo) en Available (Disponible).

    4. Haz clic en Continuar.

  4. En la página Procesamiento y precios, ingresa la cantidad máxima de horas para las que deseas que se entrene tu modelo. Esta configuración te ayuda a establecer un límite para los costos de entrenamiento. El tiempo real transcurrido puede ser mayor que este valor porque hay otras operaciones involucradas en la creación de un modelo nuevo. Si deseas obtener información sobre la cantidad de tiempo que se necesita para entrenar modelos de alta calidad, consulta Entrena un modelo en la documentación de Vertex AI.

  5. Haz clic en Comenzar entrenamiento.

    El entrenamiento de modelos puede tardar varias horas, según el tamaño y la complejidad de los datos y el presupuesto de entrenamiento, si especificaste uno. Puedes cerrar esta pestaña y volver a ella más tarde. Recibirás un correo electrónico cuando tu modelo haya completado el entrenamiento. Si deseas supervisar el progreso del entrenamiento del modelo, consulta Supervisa el progreso de tu entrenamiento.

Supervise el progreso de su entrenamiento

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Entrenamiento.

    Ir a la página de entrenamiento

  2. Si aún no está seleccionada, selecciona la pestaña Canalizaciones de entrenamiento. El modelo que estás entrenando debe estar en la lista. El entrenamiento finaliza cuando el estado cambia de Entrenamiento a Finalizado.

Cómo crear una previsión

En esta página, se muestra cómo crear una previsión con el modelo de previsión que entrenaste en Entrena un modelo de previsión.

Antes de comenzar

Antes de crear una previsión, debes entrenar un modelo de previsión.

Realiza una solicitud de predicción por lotes a tu modelo

  1. En la consola de Google Cloud, en la sección Vertex AI, ve a la página Predicciones por lotes.

    Ir a la página Batch predictions

  2. Haz clic en Crear para abrir la ventana Predicción por lotes nueva y completa los siguientes pasos:

    1. Ingresa un nombre para la predicción por lotes.

    2. En la lista Nombre del modelo, selecciona el modelo que entrenaste en Entrena un modelo de previsión.

    3. En la lista Versión, selecciona la versión del modelo.

    4. En Seleccionar fuente, haz lo siguiente:

      1. Selecciona Tabla de BigQuery si aún no está seleccionada.

      2. Ingresa los ID del proyecto, el conjunto de datos y la tabla de BigQuery para la tabla de predicción de Vertex AI que creaste en Crea una tabla de predicción de Vertex AI. El formato es project_id.dataset_id.table_id.

    5. En Resultado de la predicción por lotes, haga lo siguiente:

      1. En la lista Formato de salida, selecciona Tabla de BigQuery.

      2. Ingresa los ID del proyecto y del conjunto de datos en BigQuery para la tabla de resultados de la predicción por lotes que creas. Usa el mismo ID del proyecto y del ID del conjunto de datos que usaste para las tablas de productos y de eventos de usuario. El formato es project_id.dataset_id..

    6. Haz clic en Crear. Aparecerá la página Predicciones por lotes.

      La predicción finaliza cuando el estado cambia de Pendiente a Finalizado. También recibirás un correo electrónico cuando finalice la predicción por lotes. El resultado de tu solicitud de predicción por lotes se muestra en el conjunto de datos del proyecto de BigQuery que especificaste. El nombre de tu nueva tabla de resultados es “predictions_” anexado con la marca de tiempo de cuando comenzó el trabajo de predicción. Para obtener más información sobre cómo recuperar e interpretar los resultados de la previsión, consulta Recupera los resultados de la predicción por lotes y Interpreta los resultados de la previsión en la documentación de Vertex AI.