ML und KI mit BigQuery DataFrames verwenden
BigQuery DataFrames bietet ML- und KI-Funktionen für BigQuery DataFrames mit der bigframes.ml-Bibliothek.
Sie können Daten vorverarbeiten, Estimatoren erstellen, um Modelle in BigQuery DataFrames zu trainieren, 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:
-
Remotemodelle oder KI-Funktionen verwenden:
BigQuery Connection Admin (
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 Object Viewer (
roles/storage.objectViewer)
-
BigQuery Data Editor (
-
BigQuery DataFrames ML-Remotemodelle verwenden:
BigQuery Connection Admin (
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-Standorte
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) durch
Verwendung des
bigframes.ml.preprocessing Moduls
und des
bigframes.ml.compose Moduls vorzubereiten.
BigQuery DataFrames bietet die folgenden Transformationen:
Verwenden Sie die
KBinsDiscretizerKlasse imbigframes.ml.preprocessingModul, um kontinuierliche Daten in Intervalle zu bündeln.Verwenden Sie die
LabelEncoderKlasse imbigframes.ml.preprocessingModul, um die Ziellabels als Ganzzahlwerte zu normalisieren.Verwenden Sie die
MaxAbsScalerKlasse imbigframes.ml.preprocessingModul, um jedes Feature um seinen maximalen absoluten Wert auf den Bereich[-1, 1]zu skalieren.Verwenden Sie die
MinMaxScalerKlasse imbigframes.ml.preprocessingModul, um Features zu standardisieren, indem Sie jedes Feature auf den Bereich[0, 1], skalieren.Verwenden Sie die
StandardScalerKlasse imbigframes.ml.preprocessingModul, um Merkmale zu standardisieren. Dazu entfernen Sie den Mittelwert und die Skalierung auf die Einheitsvarianz.Verwenden Sie die
OneHotEncoderKlasse imbigframes.ml.preprocessingModul, um kategoriale Werte in ein numerisches Format umzuwandeln.Verwenden Sie die
ColumnTransformerKlasse imbigframes.ml.composeModul, um Transformer auf DataFrames-Spalten anzuwenden.
Modelle trainieren
Sie können Estimatoren erstellen, um Modelle in BigQuery DataFrames zu trainieren.
Clustering-Modelle
Sie können Estimatoren für Clustering-Modelle mit dem
bigframes.ml.cluster Modul 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 Estimatoren 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
Sie können Estimatoren für Zerlegungsmodelle mit dem
bigframes.ml.decomposition Modul 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. Mit 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
Sie können Estimatoren für Ensemble-Modelle mit dem
bigframes.ml.ensemble Modul erstellen.
Verwenden Sie die
RandomForestClassifierKlasse, um Random Forest-Klassifikatormodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsbäume für Lernmethoden zur Klassifizierung zu erstellen.Verwenden Sie die
RandomForestRegressorKlasse, 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
XGBClassifierKlasse, um Gradienten-Boosted Tree-Klassifikatormodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsbäume für Lernmethoden zur Klassifizierung additiv zu erstellen.Verwenden Sie die
XGBRegressorKlasse, um Gradienten-Boosting-Baum-Regressionsmodelle zu erstellen. Verwenden Sie diese Modelle, um mehrere Entscheidungsbäume für Lernmethoden für die Regression additiv zu erstellen.
Prognosemodelle
Sie können Estimatoren für Prognosemodelle mit dem
bigframes.ml.forecasting Modul erstellen.
Verwenden Sie die
ARIMAPlus Klasse, um Zeitreihenprognosemodelle zu erstellen.
Importierte Modelle
Sie können Estimatoren für importierte Modelle mit dem
bigframes.ml.imported Modul erstellen.
Verwenden Sie die
ONNXModelKlasse, um ONNX-Modelle (Open Neural Network Exchange) zu importieren.Verwenden Sie die
TensorFlowModelKlasse, um TensorFlow-Modelle zu importieren.Verwenden Sie die
XGBoostModelKlasse, um XGBoostModel-Modelle zu importieren.
Lineare Modelle
Erstellen Sie Estimatoren für lineare Modelle mit dem
bigframes.ml.linear_model Modul.
Verwenden Sie die
LinearRegressionKlasse, um lineare Regressionsmodelle zu erstellen. Verwenden Sie diese Modelle für Prognosen, z. B. für Umsatzprognosen für einen Artikel an einem bestimmten Tag.Verwenden Sie die
LogisticRegressionKlasse, 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 die Verwendung von bigframes.ml für folgende Aufgaben:
- Daten aus BigQuery laden.
- Trainingsdaten bereinigen und vorbereiten.
- Ein Regressionsmodell vom Typ bigframes.ml.LinearRegression erstellen und anwenden.
Large Language Models
Sie können Estimatoren für LLMs mithilfe des
bigframes.ml.llm Moduls erstellen.
Verwenden Sie die
GeminiTextGeneratorKlasse, um Gemini-Textgeneratormodelle zu erstellen. Verwenden Sie diese Modelle für Aufgaben zur Textgenerierung.Mit dem
bigframes.ml.llmModul können Sie Estimatoren für Remote-Large Language Models (LLMs) erstellen.
Das folgende Codebeispiel zeigt die Verwendung der bigframes.ml.llm
GeminiTextGenerator
Klasse zum Erstellen eines Gemini-Modells für die Codegenerierung:
Remotemodelle
Um BigQuery DataFrames ML-Remotemodelle (bigframes.ml.remote oder bigframes.ml.llm) zu verwenden, müssen Sie die folgenden APIs aktivieren:
Wenn Sie BigQuery DataFrames ML-Remotemodelle verwenden, benötigen Sie die
Rolle „Projekt-IAM-Administrator“ (roles/resourcemanager.projectIamAdmin)
wenn Sie eine standardmäßige BigQuery-Verbindung 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 (standardmäßig 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-Remotemodelle verwenden, hat das Dienstkonto die Rolle „Vertex AI-Nutzer“ (
roles/aiplatform.user) für das Projekt.
Durch das Erstellen eines Remotemodells 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 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
Pipeline Klasse, um eine Pipeline von Transformationen mit einem endgültigen Estimator zu erstellen.
Modelle auswählen
Verwenden Sie das
bigframes.ml.model_selection Modul
Modul, um Ihre Trainings- und Test-Datasets aufzuteilen und die besten Modelle auszuwählen:
Verwenden Sie die
train_test_splitFunktion, um die Daten in Trainings- und Test-Datasets (Evaluierungs-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 Trainings- und Test-Datasets mit mehreren Faltungen zu erstellen, um Modelle zu trainieren und zu bewerten, 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 Funktion
cross_validate, um automatisch Trainings- und Test-Datasets mit mehreren Faltungen zu erstellen, das Modell zu trainieren und zu bewerten und das Ergebnis jeder Faltung zu erhalten, wie im folgenden Codebeispiel gezeigt:scores = cross_validate(model, X, y, cv=5)
Nächste Schritte
- Informationen zum Datentypsystem von BigQuery DataFrames.
- BigQuery DataFrames-Code mit Gemini generieren .
- Paketdownloads von PyPI mit BigQuery DataFrames analysieren .
- BigQuery DataFrames Quellcode, Beispiel-Notebooks und Beispiele auf GitHub ansehen.
- Referenz zur BigQuery DataFrames API