ML und KI mit BigQuery DataFrames verwenden
Mit der bigframes.ml-Bibliothek in BigQuery DataFrames können Sie KI- und ML-Funktionen (Machine Learning) in Ihre Datenanalyse-Workflows einbinden. Wenn Sie Daten vorverarbeiten, Modelle trainieren und ML-Pipelines direkt in BigQuery erstellen, können Sie Ihre Analysen skalieren, ohne Datasets aus Ihrem Data Warehouse extrahieren zu müssen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, damit Sie die nötigen Berechtigungen für die Aufgaben in diesem Dokument haben:
-
Remote-Modelle oder KI-Funktionen verwenden: BigQuery-Verbindungsadministrator (
roles/bigquery.connectionAdmin) -
BigQuery DataFrames in einem BigQuery-Notebook verwenden:
- BigQuery User (
roles/bigquery.user) - Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) - Code Creator (
roles/dataform.codeCreator)
- BigQuery User (
-
Standardmäßige BigQuery-Verbindung verwenden:
- BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Connection Admin (
roles/bigquery.connectionAdmin) - Cloud Functions Developer (
roles/cloudfunctions.developer) - Service Account User (
roles/iam.serviceAccountUser) - Storage-Objekt-Betrachter (
roles/storage.objectViewer)
- BigQuery Data Editor (
-
BigQuery DataFrames ML-Remote-Modelle verwenden:
BigQuery-Verbindungsadministrator (
roles/bigquery.connectionAdmin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
ML-Speicherorte
Die bigframes.ml-Bibliothek unterstützt dieselben Standorte wie BigQuery ML. BigQuery ML-Modellvorhersagen und andere ML-Funktionen werden in allen BigQuery-Regionen unterstützt. Die Unterstützung für das Modelltraining variiert je nach Region. Weitere Informationen finden Sie unter BigQuery ML-Standorte.
Daten vorverarbeiten
Erstellen Sie Transformer, um Daten für die Verwendung in Estimators (Modellen) mithilfe des Moduls bigframes.ml.preprocessing und des Moduls bigframes.ml.compose vorzubereiten.
BigQuery DataFrames bietet die folgenden Transformationen:
Verwenden Sie die
KBinsDiscretizer-Klasse im Modulbigframes.ml.preprocessing, um kontinuierliche Daten in Intervalle zu bündeln.Verwenden Sie die
LabelEncoder-Klasse im Modulbigframes.ml.preprocessing, um die Ziellabels als Ganzzahlwerte zu normalisieren.Verwenden Sie die
MaxAbsScaler-Klasse im Modulbigframes.ml.preprocessing, um jedes Feature um seinen maximalen absoluten Wert auf den Bereich[-1, 1]zu skalieren.Verwenden Sie die
MinMaxScaler-Klasse im Modulbigframes.ml.preprocessing, um Features zu standardisieren, indem Sie jedes Feature auf den Bereich[0, 1]skalieren.Verwenden Sie die
StandardScaler-Klasse imbigframes.ml.preprocessing-Modul, um Features zu standardisieren. Dazu entfernen Sie den Mittelwert und die Skalierung auf die Einheitsvarianz.Verwenden Sie die
OneHotEncoder-Klasse im Modulbigframes.ml.preprocessing, um kategoriale Werte in ein numerisches Format umzuwandeln.Verwenden Sie die
ColumnTransformer-Klasse im Modulbigframes.ml.compose, um Transformer auf DataFrames-Spalten anzuwenden.
Modelle trainieren
Sie können Schätzer zum Trainieren von Modellen in BigQuery DataFrames erstellen.
Clustering-Modelle
Mit dem bigframes.ml.cluster-Modul können Sie Estimators für Clustering-Modelle erstellen.
Verwenden Sie die Klasse KMeans, um K-Means-Clustering-Modelle zu erstellen. Verwenden Sie diese Modelle für die Datensegmentierung. Beispiel: Identifizierung von Kundensegmenten. Da K-Means ein unüberwachtes Lernverfahren ist, sind für das Modelltraining weder Labels noch Datenaufteilungen für die Trainings- oder Evaluierungsphase erforderlich.
Mit dem Modul bigframes.ml.cluster können Sie Estimators für Clustering-Modelle erstellen.
Das folgende Codebeispiel zeigt die Verwendung der Klasse bigframes.ml.cluster KMeans zum Erstellen eines K-Means-Clustering-Modells für die Datensegmentierung:
Zerlegungsmodelle
Mit dem bigframes.ml.decomposition-Modul können Sie Schätzer für Zerlegungsmodelle erstellen.
Verwenden Sie die Klasse PCA, um Modelle für die Hauptkomponentenanalyse (Principal Component Analysis, PCA) zu erstellen. Verwenden Sie diese Modelle zur Berechnung der Hauptkomponenten und zur Durchführung einer Änderung der Grundlage der Daten. Die Klasse PCA reduziert die Dimensionalität, indem jeder Datenpunkt auf die ersten Hauptkomponenten projiziert wird, um niedrigdimensionale Daten zu erhalten und gleichzeitig einen möglichst großen Teil der Datenabweichung beizubehalten.
Ensemble-Modelle
Mit dem bigframes.ml.ensemble-Modul können Sie Schätzer für Ensemble-Modelle erstellen.
Verwenden Sie die
RandomForestClassifier-Klasse, um Random Forest-Klassifikatormodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsbäume für Lernmethoden zur Klassifizierung zu erstellen.Verwenden Sie die
RandomForestRegressor-Klasse, um Random Forest-Regressionsmodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsbäume für Lernmethoden für die Regression zu erstellen.Verwenden Sie die
XGBClassifier-Klasse, um Gradienten-Boosted Tree-Klassifikatormodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsmethoden für Lernmethoden zur Klassifizierung additiv zu erstellen.Verwenden Sie die
XGBRegressor-Klasse, um Gradienten-Boosting-Baum-Regressionsmodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsmethoden für Lernmethoden für die Regression additiv zu erstellen.
Prognosemodelle
Mit dem bigframes.ml.forecasting-Modul können Sie Schätzer für Prognosemodelle erstellen.
Verwenden Sie die ARIMAPlus-Klasse, um Zeitreihenprognosemodelle zu erstellen.
Importierte Modelle
Mit dem bigframes.ml.imported-Modul können Sie Estimators für importierte Modelle erstellen.
Verwenden Sie die
ONNXModel-Klasse, um ONNX-Modelle (Open Neural Network Exchange) zu importieren.Verwenden Sie zum Importieren eines TensorFlow-Modells die Klasse
TensorFlowModel.Verwenden Sie zum Importieren von XGBoostModel-Modellen die Klasse
XGBoostModel.
Lineare Modelle
Erstellen Sie Estimatoren für lineare Modelle mit dem bigframes.ml.linear_model-Modul.
Verwenden Sie die Klasse
LinearRegression, um lineare Regressionsmodelle zu erstellen. Verwenden Sie diese Modelle für Prognosen, z. B. für die Prognose der Verkäufe eines Artikels an einem bestimmten Tag.Verwenden Sie die
LogisticRegression-Klasse, um logistische Regressionsmodelle zu erstellen. Verwenden Sie diese Modelle für die Klassifizierung von zwei oder mehr möglichen Werten, z. B. ob eine Eingabelow-value,medium-valueoderhigh-valueist.
Das folgende Codebeispiel zeigt bigframes.ml, um Folgendes zu tun:
- Daten aus BigQuery laden.
- Trainingsdaten bereinigen und vorbereiten
- Regressionsmodell bigframes.ml.LinearRegression erstellen und anwenden
Large Language Models
Mit dem bigframes.ml.llm-Modul können Sie Schätzer für LLMs erstellen.
Verwenden Sie die
GeminiTextGenerator-Klasse, um Gemini-Textgeneratormodelle zu erstellen. Verwenden Sie diese Modelle für Aufgaben zur Textgenerierung.Mit dem Modul
bigframes.ml.llmkönnen Sie Estimators für Remote-Large Language Models (LLMs) erstellen.
Im folgenden Codebeispiel wird gezeigt, wie die Klasse bigframes.ml.llm
GeminiTextGenerator verwendet wird, um ein Gemini-Modell für die Codegenerierung zu erstellen:
Remotemodelle
Um BigQuery DataFrames ML-Remote-Modelle (bigframes.ml.remote oder bigframes.ml.llm) zu verwenden, müssen Sie die folgenden APIs aktivieren:
Wenn Sie BigQuery DataFrames ML-Remote-Modelle verwenden, benötigen Sie die Projekt-IAM-Administratorrolle (roles/resourcemanager.projectIamAdmin), wenn Sie eine BigQuery-Standardverbindung verwenden, oder die Browserrolle (roles/browser), wenn Sie eine vorkonfigurierte Verbindung verwenden. Sie können diese Anforderung vermeiden, indem Sie die Option bigframes.pandas.options.bigquery.skip_bq_connection_check auf True setzen. In diesem Fall wird die Verbindung (Standard oder vorkonfiguriert) unverändert verwendet, ohne dass geprüft wird, ob sie besteht oder eine Berechtigung vorhanden ist. Wenn Sie die vorkonfigurierte Verbindung verwenden und die Verbindungsprüfung überspringen, prüfen Sie Folgendes:
- Die Verbindung wird am richtigen Standort erstellt.
- Wenn Sie BigQuery DataFrames ML-Remote-Modelle verwenden, hat das Dienstkonto die Rolle „Agent Platform User“ (
roles/aiplatform.user) für das Projekt.
Durch das Erstellen eines Remote-Modells in BigQuery DataFrames wird eine BigQuery-Verbindung erstellt.
Standardmäßig wird eine Verbindung mit dem Namen bigframes-default-connection verwendet. Sie können eine vorkonfigurierte BigQuery-Verbindung verwenden, wenn Sie möchten. In diesem Fall wird die Verbindungserstellung übersprungen. Dem Dienstkonto für die Standardverbindung wird die Rolle Agent Platform User (roles/aiplatform.user) für das Projekt zugewiesen.
Pipelines erstellen
Sie können ML-Pipelines mit dem Modul bigframes.ml.pipeline erstellen.
Mit Pipelines können Sie mehrere ML-Schritte zusammenstellen, die gemeinsam validiert werden sollen, während Sie verschiedene Parameter festlegen. Dies vereinfacht den Code und ermöglicht es Ihnen, Datenvorverarbeitungsschritte und einen Estimator zusammen bereitzustellen.
Verwenden Sie die Klasse Pipeline, um eine Pipeline von Transformationen mit einem endgültigen Estimator zu erstellen.
Modelle auswählen
Verwenden Sie das bigframes.ml.model_selection-Modul, um Ihre Trainings- und Test-Datasets aufzuteilen und die besten Modelle auszuwählen:
Verwenden Sie die
train_test_split-Funktion, um die Daten in Trainings- und Test-Datasets (Bewertungs-Datasets) aufzuteilen, wie im folgenden Codebeispiel gezeigt:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)Verwenden Sie die Klasse
KFoldund die MethodeKFold.split, um mehrfache Trainings- und Test-Datasets zum Trainieren und Bewerten von Modellen zu erstellen, wie im folgenden Codebeispiel gezeigt. Diese Funktion ist für kleine Datasets nützlich.kf = KFold(n_splits=5) for i, (X_train, X_test, y_train, y_test) in enumerate(kf.split(X, y)): # Train and evaluate models with training and testing setsVerwenden Sie die
cross_validate-Funktion, um automatisch mehrfache Trainings- und Testsätze zu erstellen, das Modell zu trainieren und zu bewerten und das Ergebnis jedes Folds abzurufen, wie im folgenden Codebeispiel gezeigt:scores = cross_validate(model, X, y, cv=5)
Nächste Schritte
- Datentypsystem von BigQuery DataFrames
- Informationen zum Generieren von BigQuery DataFrames-Code mit Gemini
- Paketdownloads von PyPI mit BigQuery DataFrames analysieren
- Quellcode, Beispiel-Notebooks und Beispiele für BigQuery DataFrames auf GitHub ansehen.
- Referenz zur BigQuery DataFrames API