Ottenere informazioni sui dati da un modello di analisi del contributo utilizzando una metrica del rapporto sommabile
In questo tutorial utilizzerai un modello di analisi di contributo per analizzare il contributo del rapporto del costo del venduto nel set di dati sulle vendite di alcolici nell'Iowa. Questo tutorial ti guida nell'esecuzione delle seguenti attività:
- Creazione di una tabella di input basata sui dati sugli alcolici dell'Iowa disponibili pubblicamente.
- Creazione di un modello di analisi del contributo che utilizza una metrica del rapporto sommabile. Questo tipo di modello riassume i valori di due colonne numeriche e determina le differenze di rapporto tra il set di dati di controllo e di test per ogni segmento di dati.
- Ottieni informazioni sulle metriche del modello utilizzando la
funzione
ML.GET_INSIGHTS
.
Prima di iniziare questo tutorial, è necessario acquisire familiarità con il caso d'uso dell'analisi dei contributi.
Autorizzazioni obbligatorie
Per creare il set di dati, devi disporre dell'autorizzazione
bigquery.datasets.create
Identity and Access Management (IAM).Per creare il modello, devi disporre delle seguenti autorizzazioni:
bigquery.jobs.create
bigquery.models.create
bigquery.models.getData
bigquery.models.updateData
Per eseguire l'inferenza, devi disporre delle seguenti autorizzazioni:
bigquery.models.getData
bigquery.jobs.create
Costi
In questo documento utilizzi 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 la sezione Prezzi di BigQuery della documentazione di BigQuery.
Prima di iniziare
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery API.
Crea un set di dati
Crea un set di dati BigQuery per archiviare il tuo modello ML.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel riquadro Explorer, 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 Più regioni e poi Stati Uniti (più regioni negli Stati Uniti).
I set di dati pubblici sono archiviati nella
US
multiregione. Per semplicità, archivia il tuo set di dati nella stessa posizione.- Lascia invariate le restanti impostazioni predefinite e fai clic su Crea set di dati.
bq
Per creare un nuovo set di dati, utilizza il comando
bq mk
con il flag --location
. Per un elenco completo dei possibili parametri, consulta la documentazione di riferimento del comando bq mk --dataset
.
Crea un set di dati denominato
bqml_tutorial
con la posizione dei dati impostata suUS
e una descrizione diBigQuery ML tutorial dataset
:bq --location=US mk -d \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Anziché utilizzare il flag
--dataset
, il comando utilizza la scorciatoia-d
. Se ometti-d
e--dataset
, il comando crea per impostazione predefinita un set di dati.Verifica che il set di dati sia stato creato:
bq ls
API
Chiama il metodo datasets.insert
con una risorsa 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 seguente query crea due tabelle intermedie, una tabella di test per i dati sui liquori del 2021 e una tabella di controllo con i dati sui liquori del 2020, quindi esegue un'unione delle tabelle intermedie per creare una tabella con righe di test e di controllo e lo stesso insieme di colonne.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
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 il modello
Crea un modello di analisi dei contributi:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
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;
Il completamento della query richiede circa 35 secondi, dopodiché il modelloliquor_sales_model
viene visualizzato nel set di dati bqml_tutorial
nel riquadro Explorer. Poiché la query utilizza un'istruzione CREATE MODEL
per creare un modello, non ci sono risultati della query.
Ottenere approfondimenti dal modello
Ottieni approfondimenti generati dal modello di analisi dei contributi utilizzando la funzione
ML.GET_INSIGHTS
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, esegui la seguente istruzione:
SELECT * FROM ML.GET_INSIGHTS( MODEL `bqml_tutorial.liquor_sales_model`) ORDER BY aumann_shapley_attribution DESC;
Le prime righe dell'output dovrebbero avere il seguente aspetto:
+---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+ | contributors | store_name | city | vendor_name | category_name | item_description | ratio_test | ratio_control | regional_relative_ratio | ambient_relative_ratio_test | ambient_relative_ratio_control | aumann_shapley_attribution | apriori_support | +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+ | ["vendor_name=HEAVEN HILL BRANDS"] | NULL | NULL | HEAVEN HILL BRANDS | NULL | NULL | 0.06082442061831622 | 0.05884218073008315 | 1.0336873967558387 | 0.8698365450783194 | 0.811596664491199 | 1.5104196544869235E-4 | 0.055361944752340866 | | ["category_name=CANADIAN WHISKIES"] | NULL | NULL | NULL | CANADIAN WHISKIES | NULL | 0.05660065322101707 | 0.05527494446064277 | 1.0239839003604652 | 0.7978770326280865 | 0.7503324937642422 | 9.208157188656863E-5 | 0.09035117733470034 | | ["category_name=STRAIGHT BOURBON WHISKIES"] | NULL | NULL | NULL | STRAIGHT BOURBON WHISKIES | NULL | 0.0780561336687973 | 0.07963402619292285 | 0.9801856995111244 | 1.1380300531561078 | 1.123518997118609 | -3.521056388489075E-5 | 0.09069759353047172 | | ["vendor_name=JIM BEAM BRANDS"] | NULL | NULL | JIM BEAM BRANDS | NULL | NULL | 0.07626103548689916 | 0.07922409994920188 | 0.9625989507712601 | 1.1085644148611702 | 1.1170286930895665 | -1.7964572365978545E-4 | 0.08232281614374977 | | ["city=CEDAR RAPIDS"] | NULL | CEDAR RAPIDS | NULL | NULL | NULL | 0.06564795345695407 | 0.06914461951551351 | 0.9494296724306232 | 0.9431496213564421 | 0.964181423999566 | -2.369897107336527E-4 | 0.060593459713451064 | | ["vendor_name=SAZERAC COMPANY INC"] | NULL | NULL | SAZERAC COMPANY INC | NULL | NULL | 0.06564824170155907 | 0.06728069733579875 | 0.9757366421740239 | 0.939610729279885 | 0.9343443980070573 | -3.1033262381369034E-4 | 0.11571276474865996 | +---------------------------------------------+------------+--------------+----------------------+---------------------------+------------------+---------------------+---------------------+-------------------------+-----------------------------+--------------------------------+----------------------------+----------------------+
Nell'output, puoi vedere che il segmento di dati
vendor_name=HEAVEN HILL BRANDS
ha l'attribuzione shapley-aumann più alta, che indica il contributo più elevato alla variazione del rapporto di vendita. Questa differenza è visibile anche nelle colonneratio_test
eratio_control
, che mostrano che il rapporto è aumentato nei dati di test rispetto ai dati di controllo. Altre metriche, comeregional_relative_ratio
,ambient_relative_ratio_test
eambient_relative_ratio_control
, calcolano statistiche aggiuntive che descrivono la relazione tra i rapporti di controllo e di test e il loro rapporto con la popolazione complessiva. Per ulteriori informazioni, consulta le colonne di output delle metriche relative ai rapporti sommabili.
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.