Obtén estadísticas de datos a partir de un modelo de análisis de contribuciones usando una métrica de proporción sumable
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:
- 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 de proporción sumable. Este tipo de modelo resume los valores de dos columnas numéricas y determina las diferencias de proporción entre los conjuntos de datos de control y de prueba para cada segmento de los datos.
- 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.createde Identity and Access Management (IAM).Para crear el modelo, necesitas los siguientes permisos:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Para ejecutar inferencias, necesitas los siguientes permisos:
bigquery.models.getDatabigquery.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.
Para obtener más información sobre los precios de BigQuery, consulta Precios de BigQuery en la documentación de BigQuery.
Antes de comenzar
-
En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
-
Habilita la API de BigQuery si aún no está habilitada.
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.
Crea un conjunto de datos
Para crear un conjunto de datos de BigQuery, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el panel de la izquierda, haz clic en Explorar:

Si no ves el panel izquierdo, haz clic en Expandir panel izquierdo para abrirlo.
En Explorador, expande tu proyecto y, luego, haz clic en Conjuntos de datos.
En la página Conjuntos de datos, haz clic en Crear conjunto de datos.
En el panel Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, ingresa
bqml_tutorial.En Ubicación de los datos, selecciona EE.UU..
Deja el resto de la configuración predeterminada como está.
Haz clic en Crear conjunto de datos.
bq
Para crear un conjunto de datos nuevo, usa el
comando bq mk --dataset.
Crea un conjunto de datos llamado
bqml_tutorialcon la ubicación de los datos establecida enUS:bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
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 siguiente consulta crea dos tablas intermedias, una tabla de prueba para los datos de licores de 2021 y una tabla de control con los datos de licores 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.
En la consola de Google Cloud , ve a la página BigQuery.
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:
En la consola de Google Cloud , ve a la página BigQuery.
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 alrededor de 35 segundos en completarse, después de lo cual el modelo
liquor_sales_model aparece en el conjunto de datos bqml_tutorial. 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.
En la consola de Google Cloud , ve a la página BigQuery.
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 de proporción sumables:
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 el porcentaje de ventas. También puedes ver esta diferencia
en las columnas metric_test y metric_control, que muestran que el porcentaje
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 Resultado de los modelos de análisis de contribución de métricas de proporción sumables.
Realiza una limpieza
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.