Obtén estadísticas de datos a partir de un modelo de análisis de contribuciones con una métrica sumatoria

En este instructivo, usarás un modelo de análisis de contribución para analizar los cambios en las ventas entre 2020 y 2021 en el conjunto de datos de las ventas de bebidas alcohólicas de Iowa. En este instructivo, se te guiará por las siguientes tareas:

  • Crear una tabla de entrada basada en datos de bebidas alcohólicas de Iowa disponibles públicamente
  • Crear un modelo de análisis de contribución que use una métrica sumatoria Este tipo de modelo resume una métrica determinada para una combinación de una o más dimensiones en los datos, para determinar cómo esas dimensiones contribuyen al valor de la métrica.
  • Obtén las estadísticas de las métricas del modelo con la función ML.GET_INSIGHTS.

Antes de comenzar este instructivo, debes familiarizarte con el caso de uso de análisis de contribuciones.

Permisos necesarios

  • Para crear el conjunto de datos, necesitas el permiso bigquery.datasets.create de Identity and Access Management (IAM).

  • Para crear el modelo, necesitas los siguientes permisos:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • Para ejecutar inferencias, necesitas los siguientes permisos:

    • bigquery.models.getData
    • bigquery.jobs.create

Costos

En este documento, usarás los siguientes componentes facturables de Google Cloud:

  • BigQuery ML: You incur costs for the data that you process in BigQuery.

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud califiquen para obtener una prueba gratuita.

Para obtener más información sobre los precios de BigQuery, consulta Precios de BigQuery en la documentación de BigQuery.

Antes de comenzar

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery API.

    Enable the API

Crea un conjunto de datos

Crea un conjunto de datos de BigQuery para almacenar tu modelo de AA.

Console

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a la página de BigQuery

  2. En el panel Explorador, haz clic en el nombre de tu proyecto.

  3. Haz clic en Ver acciones > Crear conjunto de datos.

    La opción de menú Crear conjunto de datos

  4. En la página Crear conjunto de datos, haz lo siguiente:

    • En ID del conjunto de datos, ingresa bqml_tutorial.

    • En Tipo de ubicación, selecciona Multirregión y, luego, EE.UU. (varias regiones en Estados Unidos).

    • Deja la configuración predeterminada restante como está y haz clic en Crear conjunto de datos.

bq

Para crear un conjunto de datos nuevo, usa el comando bq mk con la marca --location. Para obtener una lista completa de los parámetros posibles, consulta la referencia del comando bq mk --dataset.

  1. Crea un conjunto de datos llamado bqml_tutorial con la ubicación de los datos establecida en US y una descripción de BigQuery ML tutorial dataset:

    bq --location=US mk -d \
     --description "BigQuery ML tutorial dataset." \
     bqml_tutorial

    En lugar de usar la marca --dataset, el comando usa el acceso directo -d. Si omites -d y --dataset, el comando crea un conjunto de datos de manera predeterminada.

  2. Confirma que se haya creado el conjunto de datos:

    bq ls

API

Llama al método datasets.insert con un recurso de conjunto de datos definido.

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

Crea una tabla de datos de entrada

Crea una tabla que contenga datos de prueba y control para analizar. La tabla de prueba contiene datos de licores de 2021 y la tabla de control contiene datos de licores de 2020. La siguiente consulta combina los datos de prueba y control en una sola tabla de entrada:

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, ejecuta la siguiente declaración:

    CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_sum_data AS (
      (SELECT
        store_name,
        city,
        vendor_name,
        category_name,
        item_description,
        SUM(sale_dollars) AS total_sales,
        FALSE AS is_test
      FROM `bigquery-public-data.iowa_liquor_sales.sales`
      WHERE EXTRACT(YEAR from date) = 2020
      GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
      UNION ALL
      (SELECT
        store_name,
        city,
        vendor_name,
        category_name,
        item_description,
        SUM(sale_dollars) AS total_sales,
        TRUE AS is_test
      FROM `bigquery-public-data.iowa_liquor_sales.sales`
      WHERE EXTRACT (YEAR FROM date) = 2021
      GROUP BY store_name, city, vendor_name, category_name, item_description, is_test)
    );

Crea el modelo

Crea un modelo de análisis de contribuciones:

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, ejecuta la siguiente declaración:

    CREATE OR REPLACE MODEL bqml_tutorial.iowa_liquor_sales_sum_model
      OPTIONS(
        model_type='CONTRIBUTION_ANALYSIS',
        contribution_metric = 'sum(total_sales)',
        dimension_id_cols = ['store_name', 'city', 'vendor_name', 'category_name',
          'item_description'],
        is_test_col = 'is_test',
        min_apriori_support=0.05
      ) AS
    SELECT * FROM bqml_tutorial.iowa_liquor_sales_sum_data;

La consulta tarda aproximadamente 60 segundos en completarse, después de lo cual el modelo iowa_liquor_sales_sum_model aparece en el conjunto de datos bqml_tutorial en el panel Explorador. Debido a que la consulta usa una declaración CREATE MODEL para crear un modelo, no hay resultados de consultas.

Obtén estadísticas del modelo

Obtén estadísticas generadas por el modelo de análisis de contribuciones con la función ML.GET_INSIGHTS.

  1. En la consola de Google Cloud, ve a la página de BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, ejecuta la siguiente sentencia para seleccionar columnas del resultado de un modelo de análisis de contribución de métricas sumables:

    SELECT
      contributors,
      metric_test,
      metric_control,
      difference,
      relative_difference,
      unexpected_difference,
      relative_unexpected_difference,
      apriori_support,
      contribution
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.iowa_liquor_sales_sum_model`);

Las primeras filas del resultado deberían ser similares a las siguientes. Los valores se truncan para mejorar la legibilidad.

colaboradores metric_test metric_control diferencia relative_difference unexpected_difference relative_unexpected_difference apriori_support contribución
todos 428068179 396472956 31595222 0.079 31595222 0.079 1.0 31595222
vendor_name=SAZERAC COMPANY INC 52327307 38864734 13462573 0.346 11491923 0.281 0.122 13462573
city=DES MOINES 49521322 41746773 7774549 0.186 4971158 0.111 0.115 7774549
vendor_name=DIAGEO AMERICAS 84681073 77259259 7421814 0.096 1571126 0.018 0.197 7421814
category_name=100% AGAVE TEQUILA 23915100 17252174 6662926 0.386 5528662 0.3 0.055 6662926

El resultado se ordena automáticamente por contribución, o ABS(difference), en orden descendente. En la fila all, la columna difference muestra que hubo un aumento de USD 31,595,222 en las ventas totales de 2020 a 2021, un aumento del 7.9%, como lo indica la columna relative_difference. En la segunda fila, con vendor_name=SAZERAC COMPANY INC, había un unexpected_difference de USD 11,491,923, lo que significa que este segmento de datos creció un 28% más que la tasa de crecimiento de los datos en su totalidad, como se ve en la columna relative_unexpected_difference. Para obtener más información, consulta las columnas de resultados de métricas sumables.

Realiza una limpieza

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.