Dateninformationen aus einem Modell zur Beitragsanalyse mit einem summierbaren Messwert abrufen
In dieser Anleitung verwenden Sie ein Modell zur Beitragsanalyse, um Umsatzänderungen zwischen 2020 und 2021 im Dataset zu den Spirituosenverkäufen in Iowa zu analysieren. In dieser Anleitung werden Sie durch die folgenden Aufgaben geführt:
- Erstellen einer Eingabetabelle auf der Grundlage öffentlich verfügbarer Daten zu Spirituosen in Iowa.
- Erstellen eines Modells zur Beitragsanalyse, das einen summierbaren Messwert verwendet. Bei dieser Art von Modell wird ein bestimmter Messwert für eine Kombination aus einer oder mehreren Dimensionen in den Daten zusammengefasst, um zu ermitteln, wie diese Dimensionen zum Messwert beitragen.
- Abrufen der Messwertinformationen aus dem Modell mit der
ML.GET_INSIGHTSFunktion.
Bevor Sie mit dieser Anleitung beginnen, sollten Sie mit dem Anwendungsfall der Beitragsanalyse vertraut sein.
Erforderliche Berechtigungen
Zum Erstellen des Datasets benötigen Sie die IAM-Berechtigung (
bigquery.datasets.create).Zum Erstellen des Modells benötigen Sie die folgenden Berechtigungen:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateData
Zum Ausführen von Inferenzen benötigen Sie die folgenden Berechtigungen:
bigquery.models.getDatabigquery.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.
Verwenden Sie den Preisrechner.
Weitere Informationen zu den Preisen von BigQuery finden Sie unter BigQuery: Preise in der BigQuery-Dokumentation.
Hinweis
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Projekt von aus oder erstellen Sie eines Google Cloud .
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Informationen zum Zuweisen von Rollen.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Aktivieren Sie die BigQuery API.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Informationen zum Zuweisen von Rollen.
Dataset erstellen
Erstellen Sie ein BigQuery-Dataset, um Ihr ML-Modell zu speichern.
Console
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.
Klicken Sie auf Aktionen ansehen > Dataset erstellen
Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:
Geben Sie unter Dataset-ID
bqml_tutorialein.Wählen Sie als Standorttyp die Option Multiregional und dann USA aus.
Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.
bq
Verwenden Sie den
bq mk --dataset Befehl, um ein neues Dataset zu erstellen.
Erstellen Sie ein Dataset mit dem Namen
bqml_tutorialund legen Sie den Datenstandort aufUSfest.bq mk --dataset \ --location=US \ --description "BigQuery ML tutorial dataset." \ bqml_tutorial
Prüfen Sie, ob das Dataset erstellt wurde:
bq ls
API
Rufen Sie die datasets.insert
Methode mit einer definierten Dataset-Ressource auf.
{ "datasetReference": { "datasetId": "bqml_tutorial" } }
Tabelle mit Eingabedaten erstellen
Erstellen Sie eine Tabelle mit Test- und Kontrolldaten, die Sie analysieren möchten. Die Testtabelle enthält Daten zu Spirituosen aus dem Jahr 2021 und die Kontrolltabelle Daten zu Spirituosen aus dem Jahr 2020. Die folgende Abfrage kombiniert die Test- und Kontrolldaten in einer einzigen Eingabetabelle:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor folgende Abfrage aus:
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) );
Modell erstellen
Erstellen Sie ein Modell zur Beitragsanalyse:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor folgende Abfrage aus:
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;
Die Abfrage dauert etwa 60 Sekunden. Danach wird das Modell iowa_liquor_sales_sum_model im Dataset bqml_tutorial angezeigt. Da die Abfrage eine CREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Informationen aus dem Modell abrufen
Rufen Sie Informationen ab, die vom Modell zur Beitragsanalyse generiert wurden, indem Sie die Funktion ML.GET_INSIGHTS verwenden.
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor die folgende Anweisung aus, um Spalten aus der Ausgabe für ein Modell zur Beitragsanalyse mit einem summierbaren Messwert auszuwählen:
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`);
Die ersten Zeilen der Ausgabe sollten ungefähr so aussehen: Die Werte werden abgeschnitten, um die Lesbarkeit zu verbessern.
| Beitragende | metric_test | metric_control | Unterschied | relative_difference | unexpected_difference | relative_unexpected_difference | apriori_support | Beitrag |
|---|---|---|---|---|---|---|---|---|
| Alle | 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 |
Die Ausgabe wird automatisch in absteigender Reihenfolge nach Beitrag oder ABS(difference) sortiert. In der Zeile all zeigt die Spalte difference, dass der Gesamtumsatz von 2020 bis 2021 um
31.595.222 $ gestiegen ist. Das entspricht einem Anstieg von 7,9 %, wie
in der Spalte relative_difference angegeben. In der zweiten Zeile mit
vendor_name=SAZERAC COMPANY INC gab es einen unexpected_difference von
11.491.923 $. Das bedeutet, dass dieses Datensegment um 28% stärker gewachsen ist als
die Daten insgesamt, wie in der Spalte relative_unexpected_difference zu sehen ist.
Weitere Informationen finden Sie in den
Ausgabespalten für summierbare Messwerte.
Bereinigen
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.