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

En este instructivo, usarás un modelo de análisis de contribución para analizar la contribución de la proporción del costo de ventas en el conjunto de datos de ventas de bebidas alcohólicas de Iowa. En este instructivo, se te guiará por las siguientes tareas:

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 de Google Cloud nuevos cumplan con los requisitos para acceder a 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. Verify 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 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.

  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"
  }
}

Permite trabajar con BigQuery DataFrames.

Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames en la guía de inicio rápido de BigQuery con BigQuery DataFrames. Para obtener más información, consulta la documentación de referencia de BigQuery DataFrames.

Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura ADC para un entorno de desarrollo local.

import google.cloud.bigquery

bqclient = google.cloud.bigquery.Client()
bqclient.create_dataset("bqml_tutorial", exists_ok=True)

Crea una tabla de datos de entrada

Crea una tabla que contenga datos de prueba y control para analizar. La siguiente consulta crea dos tablas intermedias, una tabla de prueba con datos de bebidas alcohólicas de 2021 y una tabla de control con datos de bebidas alcohólicas de 2020, y luego realiza una unión de las tablas intermedias para crear una tabla con filas de prueba y de control, y el mismo conjunto de columnas.

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

    Ir a BigQuery

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

    CREATE OR REPLACE TABLE bqml_tutorial.iowa_liquor_sales_data AS
    (SELECT
      store_name,
      city,
      vendor_name,
      category_name,
      item_description,
      SUM(sale_dollars) AS total_sales,
      SUM(state_bottle_cost) AS total_bottle_cost,
      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,
      SUM(state_bottle_cost) AS total_bottle_cost,
      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 BigQuery.

    Ir a BigQuery

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

    CREATE OR REPLACE MODEL bqml_tutorial.liquor_sales_model
    OPTIONS(
      model_type = 'CONTRIBUTION_ANALYSIS',
      contribution_metric = 'sum(total_bottle_cost)/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_data;

La consulta tarda aproximadamente 35 segundos en completarse, después de eso, el modelo liquor_sales_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 BigQuery.

    Ir a BigQuery

  2. En el editor de consultas, ejecuta la siguiente instrucción para seleccionar columnas del resultado de un modelo de análisis de contribución de una métrica de proporción sumatoria:

    SELECT
    contributors,
    metric_test,
    metric_control,
    metric_test_over_metric_control,
    metric_test_over_complement,
    metric_control_over_complement,
    aumann_shapley_attribution,
    apriori_support
    contribution
    FROM
      ML.GET_INSIGHTS(
        MODEL `bqml_tutorial.liquor_sales_model`)
    ORDER BY aumann_shapley_attribution DESC;

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 metric_test_over_metric_control metric_test_over_complement metric_control_over_complement aumann_shapley_attribution apriori_support contribución
todos 0.069 0.071 0.969 null null -0.00219 1.0 0.00219
city=DES MOINES 0.048 0.054 0.88 0.67 0.747 -0.00108 0.08 0.00108
vendor_name=DIAGEO AMERICAS 0.064 0.068 0.937 0.917 0.956 -0.0009 0.184 0.0009
vendor_name=BACARDI USA INC 0.071 0.082 0.857 1.025 1.167 -0.00054 0.057 0.00054
vendor_name=PERNOD RICARD USA 0.068 0.077 0.89 0.988 1.082 -0.0005 0.061 0.0005

En el resultado, puedes ver que el segmento de datos city=DES MOINES tiene la mayor contribución de cambio en la proporción de ventas. También puedes ver esta diferencia en las columnas metric_test y metric_control, que muestran que la proporción disminuyó en los datos de prueba en comparación con los datos de control. Otras métricas, como metric_test_over_metric_control, metric_test_over_complement y metric_control_over_complement, calculan estadísticas adicionales que describen la relación entre las proporciones de control y de prueba, y cómo se relacionan con la población general. Para obtener más información, consulta Resultados de los modelos de análisis de la contribución de métricas de proporción sumables.

Limpia

  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.