Obtener información valiosa de un modelo de análisis de contribuciones usando una métrica resumible
En este tutorial, usarás un modelo de análisis de contribución para analizar los cambios en las ventas entre el 2020 y el 2021 en el conjunto de datos de ventas de bebidas alcohólicas de Iowa. En este tutorial se explica cómo realizar las siguientes tareas:
- Crea una tabla de entrada basada en datos públicos sobre bebidas alcohólicas de Iowa.
- Crea un modelo de análisis de contribuciones que use una métrica resumible. Este tipo de modelo resume una métrica determinada para una combinación de una o varias dimensiones de los datos, con el fin de determinar cómo contribuyen esas dimensiones al valor de la métrica.
- Para obtener las estadísticas de la métrica del modelo, usa la función
ML.GET_INSIGHTS
.
Antes de empezar este tutorial, debes familiarizarte con el caso práctico de análisis de contribuciones.
Permisos obligatorios
Para crear el conjunto de datos, necesitas el permiso
bigquery.datasets.create
de Gestión de Identidades y Accesos (IAM).Para crear el modelo, necesitas los siguientes permisos:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
Para ejecutar la inferencia, necesitas los siguientes permisos:
bigquery.models.getData
bigquery.jobs.create
Costes
En este documento, se utilizan 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 costes basada en el uso previsto,
utiliza la calculadora de precios.
Para obtener más información sobre los precios de BigQuery, consulta la página Precios de BigQuery en la documentación de BigQuery.
Antes de empezar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles.
Crear conjunto de datos
Crea un conjunto de datos de BigQuery para almacenar tu modelo de aprendizaje automático.
Consola
En la Google Cloud consola, ve a la página BigQuery.
En el panel Explorador, haz clic en el nombre de tu proyecto.
Haga clic en
Ver acciones > Crear conjunto de datos.En la página Crear conjunto de datos, haz lo siguiente:
En ID del conjunto de datos, introduce
bqml_tutorial
.En Tipo de ubicación, selecciona Multirregión y, a continuación, EE. UU. (varias regiones de Estados Unidos).
Deje el resto de los ajustes predeterminados como están y haga clic en Crear conjunto de datos.
bq
Para crear un conjunto de datos, usa el comando
bq mk
con la marca --location
. Para ver una lista completa de los parámetros posibles, consulta la referencia del comando bq mk --dataset
.
Crea un conjunto de datos llamado
bqml_tutorial
con la ubicación de los datos definida comoUS
y la descripciónBigQuery 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 omite-d
y--dataset
, el comando creará un conjunto de datos de forma predeterminada.Confirma que se ha 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" } }
BigQuery DataFrames
Antes de probar este ejemplo, sigue las instrucciones de configuración de BigQuery DataFrames que se indican 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 los DataFrames de BigQuery.
Para autenticarte en BigQuery, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configurar ADC en un entorno de desarrollo local.
Crear una tabla de datos de entrada
Crea una tabla que contenga los datos de prueba y de control que quieras analizar. La tabla de prueba contiene datos de bebidas alcohólicas del 2021 y la tabla de control contiene datos de bebidas alcohólicas del 2020. La siguiente consulta combina los datos de prueba y de control en una sola tabla de entrada:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente instrucció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) );
Crear el modelo
Crea un modelo de análisis de contribución:
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente instrucció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 unos 60 segundos en completarse. Después, el modelo iowa_liquor_sales_sum_model
aparece en el conjunto de datos bqml_tutorial
del panel Explorador. Como la consulta usa una instrucción CREATE MODEL
para crear un modelo, no hay resultados de consulta.
Obtener información valiosa del modelo
Obtén las estadísticas generadas por el modelo de análisis de contribuciones usando la función ML.GET_INSIGHTS
.
En la Google Cloud consola, ve a la página BigQuery.
En el editor de consultas, ejecuta la siguiente instrucción para seleccionar columnas de la salida 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 de la salida deberían ser similares a las siguientes. Los valores se truncan para mejorar la legibilidad.
tiempo para hablar con nosotros y con los Colaboradores principales rusófonos. | 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 |
Los resultados se ordenan automáticamente por contribución (ABS(difference)
) en orden descendente. En la fila all
, la columna difference
muestra que las ventas totales aumentaron en 31.595.222 USD del 2020 al 2021,lo que supone un incremento del 7,9 %, tal como se indica en la columna relative_difference
. En la segunda fila, con vendor_name=SAZERAC COMPANY INC
, había un unexpected_difference
de 11.491.923 USD, lo que significa que este segmento de datos creció un 28% más que la tasa de crecimiento de los datos en su conjunto, como se puede ver en la columna relative_unexpected_difference
.
Para obtener más información, consulta las columnas de salida de métricas sumables.
Limpieza
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.