Ottieni insight sui dati da un modello di analisi di contributo utilizzando una metrica riassumibile

In questo tutorial, utilizzi un modello di analisi del 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 pubblici sugli alcolici dell'Iowa.
  • Crea un modello di analisi di contributo che utilizzi una metrica riassumibile. Questo tipo di modello riepiloga una determinata metrica per una combinazione di una o più dimensioni nei dati, per determinare il contributo di queste dimensioni al valore della metrica.
  • Ottieni gli approfondimenti sulle metriche dal modello utilizzando la funzione ML.GET_INSIGHTS.

Prima di iniziare questo tutorial, devi acquisire familiarità con il caso d'uso dell'analisi del contributo.

Autorizzazioni obbligatorie

  • Per creare il set di dati, devi disporre dell'autorizzazione Identity and Access Management (IAM) bigquery.datasets.create.

  • 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. I nuovi utenti di Google Cloud potrebbero avere diritto a una prova gratuita.

Per ulteriori informazioni sui prezzi di BigQuery, consulta la sezione Prezzi di BigQuery nella documentazione di BigQuery.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery API.

    Enable the API

Crea un set di dati

Crea un set di dati BigQuery per archiviare il tuo modello ML.

Console

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai alla pagina BigQuery

  2. Nel riquadro Explorer, fai clic sul nome del progetto.

  3. Fai clic su Visualizza azioni > Crea set di dati.

    L'opzione di menu Crea set di dati.

  4. 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).

    • 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.

  1. Crea un set di dati denominato bqml_tutorial con la località dei dati impostata su US e una descrizione di BigQuery 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 un set di dati per impostazione predefinita.

  2. Verifica che il set di dati sia stato creato:

    bq ls

API

Chiama il metodo datasets.insert con una risorsa dataset definita.

{
  "datasetReference": {
     "datasetId": "bqml_tutorial"
  }
}

BigQuery DataFrames

Prima di provare questo esempio, segui le istruzioni di configurazione di BigQuery DataFrames nella guida rapida di BigQuery che utilizza BigQuery DataFrames. Per ulteriori informazioni, consulta la documentazione di riferimento di BigQuery DataFrames.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per maggiori informazioni, vedi Configurare ADC per un ambiente di sviluppo locale.

import google.cloud.bigquery

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

Crea una tabella di dati di input

Crea una tabella contenente i dati di test e 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 controllo in una singola tabella di input:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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 del contributo:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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 nel riquadro Spazio di esplorazione. Poiché la query utilizza un'istruzione CREATE MODEL per creare un modello, non ci sono risultati della query.

Ottenere informazioni dal modello

Ottieni approfondimenti generati dal modello di analisi di contributo utilizzando la funzione ML.GET_INSIGHTS.

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, esegui la seguente istruzione per selezionare le colonne dall'output di un modello di analisi del contributo di una metrica sommabile:

    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 a quelle riportate di seguito. 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 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, si è verificato un unexpected_difference di 11.491.923 $, il che significa che questo segmento di dati è cresciuto del 28% in più rispetto al tasso di crescita dei dati nel loro complesso, come si vede dalla colonna relative_unexpected_difference. Per ulteriori informazioni, consulta le colonne di output delle metriche sommabili.

Esegui la pulizia

  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.