Dateninformationen aus einem Modell zur Beitragsanalyse mit einem summierbaren Verhältnismesswert abrufen

In dieser Anleitung verwenden Sie ein Beitragsanalysemodell, um den Beitrag des Umsatzkostenverhältnisses im Dataset „Iowa Liquor Sales“ (Verkauf von Spirituosen in Iowa) zu analysieren. In dieser Anleitung werden Sie durch die folgenden Aufgaben geführt:

  • Erstellen Sie eine Eingabetabelle auf Grundlage öffentlich verfügbarer Daten zu Spirituosen in Iowa.
  • Erstellen Sie ein Modell zur Beitragsanalyse, in dem ein summierbarer Verhältnismesswert verwendet wird. Bei diesem Modell werden die Werte von zwei numerischen Spalten zusammengefasst und die Verhältnisauswirkungen zwischen dem Kontroll- und dem Test-Dataset für jedes Datensegment ermittelt.
  • Rufen Sie die Messwertstatistiken aus dem Modell mit der Funktion ML.GET_INSIGHTS ab.

Bevor Sie mit dieser Anleitung beginnen, sollten Sie mit dem Anwendungsfall Beitragsanalyse vertraut sein.

Erforderliche Berechtigungen

  • Zum Erstellen des Datasets benötigen Sie die IAM (Identity and Access Management)-Berechtigung bigquery.datasets.create.

  • Zum Erstellen des Modells benötigen Sie die folgenden Berechtigungen:

    • bigquery.jobs.create
    • bigquery.models.create
    • bigquery.models.getData
    • bigquery.models.updateData
  • Zum Ausführen von Inferenzen benötigen Sie die folgenden Berechtigungen:

    • bigquery.models.getData
    • bigquery.jobs.create

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

  • BigQuery ML: You incur costs for the data that you process in BigQuery.

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Neuen Google Cloud Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Weitere Informationen zu den Preisen von BigQuery finden Sie unter BigQuery: Preise in der BigQuery-Dokumentation.

Hinweise

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

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. Enable the BigQuery API.

    Enable the API

Dataset erstellen

Erstellen Sie ein BigQuery-Dataset zum Speichern Ihres ML-Modells.

Konsole

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    Zur Seite "BigQuery"

  2. Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.

  3. Klicken Sie auf  Aktionen ansehen > Dataset erstellen.

  4. Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:

    • Geben Sie unter Dataset-ID bqml_tutorial ein.

    • Wählen Sie als Standorttyp die Option Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.

    • Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.

bq

Wenn Sie ein neues Dataset erstellen möchten, verwenden Sie den Befehl bq mk mit dem Flag --location. Eine vollständige Liste der möglichen Parameter finden Sie in der bq mk --dataset-Befehlsreferenz.

  1. Erstellen Sie ein Dataset mit dem Namen bqml_tutorial, wobei der Datenspeicherort auf US und die Beschreibung auf BigQuery ML tutorial dataset festgelegt ist:

    bq --location=US mk -d \
     --description "BigQuery ML tutorial dataset." \
     bqml_tutorial

    Anstelle des Flags --dataset verwendet der Befehl die verkürzte Form -d. Wenn Sie -d und --dataset auslassen, wird standardmäßig ein Dataset erstellt.

  2. Prüfen Sie, ob das Dataset erstellt wurde:

    bq ls

API

Rufen Sie die Methode datasets.insert mit einer definierten Dataset-Ressource auf.

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

BigQuery DataFrames

Bevor Sie dieses Beispiel ausprobieren, folgen Sie den Schritten zur Einrichtung von BigQuery DataFrames in der BigQuery-Kurzanleitung: BigQuery DataFrames verwenden. Weitere Informationen finden Sie in der Referenzdokumentation zu BigQuery DataFrames.

Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter ADC für eine lokale Entwicklungsumgebung einrichten.

import google.cloud.bigquery

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

Tabelle mit Eingabedaten erstellen

Erstellen Sie eine Tabelle mit Test- und Kontrolldaten, die Sie analysieren möchten. Mit der folgenden Abfrage werden zwei Zwischentabellen erstellt: eine Testtabelle mit Daten zu Spirituosen aus dem Jahr 2021 und eine Kontrolltabelle mit Daten zu Spirituosen aus dem Jahr 2020. Anschließend werden die Zwischentabellen zusammengeführt, um eine Tabelle mit Test- und Kontrollzeilen und denselben Spalten zu erstellen.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    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);

Modell erstellen

Beitragsanalysemodell erstellen:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Führen Sie im Abfrageeditor folgende Abfrage aus:

    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;

Die Abfrage dauert etwa 35 Sekunden. Anschließend wird das Modell liquor_sales_model im bqml_tutorial-Dataset des Bereichs Explorer angezeigt. Da die Abfrage eine CREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.

Einblicke aus dem Modell gewinnen

Mit der Funktion ML.GET_INSIGHTS können Sie Informationen abrufen, die vom Modell zur Beitragsanalyse generiert wurden.

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Führen Sie im Query Editor die folgende Anweisung aus, um Spalten aus der Ausgabe für ein summierbares Modell zur Analyse von Beiträgen von Verhältnis-Messwerten auszuwählen:

    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;

Die ersten Zeilen der Ausgabe sollten in etwa so aussehen: Die Werte werden zur besseren Lesbarkeit gekürzt.

mit den russischsprachigen  Top-Beitragenden zu sprechen. metric_test metric_control metric_test_over_metric_control metric_test_over_complement metric_control_over_complement aumann_shapley_attribution apriori_support Beitrag
Alle 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

In der Ausgabe sehen Sie, dass das Datensegment city=DES MOINES den größten Beitrag zur Änderung des Umsatzverhältnisses hat. Dieser Unterschied ist auch in den Spalten metric_test und metric_control zu sehen. Das Verhältnis ist in den Testdaten im Vergleich zu den Kontrolldaten gesunken. Andere Messwerte wie metric_test_over_metric_control, metric_test_over_complement und metric_control_over_complement berechnen zusätzliche Statistiken, die das Verhältnis zwischen den Kontroll- und Testraten und deren Beziehung zur Gesamtpopulation beschreiben. Weitere Informationen finden Sie unter Ausgabe für Modelle zur Analyse von Beiträgen summierbarer Verhältnis-Messwerte.

Bereinigen

  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.