In dieser Anleitung erfahren Sie, wie Sie ein Boosted Tree-Klassifikationsmodell verwenden, um den Einkommensbereich von Personen anhand ihrer demografischen Daten vorherzusagen. Das Modell sagt vorher, ob ein Wert in eine von zwei Kategorien fällt. In diesem Fall,ob das jährliche Einkommen einer Person über oder unter 50.000 $fällt.
In dieser Anleitung wird das Dataset bigquery-public-data.ml_datasets.census_adult_income
verwendet. Dieses Dataset enthält demografische und einkommensbezogene Informationen von US-Bürgern aus den Jahren 2000 und 2010.
Dataset erstellen
Erstellen Sie ein BigQuery-Dataset zum Speichern Ihres ML-Modells.
Console
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
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_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.
Erstellen Sie ein Dataset mit dem Namen
bqml_tutorial
, wobei der Datenspeicherort aufUS
und die Beschreibung aufBigQuery 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.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.
Beispieldaten vorbereiten
Das Modell, das Sie in dieser Anleitung erstellen, sagt die Einkommensgruppe für Befragte bei der Volkszählung anhand der folgenden Features vorher:
- Alter
- Art der Tätigkeit
- Familienstand
- Bildungsniveau
- Beruf
- Arbeitsstunden pro Woche
Die Spalte education
ist nicht in den Trainingsdaten enthalten, da die Spalten education
und education_num
das Bildungsniveau des Befragten in unterschiedlichen Formaten ausdrücken.
Sie trennen die Daten in Trainings-, Auswertungs- und Vorhersage-Sets, indem Sie eine neue dataframe
-Spalte erstellen, die von der functional_weight
-Spalte abgeleitet wird.
80 % der Daten werden zum Trainieren des Modells verwendet und die verbleibenden 20 % für die Bewertung und Vorhersage.
SQL
Erstellen Sie zum Vorbereiten Ihrer Beispieldaten eine Ansicht, die die Trainingsdaten enthält. Diese Ansicht wird später in dieser Anleitung von der CREATE MODEL
-Anweisung verwendet.
Führen Sie die Abfrage aus, mit der die Beispieldaten vorbereitet werden:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Führen Sie im Abfrageeditor folgende Abfrage aus:
CREATE OR REPLACE VIEW `bqml_tutorial.input_data` AS SELECT age, workclass, marital_status, education_num, occupation, hours_per_week, income_bracket, CASE WHEN MOD(functional_weight, 10) < 8 THEN 'training' WHEN MOD(functional_weight, 10) = 8 THEN 'evaluation' WHEN MOD(functional_weight, 10) = 9 THEN 'prediction' END AS dataframe FROM `bigquery-public-data.ml_datasets.census_adult_income`;
Klicken Sie im linken Bereich auf
Explorer:Wenn Sie den linken Bereich nicht sehen, klicken Sie auf
Linken Bereich maximieren, um ihn zu öffnen.Suchen Sie im Bereich Explorer nach dem Dataset
bqml_tutorial
.Klicken Sie auf das Dataset und dann auf Übersicht> Tabellen.
Klicken Sie auf die Ansicht
input_data
, um den Informationsbereich zu öffnen. Das Ansichtsschema wird auf dem Tab Schema angezeigt.
BigQuery DataFrames
Erstellen Sie einen DataFrame mit dem Namen input_data
. input_data
wird später in dieser Anleitung verwendet, um das Modell zu trainieren, zu bewerten und Vorhersagen zu treffen.
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.
Boosted Trees-Modell erstellen
Erstellen Sie ein Boosted Trees-Modell, um die Einkommensklasse der Befragten der Volkszählung vorherzusagen, und trainieren Sie es mit den Volkszählungsdaten. Die Abfrage dauert etwa 30 Minuten.
SQL
So erstellen Sie das Modell:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Fügen Sie die folgende Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen:
CREATE MODEL `bqml_tutorial.tree_model` OPTIONS(MODEL_TYPE='BOOSTED_TREE_CLASSIFIER', BOOSTER_TYPE = 'GBTREE', NUM_PARALLEL_TREE = 1, MAX_ITERATIONS = 50, TREE_METHOD = 'HIST', EARLY_STOP = FALSE, SUBSAMPLE = 0.85, INPUT_LABEL_COLS = ['income_bracket']) AS SELECT * EXCEPT(dataframe) FROM `bqml_tutorial.input_data` WHERE dataframe = 'training';
Nach Abschluss der Abfrage kann über den Bereich Explorer auf das Modell
tree_model
zugegriffen werden. Da die Abfrage eineCREATE MODEL
-Anweisung zum Erstellen eines Modells verwendet, werden keine Abfrageergebnisse ausgegeben.
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.
Modell bewerten
SQL
So bewerten Sie das Modell:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Fügen Sie die folgende Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen:
SELECT * FROM ML.EVALUATE (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'evaluation' ) );
Die Antwort sollte in etwa so aussehen:
+---------------------+---------------------+---------------------+-------------------+---------------------+---------------------+ | precision | recall | accuracy | f1_score | log_loss | roc_auc | +---------------------+---------------------+---------------------+-------------------+-------------------------------------------+ | 0.67192429022082023 | 0.57880434782608692 | 0.83942963422194672 | 0.621897810218978 | 0.34405456040833338 | 0.88733566433566435 | +---------------------+---------------------+ --------------------+-------------------+---------------------+---------------------+
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.
Die Bewertungsstatistiken deuten auf eine gute Modellleistung hin, insbesondere der roc_auc
-Wert, der größer als 0.8
ist.
Weitere Informationen zu den Bewertungsstatistiken finden Sie unter Ausgabe.
Modell zum Vorhersagen von Klassifizierungen verwenden
SQL
So prognostizieren Sie Daten mit dem Modell:
Öffnen Sie in der Google Cloud Console die Seite BigQuery.
Fügen Sie die folgende Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen:
SELECT * FROM ML.PREDICT (MODEL `bqml_tutorial.tree_model`, ( SELECT * FROM `bqml_tutorial.input_data` WHERE dataframe = 'prediction' ) );
Die ersten Spalten der Ergebnisse sollten in etwa so aussehen:
+---------------------------+--------------------------------------+-------------------------------------+ | predicted_income_bracket | predicted_income_bracket_probs.label | predicted_income_bracket_probs.prob | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.05183430016040802 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.94816571474075317 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.00365859130397439 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.99634140729904175 | +---------------------------+--------------------------------------+-------------------------------------+ | <=50K | >50K | 0.037775970995426178 | +---------------------------+--------------------------------------+-------------------------------------+ | | <50K | 0.96222406625747681 | +---------------------------+--------------------------------------+-------------------------------------+
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.
predicted_income_bracket
enthält den vom Modell vorhergesagten Wert.
In der predicted_income_bracket_probs.label
werden die beiden Labels angezeigt, zwischen denen das Modell wählen musste, und in der Spalte predicted_income_bracket_probs.prob
wird die Wahrscheinlichkeit dafür angezeigt, dass das jeweilige Label das richtige ist.
Weitere Informationen zu den Ausgabespalten finden Sie unter Klassifizierungsmodelle.