Ottieni insight sui dati da un modello di analisi di contributo utilizzando una metrica riassumibile
In questo tutorial, utilizzerai un modello di analisi di contributo per analizzare le variazioni delle vendite tra il 2020 e il 2021 nel set di dati sulle vendite di alcolici in Iowa. Questo tutorial ti guida nell'esecuzione delle seguenti attività:
- Crea una tabella di input basata sui dati sugli alcolici in Iowa disponibili pubblicamente.
- Crea un modello di analisi di contributo che utilizza una metrica riassumibile. Questo tipo di modello riassume una determinata metrica per una combinazione di una o più dimensioni nei dati, per determinare in che modo queste dimensioni contribuiscono al valore della metrica.
- Ottieni gli insight sulle metriche dal modello utilizzando la
ML.GET_INSIGHTSfunzione.
Prima di iniziare questo tutorial, dovresti acquisire familiarità con il caso d'uso dell'analisi di contributo.
Autorizzazioni obbligatorie
Per creare il set di dati, devi disporre dell'autorizzazione IAM (Identity and Access Management)
bigquery.datasets.create.Per creare il modello, devi disporre delle seguenti autorizzazioni:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Per eseguire l'inferenza, devi disporre delle seguenti autorizzazioni:
bigquery.models.getDatabigquery.jobs.create
Costi
In questo documento vengono utilizzati i seguenti componenti fatturabili di Google Cloud:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Per ulteriori informazioni sui prezzi di BigQuery, consulta Prezzi di BigQuery in la documentazione di BigQuery.
Prima di iniziare
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. 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.enablepermission. Learn how to grant roles.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il tuo modello ML.
Console
Nella Google Cloud console, vai alla pagina BigQuery.
Nel riquadro Spazio di esplorazione, fai clic sul nome del progetto.
Fai clic su Visualizza azioni > Crea set di dati
Nella pagina Crea set di dati:
In ID set di dati, inserisci
bqml_tutorial.Per Tipo di località, seleziona Multi-regione e poi seleziona Stati Uniti (più regioni negli Stati Uniti).
Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il
bq mk comando
con il --location flag. Per un elenco completo dei parametri possibili, consulta il
bq mk --dataset comando
riferimento.
Crea un set di dati denominato
bqml_tutorialcon la località dei dati impostata suUSe una descrizioneBigQuery ML tutorial dataset:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Anziché utilizzare il flag
--dataset, il comando utilizza il collegamento-d. Se ometti-de--dataset, il comando crea un set di dati per impostazione predefinita.Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il datasets.insert
metodo con una risorsa del set di dati definita.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Crea una tabella di dati di input
Crea una tabella contenente i dati di test e di controllo da analizzare. La tabella di test contiene i dati sugli alcolici del 2021, mentre la tabella di controllo contiene i dati sugli alcolici del 2020. La seguente query combina i dati di test e di controllo in una singola tabella di input:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
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 il modello
Crea un modello di analisi di contributo:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
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;
Il completamento della query richiede circa 60 secondi, dopodiché il modello
iowa_liquor_sales_sum_model viene visualizzato nel set di dati bqml_tutorial. Poiché
la query utilizza un'istruzione CREATE MODEL per creare un modello, non vengono visualizzati i
risultati della query.
Ottieni insight dal modello
Ottieni gli insight generati dal modello di analisi di contributo utilizzando la
ML.GET_INSIGHTS funzione.
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione per selezionare le colonne dall' output di un modello di analisi di contributo di una metrica riassumibile:
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`);
Le prime righe dell'output dovrebbero essere simili alle seguenti. I valori vengono troncati per migliorare la leggibilità.
| di lingua russa. | metric_test | metric_control | differenza | relative_difference | unexpected_difference | relative_unexpected_difference | apriori_support | contributo |
|---|---|---|---|---|---|---|---|---|
| tutti | 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 |
L'output viene ordinato automaticamente in ordine decrescente in base al contributo o ABS(difference), in
ordine decrescente. Nella riga all, la colonna difference mostra un aumento delle vendite totali di
31.595.222 $ dal 2020 al 2021,un aumento del 7,9%, come
indicato dalla colonna relative_difference. Nella seconda riga, con
vendor_name=SAZERAC COMPANY INC, è presente una unexpected_difference di
11.491.923 $, il che significa che questo segmento di dati è cresciuto del 28% in più rispetto al tasso di crescita di
dati nel loro complesso, come si evince dalla colonna relative_unexpected_difference.
Per ulteriori informazioni, consulta le
colonne di output delle metriche riassumibili.
Esegui la pulizia
- 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.