ML und KI mit BigQuery DataFrames verwenden
BigQuery DataFrames bietet ML- und KI-Funktionen für BigQuery DataFrames mithilfe der bigframes.ml-Bibliothek.
Sie können Daten vorverarbeiten, Estimatoren zum Trainieren von Modellen in BigQuery DataFrames erstellen, ML-Pipelines erstellen und Trainings- und Test-Datasets aufteilen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen der Aufgaben in diesem Dokument benötigen:
-
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-Nutzer (
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 derbigframes.ml.preprocessing-Modul und diebigframes.ml.compose-Modul 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.Wenn Sie Features standardisieren möchten, indem Sie jedes Feature auf den Bereich
[0, 1]skalieren, verwenden Sie dieMinMaxScaler-Klasse im Modulbigframes.ml.preprocessing.Verwenden Sie die
StandardScaler-Klasse im Modulbigframes.ml.preprocessing, um Merkmale 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 Estimatoren zum Trainieren von Modellen in BigQuery DataFrames erstellen.
Clustering-Modelle
Mit dem Modul bigframes.ml.cluster können Sie Estimators für Clustering-Modelle erstellen.
Verwenden Sie die KMeans-Klasse, um K-Means-Clustering-Modelle zu erstellen. Verwenden Sie diese Modelle für die Datensegmentierung. Beispiel: Identifizierung von Kundensegmenten. Da K-Means eine unbeaufsichtigte Lernmethode 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 Modul bigframes.ml.decomposition können Sie Estimators für Zerlegungsmodelle erstellen.
Verwenden Sie die PCA-Klasse, 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. Durch die Verwendung der Klasse PCA wird die Dimensionalität reduziert, 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 Estimators für Ensemble-Modelle erstellen.
Verwenden Sie die
RandomForestClassifier-Klasse, um Random Forest-Klassifikatormodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsmethoden 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 Estimators für Prognosemodelle erstellen.
Verwenden Sie die ARIMAPlus-Klasse, um Zeitreihenprognosemodelle zu erstellen.
Importierte Modelle
Mit dem Modul bigframes.ml.imported 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 die
TensorFlowModel-Klasse, um ein TensorFlow-Modell zu importieren.Verwenden Sie die
XGBoostModel-Klasse, um XGBoostModel-Modelle zu importieren.
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 Vorhersage des Umsatzes 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
- Erstellen und wenden Sie ein Regressionsmodell vom Typ bigframes.ml.LinearRegression an.
Large Language Models
Mit dem bigframes.ml.llm-Modul können Sie Estimatoren für LLMs erstellen.
Verwenden Sie die
GeminiTextGenerator-Klasse, um Gemini-Textgeneratormodelle zu erstellen. Verwenden Sie diese Modelle für Aufgaben zur Textgenerierung.Verwenden Sie das Modul
bigframes.ml.llm, um Estimators für Remote-Großsprachmodelle (LLMs) zu 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-Remote-Modelle für maschinelles Lernen verwenden, benötigen Sie die Rolle „Project IAM Admin“ (roles/resourcemanager.projectIamAdmin), wenn Sie eine BigQuery-Standardverbindung verwenden, oder die Rolle „Browser“ (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 Ort erstellt.
- Wenn Sie BigQuery DataFrames-Remote-Modelle für ML verwenden, hat das Dienstkonto die Vertex AI-Nutzerrolle (
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 des Namens 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 wurde die Rolle „Vertex AI-Nutzer“ (roles/aiplatform.user) für das Projekt zugewiesen.
Pipelines erstellen
Sie können ML-Pipelines mit dem bigframes.ml.pipeline-Modul 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:
Um die Daten in Trainings- und Test-Datasets (Evaluierungs-Datasets) aufzuteilen, wie im folgenden Codebeispiel gezeigt, verwenden Sie die
train_test_split-Funktion: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 Trainings- und Testsätze für das Trainieren und Evaluieren 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 setsWenn Sie automatisch Trainings- und Testsätze mit mehreren Faltungen erstellen, das Modell trainieren und bewerten und das Ergebnis jeder Faltung abrufen möchten, wie im folgenden Codebeispiel gezeigt, verwenden Sie die Funktion
cross_validate:scores = cross_validate(model, X, y, cv=5)
Nächste Schritte
- Datentypsystem von BigQuery DataFrames
- Informationen zum Generieren von BigQuery DataFrames-Code mit Gemini
- Informationen zum Analysieren von Paketdownloads von PyPI mit BigQuery DataFrames
- Quellcode, Beispiel-Notebooks und Beispiele für BigQuery DataFrames finden Sie auf GitHub.
- Referenz zur BigQuery DataFrames API