Auf dieser Seite erfahren Sie, wie Sie mithilfe der Google Cloud Console oder der Vertex AI API eine Klassifizierung oder Regression aus einem tabellarischen Dataset trainieren.
Vorbereitung
Bevor Sie ein Modell trainieren können, müssen Sie die folgenden Schritte ausführen:
Modell trainieren
Google Cloud Console
Rufen Sie in der Google Cloud Console im Abschnitt "Vertex AI" die Seite Datasets auf.
Klicken Sie auf den Namen des Datasets, das Sie zum Trainieren Ihres Modells verwenden möchten, um dessen Detailseite zu öffnen.
Wenn Ihr Datentyp Annotationssätze verwendet, wählen Sie den Annotationssatz aus, den Sie für dieses Modell verwenden möchten.
Klicken Sie auf Neues Modell trainieren.
Wählen Sie Sonstiges aus.
Führen Sie im Fenster Neues Modell trainieren die folgenden Schritte aus:
Wählen Sie die Modelltrainingsmethode aus.
AutoML
ist eine gute Wahl für eine Vielzahl von Anwendungsfällen.
Klicken Sie auf Weiter.
Geben Sie den Anzeigenamen für das neue Modell ein.
Wählen Sie die Zielspalte aus.
Die Zielspalte ist der Wert, den das Modell vorhersagt.
Optional: Markieren Sie Test-Dataset nach BigQuery exportieren und geben Sie den Namen der Tabelle an, um Ihr Test-Dataset nach BigQuery zu exportieren.
Optional: Öffnen Sie die Erweiterten Optionen, um auszuwählen, wie die Daten zwischen Trainings-, Test- und Validierungs-Datasets aufgeteilt werden sollen. Sie können zwischen den folgenden Optionen für die Datenaufteilung wählen:
- Zufällig (Standard): Vertex AI wählt nach dem Zufallsprinzip die Zeilen aus, die mit den einzelnen Datasets verknüpft sind. Standardmäßig wählt Vertex AI 80 % Ihrer Datenzeilen für das Trainings-Dataset, 10 % für das Validierungs-Dataset und 10 % für das Test-Dataset aus.
- Manuell: Vertex AI wählt Datenzeilen für jedes Dataset anhand der Werte in einer Spalte für die Datenaufteilung aus. Geben Sie den Namen der Spalte für die Datenaufteilung an.
- Chronologisch: Vertex AI teilt Daten basierend auf dem Zeitstempel in einer Zeitspalte auf. Geben Sie den Namen der Zeitspalte an.
Klicken Sie auf Weiter.
Optional: Klicken Sie auf Statistiken generieren. Durch das Generieren von Statistiken werden die Drop-down-Menüs Transformation ausgefüllt.
Prüfen Sie auf der Seite „Trainingsoptionen“ Ihre Spaltenliste und schließen Sie alle Spalten aus dem Training aus, die nicht zum Trainieren des Modells verwendet werden sollen.
Prüfen Sie die für Ihre eingeschlossenen Features ausgewählten Transformationen und ob ungültige Daten zulässig sind, und nehmen Sie ggf. Aktualisierungen vor.
Weitere Informationen zu Transformationen und ungültigen Daten.
Wenn Sie eine Gewichtungsspalte angeben oder das Standardoptimierungsziel ändern möchten, öffnen Sie Erweiterte Optionen und treffen Sie Ihre Auswahl.
Weitere Informationen finden Sie unter Gewichtungsspalten und Optimierungsziele.
Klicken Sie auf Weiter.
Konfigurieren Sie auf der Seite Computing und Preise Folgendes:
Geben Sie an, wie viele Stunden das Modell maximal trainiert werden soll.
Mit dieser Einstellung können Sie die Trainingskosten begrenzen. Die tatsächlich benötigte Zeit kann aber länger sein als dieser Wert, da auch noch andere Vorgänge am Erstellen eines neuen Modells beteiligt sind.
Die empfohlene Trainingszeit hängt von der Größe der Trainingsdaten ab. Die folgende Tabelle zeigt die empfohlene Trainingszeit nach Zeilenanzahl. Eine große Anzahl von Spalten erhöht auch die Trainingszeit.
Zeilen Vorgeschlagene Trainingszeit Unter 100.000 1–3 Stunden 100.000–1.000.000 1–6 Stunden 1.000.000–10.000.000 1–12 Stunden Über 10.000.000 3–24 Stunden Klicken Sie auf START TRAINING (Training starten).
Das Modelltraining kann viele Stunden dauern, je nach Größe und Komplexität Ihrer Daten und Ihres Trainingsbudgets, sofern Sie eines angegeben haben. Sie können diesen Tab schließen und später zu ihm zurückkehren. Wenn das Training für Ihr Modell abgeschlossen ist, erhalten eine E-Mail.
API
Wählen Sie ein tabellarisches Datentypziel aus.
Klassifizierung
Wählen Sie einen Tab für Ihre Sprache oder Ihre Umgebung aus:
REST
Sie verwenden den Befehl trainingPipelines.create, um ein Modell zu trainieren.
Modell trainieren
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Ihre Projekt-ID.
- TRAININGPIPELINE_DISPLAY_NAME: Anzeigename für die Trainingspipeline, die für diesen Vorgang erstellt wurde.
- TARGET_COLUMN: Die Spalte (Wert), für die das Modell Vorhersagen treffen soll.
- WEIGHT_COLUMN: (Optional) Die Gewichtungsspalte. Weitere Informationen
- TRAINING_BUDGET: Die maximale Zeit, die das Modell trainiert werden soll, in Milli-Knotenstunden (1.000 Milli-Knotenstunden entsprechen einer Knotenstunde).
- OPTIMIZATION_OBJECTIVE: Nur erforderlich, wenn Sie das standardmäßige Optimierungsziel für Ihren Vorhersagetyp nicht verwenden möchten. Weitere Informationen
- TRANSFORMATION_TYPE: Der Transformationstyp wird für jede Spalte bereitgestellt, die zum Trainieren des Modells verwendet wird. Weitere Informationen
- COLUMN_NAME: Der Name der Spalte mit dem angegebenen Transformationstyp. Jede Spalte, die zum Trainieren des Modells verwendet wird, muss angegeben werden.
- MODEL_DISPLAY_NAME: Anzeigename für das neu trainierte Modell.
- DATASET_ID: ID für das Trainings-Dataset.
-
Sie können ein
Split
-Objekt zur Steuerung Ihrer Datenaufteilung bereitstellen. Weitere Informationen zur Datenaufteilung finden Sie unter Datenaufteilung mit REST steuern. - PROJECT_NUMBER: Die automatisch generierte Projektnummer Ihres Projekts.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
JSON-Text anfordern:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "classification", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Regression
Wählen Sie einen Tab für Ihre Sprache oder Ihre Umgebung aus:
REST
Sie verwenden den Befehl trainingPipelines.create, um ein Modell zu trainieren.
Modell trainieren
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Ihre Region.
- PROJECT: Ihre Projekt-ID.
- TRAININGPIPELINE_DISPLAY_NAME: Anzeigename für die Trainingspipeline, die für diesen Vorgang erstellt wurde.
- TARGET_COLUMN: Die Spalte (Wert), für die das Modell Vorhersagen treffen soll.
- WEIGHT_COLUMN: (Optional) Die Gewichtungsspalte. Weitere Informationen
- TRAINING_BUDGET: Die maximale Zeit, die das Modell trainiert werden soll, in Milli-Knotenstunden (1.000 Milli-Knotenstunden entsprechen einer Knotenstunde).
- OPTIMIZATION_OBJECTIVE: Nur erforderlich, wenn Sie das standardmäßige Optimierungsziel für Ihren Vorhersagetyp nicht verwenden möchten. Weitere Informationen
- TRANSFORMATION_TYPE: Der Transformationstyp wird für jede Spalte bereitgestellt, die zum Trainieren des Modells verwendet wird. Weitere Informationen
- COLUMN_NAME: Der Name der Spalte mit dem angegebenen Transformationstyp. Jede Spalte, die zum Trainieren des Modells verwendet wird, muss angegeben werden.
- MODEL_DISPLAY_NAME: Anzeigename für das neu trainierte Modell.
- DATASET_ID: ID für das Trainings-Dataset.
-
Sie können ein
Split
-Objekt zur Steuerung Ihrer Datenaufteilung bereitstellen. Weitere Informationen zur Datenaufteilung finden Sie unter Datenaufteilung mit REST steuern. - PROJECT_NUMBER: Die automatisch generierte Projektnummer Ihres Projekts.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
JSON-Text anfordern:
{ "displayName": "TRAININGPIPELINE_DISPLAY_NAME", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "trainingTaskInputs": { "targetColumn": "TARGET_COLUMN", "weightColumn": "WEIGHT_COLUMN", "predictionType": "regression", "trainBudgetMilliNodeHours": TRAINING_BUDGET, "optimizationObjective": "OPTIMIZATION_OBJECTIVE", "transformations": [ {"TRANSFORMATION_TYPE_1": {"column_name" : "COLUMN_NAME_1"} }, {"TRANSFORMATION_TYPE_2": {"column_name" : "COLUMN_NAME_2"} }, ... }, "modelToUpload": {"displayName": "MODEL_DISPLAY_NAME"}, "inputDataConfig": { "datasetId": "DATASET_ID", } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "name": "projects/PROJECT_NUMBER/locations/us-central1/trainingPipelines/4567", "displayName": "myModelName", "trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_tabular_1.0.0.yaml", "modelToUpload": { "displayName": "myModelName" }, "state": "PIPELINE_STATE_PENDING", "createTime": "2020-08-18T01:22:57.479336Z", "updateTime": "2020-08-18T01:22:57.479336Z" }
Java
Bevor Sie dieses Beispiel anwenden, folgen Sie den Java-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Java API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Node.js
Bevor Sie dieses Beispiel anwenden, folgen Sie den Node.js-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Node.js API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Referenzdokumentation zur Python API.
Datenaufteilung mit REST steuern
Sie können steuern, wie Ihre Trainingsdaten auf die Trainings-, Validierungs- und Test-Datasets aufgeteilt werden. Wenn Sie die Vertex AI API verwenden, nutzen Sie das Objekt Split
, um Ihre Datenaufteilung anzugeben. Das Split
-Objekt kann als einer von mehreren Objekttypen in das inputDataConfig
-Objekt aufgenommen werden. Jedes Objekt bietet eine andere Möglichkeit zur Aufteilung der Trainingsdaten.
Welche Methoden zum Aufteilen Ihrer Daten verwendet werden können, hängt vom Datentyp ab:
FractionSplit
:- TRAINING_FRACTION: Der Anteil der Trainingsdaten, die für das Trainings-Dataset verwendet werden sollen.
- VALIDATION_FRACTION: Der Anteil der Trainingsdaten, die für das Validierungs-Dataset verwendet werden sollen.
- TEST_FRACTION: Der Anteil der Trainingsdaten, die für das Trainings-Dataset verwendet werden sollen.
Wenn Bruchzahlen angegeben werden, müssen alle angegeben werden. Die Bruchwerte müssen zusammengenommen 1,0 ergeben. Weitere Informationen.
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION },
PredefinedSplit
:- DATA_SPLIT_COLUMN: die Spalte mit den Datenaufteilungswerten (
TRAIN
,VALIDATION
,TEST
).
Geben Sie die Datenaufteilung für jede Zeile manuell mithilfe einer geteilten Spalte an. Weitere Informationen.
"predefinedSplit": { "key": DATA_SPLIT_COLUMN },
- DATA_SPLIT_COLUMN: die Spalte mit den Datenaufteilungswerten (
TimestampSplit
:- TRAINING_FRACTION: Der Prozentsatz der Trainingsdaten, die für das Trainings-Dataset verwendet werden sollen. Der Standardfaktor ist 0,80.
- VALIDATION_FRACTION: Der Prozentsatz der Trainingsdaten, die für das Validierungs-Dataset verwendet werden sollen. Der Standardwert ist 0,10.
- TEST_FRACTION: Der Prozentsatz der Trainingsdaten, die für das Test-Dataset verwendet werden sollen. Der Standardwert ist 0,10.
- TIME_COLUMN: Die Spalte mit den Zeitstempeln.
Wenn Bruchzahlen angegeben werden, müssen alle angegeben werden. Die Bruchwerte müssen zusammengenommen 1,0 ergeben. Weitere Informationen.
"timestampSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION, "key": TIME_COLUMN }
Optimierungsziele für Klassifizierungs- oder Regressionsmodelle
Wenn Sie ein Modell trainieren, wählt Vertex AI ein Standardoptimierungsziel basierend auf Ihrem Modelltyp und dem für die Zielspalte verwendeten Datentyp aus.
Klassifikationsmodelle eignen sich am besten für:Optimierungsziel | API-Wert | Zweck |
---|---|---|
AUC ROC | maximize-au-roc |
Den Bereich unter der Grenzwertoptimierungskurve (Receiver Operating Curve, ROC) maximieren. Sie können zwischen Klassen unterscheiden. Standardwert für die binäre Klassifizierung. |
Logarithmischer Verlust | minimize-log-loss |
Möglichst genaue Vorhersagewahrscheinlichkeiten erzielen. Nur unterstütztes Ziel für die Klassifizierung mehrerer Klassen. |
AUC PR | maximize-au-prc |
Den Bereich unter der Genauigkeits-/Trefferquotenkurve maximieren. Optimiert die Ergebnisse für Vorhersagen für die weniger gängige Klasse. |
Präzision von Trefferquote | maximize-precision-at-recall |
Optimieren Sie die Präzision bei einem bestimmten Trefferquotenwert. |
Trefferquote von Präzision | maximize-recall-at-precision |
Optimieren Sie die Trefferquote bei einem bestimmten Präzisionswert. |
Optimierungsziel | API-Wert | Zweck |
---|---|---|
RMSE | minimize-rmse |
Wurzel des mittleren quadratischen Fehlers (RMSE) minimieren. Mehr Extremwerte genau erfassen. Standardwert. |
MAE | minimize-mae |
Mittleren absoluten Fehler (MAE) minimieren. Extremwerte als Ausreißer mit geringerem Einfluss auf das Modell ansehen. |
RMSLE | minimize-rmsle |
Wurzel des mittleren quadratischen Logfehlers (RMSLE) minimieren. Abzüge für Fehler nach der relativen Größe statt des absoluten Werts vornehmen. Dies ist hilfreich, wenn sowohl die vorhergesagten als auch die tatsächlichen Werte sehr groß werden können. |