Batchvorhersagen

Auf dieser Seite wird beschrieben, wie Sie mehrere Datenzeilen gleichzeitig für AutoML Tables bereitstellen und eine Vorhersage für jede Zeile erhalten können.

Einleitung

Nachdem Sie ein Modell erstellt haben, können Sie mit der Methode batchPredict eine asynchrone Anfrage für ein Vorhersagebatch ausführen. Sie liefern Eingabedaten im Tabellenformat an die Methode batchPredict. Jede Zeile enthält Werte für die Features, für die Sie das Modell trainiert haben. Die Methode batchPredict sendet diese Daten an das Modell und gibt Vorhersagen für jede Datenzeile zurück.

Modelle müssen alle sechs Monate neu trainiert werden, damit sie weiterhin Vorhersagen bereitstellen können.

Batchvorhersagen anfordern

Für Batchvorhersagen geben Sie eine Datenquelle und einen Zielspeicherort für die Ergebnisse in einer BigQuery-Tabelle oder einer CSV-Datei in Cloud Storage an. Sie müssen nicht dieselbe Technologie für die Quelle und das Ziel verwenden. Sie können beispielsweise BigQuery für die Datenquelle und eine CSV-Datei in Cloud Storage als Ziel für die Ergebnisse verwenden. Führen Sie je nach Ihren Anforderungen die entsprechenden Schritte aus den beiden folgenden Aufgaben aus.

Ihre Datenquelle muss tabellarische Daten enthalten, die alle Spalten umfassen, die zum Trainieren des Modells verwendet wurden. Sie können Spalten einfügen, die nicht in den Trainingsdaten enthalten waren, oder in den Trainingsdaten enthalten waren, aber nicht für Schulungen verwendet werden. Diese zusätzlichen Spalten sind in der Vorhersageausgabe enthalten, werden jedoch nicht für die Generierung der Vorhersage verwendet.

BigQuery-Tabellen verwenden

Die Namen der Spalten und Datentypen der Eingabedaten müssen mit den Daten übereinstimmen, die Sie in den Trainingsdaten verwendet haben. Die Spalten müssen nicht in derselben Reihenfolge wie die Trainingsdaten angeordnet sein.

Anforderungen an BigQuery-Tabellen

  • BigQuery-Datenquellentabellen dürfen nicht größer als 100 GB sein.
  • Sie müssen ein multiregionales BigQuery-Dataset am Standort US oder EU verwenden.
  • Wenn sich die Tabelle in einem anderen Projekt befindet, müssen Sie dem AutoML Tables-Dienstkonto in diesem Projekt die Rolle BigQuery Data Editor zuweisen. Weitere Informationen

Batchvorhersage wird angefordert

Console

  1. Rufen Sie in der Google Cloud Console die Seite „AutoML Tables“ auf.

    Zur Seite "AutoML Tables"

  2. Wählen Sie Models (Modelle) aus und öffnen Sie das Modell, das Sie verwenden möchten.

  3. Wählen Sie den Tab Test und Nutzung aus.

  4. Klicken Sie auf Batch prediction (Batchvorhersage).

  5. Wählen Sie für das Input Dataset (Eingabe-Dataset) Table from BigQuery (Tabelle aus BigQuery) aus und geben Sie die Projekt-, Dataset- und Tabellen-IDs für die Datenquelle an.

  6. Wählen Sie unter Result (Ergebnis) die Option BigQuery project (BigQuery-Projekt) aus und geben Sie die Projekt-ID für das Ergebnisziel an.

  7. Wenn Sie sehen möchten, wie sich die einzelnen Features auf die Vorhersage auswirken, wählen Sie Merkmalwichtigkeit erstellen aus.

    Das Erstellen einer Merkmalwichtigkeit erhöht die für Ihre Vorhersage erforderlichen Zeit- und Rechenressourcen. Die lokale Merkmalwichtigkeit ist bei einem Ergebnisziel von Cloud Storage nicht verfügbar.

  8. Klicken Sie auf Send batch prediction (Batchvorhersage senden), um die Batchvorhersage anzufordern.

    Batchvorhersageseite für AutoML-Tabellen

REST

Sie können Batchvorhersagen mit der Methode models.batchPredict anfragen.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • endpoint: automl.googleapis.com für den globalen Standort und eu-automl.googleapis.com für die EU-Region.
  • project-id ist Ihre Google Cloud-Projekt-ID.
  • location: Der Standort für die Ressource: us-central1 für global oder eu für die EU.
  • model-id: Die ID des Modells. Beispiel: TBL543.
  • dataset-id: die ID des BigQuery-Datasets, in dem sich die Vorhersagedaten befinden.
  • table-id: Die ID der BigQuery-Tabelle, in der sich die Vorhersagedaten befinden.

    AutoML Tables erstellt einen Unterordner für die Vorhersageergebnisse mit dem Namen prediction-<model_name>-<timestamp> in project-id.dataset-id.table-id.

HTTP-Methode und URL:

POST https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict

JSON-Text der Anfrage:

{
  "inputConfig": {
    "bigquerySource": {
      "inputUri": "bq://project-id.dataset-id.table-id"
    },
  },
  "outputConfig": {
    "bigqueryDestination": {
      "outputUri": "bq://project-id"
    },
  },
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict" | Select-Object -Expand Content
Die Batchvorhersage ist ein Vorgang mit langer Ausführungszeit. Sie können den Vorgangsstatus abfragen oder warten, bis der Vorgang beendet ist. Weitere Informationen

Sie können die lokale Merkmalwichtigkeit erhöhen, indem Sie den Parameter feature_importance zu den Anfragedaten hinzufügen. Weitere Informationen finden Sie unter lokale Merkmalwichtigkeit.

Java

Wenn sich Ihre Ressourcen in der EU-Region befinden, müssen Sie den Endpunkt explizit festlegen. Weitere Informationen

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1beta1.BatchPredictInputConfig;
import com.google.cloud.automl.v1beta1.BatchPredictOutputConfig;
import com.google.cloud.automl.v1beta1.BatchPredictRequest;
import com.google.cloud.automl.v1beta1.BatchPredictResult;
import com.google.cloud.automl.v1beta1.BigQueryDestination;
import com.google.cloud.automl.v1beta1.BigQuerySource;
import com.google.cloud.automl.v1beta1.ModelName;
import com.google.cloud.automl.v1beta1.OperationMetadata;
import com.google.cloud.automl.v1beta1.PredictionServiceClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

abstract class TablesBatchPredictBigQuery {

  static void batchPredict() throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    String inputUri = "bq://YOUR_PROJECT_ID.bqDatasetID.bqTableId";
    String outputUri = "bq://YOUR_PROJECT_ID";
    batchPredict(projectId, modelId, inputUri, outputUri);
  }

  static void batchPredict(String projectId, String modelId, String inputUri, String outputUri)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (PredictionServiceClient client = PredictionServiceClient.create()) {
      // Get the full path of the model.
      ModelName name = ModelName.of(projectId, "us-central1", modelId);

      // Configure the source of the file from BigQuery
      BigQuerySource bigQuerySource = BigQuerySource.newBuilder().setInputUri(inputUri).build();
      BatchPredictInputConfig inputConfig =
          BatchPredictInputConfig.newBuilder().setBigquerySource(bigQuerySource).build();

      // Configure where to store the output in BigQuery
      BigQueryDestination bigQueryDestination =
          BigQueryDestination.newBuilder().setOutputUri(outputUri).build();
      BatchPredictOutputConfig outputConfig =
          BatchPredictOutputConfig.newBuilder().setBigqueryDestination(bigQueryDestination).build();

      // Build the request that will be sent to the API
      BatchPredictRequest request =
          BatchPredictRequest.newBuilder()
              .setName(name.toString())
              .setInputConfig(inputConfig)
              .setOutputConfig(outputConfig)
              .build();

      // Start an asynchronous request
      OperationFuture<BatchPredictResult, OperationMetadata> future =
          client.batchPredictAsync(request);

      System.out.println("Waiting for operation to complete...");
      future.get();
      System.out.println("Batch Prediction results saved to BigQuery.");
    }
  }
}

Node.js

Wenn sich Ihre Ressourcen in der EU-Region befinden, müssen Sie den Endpunkt explizit festlegen. Weitere Informationen


/**
 * Demonstrates using the AutoML client to request prediction from
 * automl tables using bigQuery.
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = '[PROJECT_ID]' e.g., "my-gcloud-project";
// const computeRegion = '[REGION_NAME]' e.g., "us-central1";
// const modelId = '[MODEL_ID]' e.g., "TBL4704590352927948800";
// const inputUri = '[BIGQUERY_PATH]'
// e.g., "bq://<project_id>.<dataset_id>.<table_id>",
// `The Big Query URI containing the inputs`;
// const outputUri = '[BIGQUERY_PATH]' e.g., "bq://<project_id>",
// `The destination Big Query URI for storing outputs`;

const automl = require('@google-cloud/automl');

// Create client for prediction service.
const automlClient = new automl.v1beta1.PredictionServiceClient();

// Get the full path of the model.
const modelFullId = automlClient.modelPath(projectId, computeRegion, modelId);

async function batchPredict() {
  // Construct request
  // Get the Big Query input URI.
  const inputConfig = {
    bigquerySource: {
      inputUri: inputUri,
    },
  };

  // Get the Big Query output URI.
  const outputConfig = {
    bigqueryDestination: {
      outputUri: outputUri,
    },
  };

  const [, operation] = await automlClient.batchPredict({
    name: modelFullId,
    inputConfig: inputConfig,
    outputConfig: outputConfig,
  });

  // Get the latest state of long-running operation.
  console.log(`Operation name: ${operation.name}`);
}

batchPredict();

Python

Die Clientbibliothek für AutoML Tables enthält zusätzliche Python-Methoden, die die Verwendung der AutoML Tables API vereinfachen. Diese Methoden verweisen auf Datasets und Modelle anhand des Namens und nicht der ID. Dataset- und Modellnamen dürfen nur einmal vorkommen. Weitere Informationen finden Sie in der Kundenreferenz.

Wenn sich Ihre Ressourcen in der EU-Region befinden, müssen Sie den Endpunkt explizit festlegen. Weitere Informationen

# TODO(developer): Uncomment and set the following variables
# project_id = 'PROJECT_ID_HERE'
# compute_region = 'COMPUTE_REGION_HERE'
# model_display_name = 'MODEL_DISPLAY_NAME_HERE'
# bq_input_uri = 'bq://my-project.my-dataset.my-table'
# bq_output_uri = 'bq://my-project'
# params = {}

from google.cloud import automl_v1beta1 as automl

client = automl.TablesClient(project=project_id, region=compute_region)

# Query model
response = client.batch_predict(
    bigquery_input_uri=bq_input_uri,
    bigquery_output_uri=bq_output_uri,
    model_display_name=model_display_name,
    params=params,
)
print("Making batch prediction... ")
# `response` is a async operation descriptor,
# you can register a callback for the operation to complete via `add_done_callback`:
# def callback(operation_future):
#   result = operation_future.result()
# response.add_done_callback(callback)
#
# or block the thread polling for the operation's results:
response.result()
# AutoML puts predictions in a newly generated dataset with a name by a mask "prediction_" + model_id + "_" + timestamp
# here's how to get the dataset name:
dataset_name = (
    response.metadata.batch_predict_details.output_info.bigquery_output_dataset
)

print(
    "Batch prediction complete.\nResults are in '{}' dataset.\n{}".format(
        dataset_name, response.metadata
    )
)

CSV-Dateien in Cloud Storage verwenden

Die Namen der Spalten und Datentypen der Eingabedaten müssen mit den Daten übereinstimmen, die Sie in den Trainingsdaten verwendet haben. Die Spalten müssen nicht in derselben Reihenfolge wie die Trainingsdaten angeordnet sein.

CSV-Dateianforderungen

  • Die erste Zeile der Datenquelle muss den Namen der Spalten enthalten.
  • Jede Datenquellendatei darf nicht größer als 10 GB sein.

    Sie können mehrere Dateien mit einer Gesamtgröße von maximal 100 GB importieren.

  • Der Cloud Storage-Bucket muss den Bucket-Anforderungen entsprechen.

  • Befindet sich der Cloud Storage-Bucket in einem anderen Projekt als dem, in dem Sie AutoML Tables verwenden, müssen Sie dem AutoML Tables-Dienstkonto in diesem Projekt die Rolle Storage Object Creator zuweisen. Weitere Informationen

Console

  1. Rufen Sie in der Google Cloud Console die Seite „AutoML Tables“ auf.

    Zur Seite "AutoML Tables"

  2. Wählen Sie Models (Modelle) aus und öffnen Sie das Modell, das Sie verwenden möchten.

  3. Wählen Sie den Tab Test und Nutzung aus.

  4. Klicken Sie auf Batch prediction (Batchvorhersage).

  5. Wählen Sie für Eingabe-Dataset die Option CSV-Dateien aus Cloud Storage aus und geben Sie den Bucket-URI für die Datenquelle an.

  6. Wählen Sie unter Result (Ergebnis) Cloud Storage bucket (Cloud Storage-Bucket) aus und geben Sie den Bucket-URI für den Ziel-Bucket ein.

  7. Wenn Sie sehen möchten, wie sich die einzelnen Features auf die Vorhersage auswirken, wählen Sie Merkmalwichtigkeit erstellen aus.

    Das Erstellen einer Merkmalwichtigkeit erhöht die für Ihre Vorhersage erforderlichen Zeit- und Rechenressourcen. Die lokale Merkmalwichtigkeit ist bei einem Ergebnisziel von Cloud Storage nicht verfügbar.

  8. Klicken Sie auf Send batch prediction (Batchvorhersage senden), um die Batchvorhersage anzufordern.

    Batchvorhersageseite für AutoML-Tabellen

REST

Sie können Batchvorhersagen mit der Methode models.batchPredict anfragen.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • endpoint: automl.googleapis.com für den globalen Standort und eu-automl.googleapis.com für die EU-Region.
  • project-id ist Ihre Google Cloud-Projekt-ID.
  • location: Der Standort für die Ressource: us-central1 für global oder eu für die EU.
  • model-id: Die ID des Modells. Beispiel: TBL543.
  • input-bucket-name: Der Name des Cloud Storage-Buckets, in dem sich die Vorhersagedaten befinden.
  • input-directory-name: Der Name des Cloud Storage-Verzeichnisses, in dem sich die Vorhersagedaten befinden.
  • object-name: Der Name des Cloud Storage-Objekts, in dem sich die Vorhersagedaten befinden.
  • output-bucket-name: Der Name des Cloud Storage-Buckets für die Vorhersageergebnisse.
  • output-directory-name: Der Name des Cloud Storage-Verzeichnisses für die Vorhersageergebnisse.

    AutoML Tables erstellt in gs://output-bucket-name/output-directory-name einen Unterordner für die Vorhersageergebnisse mit dem Namen prediction-<model_name>-<timestamp>. Sie benötigen Schreibberechtigungen für diesen Pfad.

HTTP-Methode und URL:

POST https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict

JSON-Text der Anfrage:

{
  "inputConfig": {
    "gcsSource": {
      "inputUris": [
        "gs://input-bucket-name/input-directory-name/object-name.csv"
      ]
    },
  },
  "outputConfig": {
    "gcsDestination": {
      "outputUriPrefix": "gs://output-bucket-name/output-directory-name"
     },
  },
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://endpoint/v1beta1/projects/project-id/locations/location/models/model-id:batchPredict" | Select-Object -Expand Content
Die Batchvorhersage ist ein Vorgang mit langer Ausführungszeit. Sie können den Vorgangsstatus abfragen oder warten, bis der Vorgang beendet ist. Weitere Informationen

Sie können die lokale Merkmalwichtigkeit erhöhen, indem Sie den Parameter feature_importance zu den Anfragedaten hinzufügen. Weitere Informationen finden Sie unter lokale Merkmalwichtigkeit.

Java

Wenn sich Ihre Ressourcen in der EU-Region befinden, müssen Sie den Endpunkt explizit festlegen. Weitere Informationen

import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.automl.v1beta1.BatchPredictInputConfig;
import com.google.cloud.automl.v1beta1.BatchPredictOutputConfig;
import com.google.cloud.automl.v1beta1.BatchPredictRequest;
import com.google.cloud.automl.v1beta1.BatchPredictResult;
import com.google.cloud.automl.v1beta1.GcsDestination;
import com.google.cloud.automl.v1beta1.GcsSource;
import com.google.cloud.automl.v1beta1.ModelName;
import com.google.cloud.automl.v1beta1.OperationMetadata;
import com.google.cloud.automl.v1beta1.PredictionServiceClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

abstract class BatchPredict {

  static void batchPredict() throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String modelId = "YOUR_MODEL_ID";
    String inputUri = "gs://YOUR_BUCKET_ID/path_to_your_input_csv_or_jsonl";
    String outputUri = "gs://YOUR_BUCKET_ID/path_to_save_results/";
    batchPredict(projectId, modelId, inputUri, outputUri);
  }

  static void batchPredict(String projectId, String modelId, String inputUri, String outputUri)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (PredictionServiceClient client = PredictionServiceClient.create()) {
      // Get the full path of the model.
      ModelName name = ModelName.of(projectId, "us-central1", modelId);

      // Configure the source of the file from a GCS bucket
      GcsSource gcsSource = GcsSource.newBuilder().addInputUris(inputUri).build();
      BatchPredictInputConfig inputConfig =
          BatchPredictInputConfig.newBuilder().setGcsSource(gcsSource).build();

      // Configure where to store the output in a GCS bucket
      GcsDestination gcsDestination =
          GcsDestination.newBuilder().setOutputUriPrefix(outputUri).build();
      BatchPredictOutputConfig outputConfig =
          BatchPredictOutputConfig.newBuilder().setGcsDestination(gcsDestination).build();

      // Build the request that will be sent to the API
      BatchPredictRequest request =
          BatchPredictRequest.newBuilder()
              .setName(name.toString())
              .setInputConfig(inputConfig)
              .setOutputConfig(outputConfig)
              .build();

      // Start an asynchronous request
      OperationFuture<BatchPredictResult, OperationMetadata> future =
          client.batchPredictAsync(request);

      System.out.println("Waiting for operation to complete...");
      future.get();
      System.out.println("Batch Prediction results saved to specified Cloud Storage bucket.");
    }
  }
}

Node.js

Wenn sich Ihre Ressourcen in der EU-Region befinden, müssen Sie den Endpunkt explizit festlegen. Weitere Informationen


/**
 * Demonstrates using the AutoML client to request prediction from
 * automl tables using GCS.
 * TODO(developer): Uncomment the following lines before running the sample.
 */
// const projectId = '[PROJECT_ID]' e.g., "my-gcloud-project";
// const computeRegion = '[REGION_NAME]' e.g., "us-central1";
// const modelId = '[MODEL_ID]' e.g., "TBL4704590352927948800";
// const inputUri = '[GCS_PATH]' e.g., "gs://<bucket-name>/<csv file>",
// `The Google Cloud Storage URI containing the inputs`;
// const outputUriPrefix = '[GCS_PATH]'
// e.g., "gs://<bucket-name>/<folder-name>",
// `The destination Google Cloud Storage URI for storing outputs`;

const automl = require('@google-cloud/automl');

// Create client for prediction service.
const automlClient = new automl.v1beta1.PredictionServiceClient();

// Get the full path of the model.
const modelFullId = automlClient.modelPath(projectId, computeRegion, modelId);

async function batchPredict() {
  // Construct request
  const inputConfig = {
    gcsSource: {
      inputUris: [inputUri],
    },
  };

  // Get the Google Cloud Storage output URI.
  const outputConfig = {
    gcsDestination: {
      outputUriPrefix: outputUriPrefix,
    },
  };

  const [, operation] = await automlClient.batchPredict({
    name: modelFullId,
    inputConfig: inputConfig,
    outputConfig: outputConfig,
  });

  // Get the latest state of long-running operation.
  console.log(`Operation name: ${operation.name}`);
  return operation;
}

batchPredict();

Python

Die Clientbibliothek für AutoML Tables enthält zusätzliche Python-Methoden, die die Verwendung der AutoML Tables API vereinfachen. Diese Methoden verweisen auf Datasets und Modelle anhand des Namens und nicht der ID. Dataset- und Modellnamen dürfen nur einmal vorkommen. Weitere Informationen finden Sie in der Kundenreferenz.

Wenn sich Ihre Ressourcen in der EU-Region befinden, müssen Sie den Endpunkt explizit festlegen. Weitere Informationen

# TODO(developer): Uncomment and set the following variables
# project_id = 'PROJECT_ID_HERE'
# compute_region = 'COMPUTE_REGION_HERE'
# model_display_name = 'MODEL_DISPLAY_NAME_HERE'
# gcs_input_uri = 'gs://YOUR_BUCKET_ID/path_to_your_input_csv'
# gcs_output_uri = 'gs://YOUR_BUCKET_ID/path_to_save_results/'
# params = {}

from google.cloud import automl_v1beta1 as automl

client = automl.TablesClient(project=project_id, region=compute_region)

# Query model
response = client.batch_predict(
    gcs_input_uris=gcs_input_uri,
    gcs_output_uri_prefix=gcs_output_uri,
    model_display_name=model_display_name,
    params=params,
)
print("Making batch prediction... ")
# `response` is a async operation descriptor,
# you can register a callback for the operation to complete via `add_done_callback`:
# def callback(operation_future):
#   result = operation_future.result()
# response.add_done_callback(callback)
#
# or block the thread polling for the operation's results:
response.result()

print(f"Batch prediction complete.\n{response.metadata}")

Ergebnisse abrufen

Vorhersageergebnisse in BigQuery abrufen

Wenn Sie BigQuery als Ausgabeziel angegeben haben, werden die Ergebnisse Ihrer Anfrage für die Batchvorhersage als neues Dataset im angegebenen BigQuery-Projekt zurückgegeben. Das BigQuery-Dataset ist der Name Ihres Modells, dem "prediction_" vorangestellt und der Zeitstempel, wann der Vorhersagejob begonnen hat, angehängt wird. Sie finden den BigQuery-Dataset-Namen im Tab Test und Nutzung Ihres Modells auf der Seite Batchvorhersage unter Aktuelle Vorhersagen.

Das BigQuery-Dataset enthält zwei Tabellen: predictions und errors. Die Tabelle errors enthält eine Zeile für jede Zeile in Ihrer Vorhersageanfrage, für die AutoML Tables keine Vorhersage zurückgeben konnten, z. B. wenn eine Funktion, die keinen Nullwert zulässt, null war. Die Tabelle predictions enthält eine Zeile für jede zurückgegebene Vorhersage.

In der Tabelle predictions gibt AutoML Tables Ihre Vorhersagedaten zurück und erstellt für die Vorhersageergebnisse eine neue Spalte. Dazu wird dem Spaltennamen "predicted_" vorangestellt. Die Spalte mit den Vorhersageergebnissen enthält eine verschachtelte BigQuery-Struktur, die die Vorhersageergebnisse enthält.

Zum Abrufen der Vorhersageergebnisse können Sie eine Abfrage in der BigQuery-Konsole verwenden. Das Format der Abfrage hängt vom Modelltyp ab.

Binärklassifizierung:

SELECT predicted_<target-column-name>[OFFSET(0)].tables AS value_1,
predicted_<target-column-name>[OFFSET(1)].tables AS value_2
FROM <bq-dataset-name>.predictions

"value_1" und "value_2" sind Ortsmarkierungen. Sie können sie durch die Zielwerte oder einen entsprechenden Wert ersetzen.

Klassifizierung mehrerer Klassen:

SELECT predicted_<target-column-name>[OFFSET(0)].tables AS value_1,
predicted_<target-column-name>[OFFSET(1)].tables AS value_2,
predicted_<target-column-name>[OFFSET(2)].tables AS value_3,
...
predicted_<target-column-name>[OFFSET(4)].tables AS value_5
FROM <bq-dataset-name>.predictions

"value_1", "value_2" usw. sind Ortsmarkierungen. Sie können sie durch die Zielwerte oder einen entsprechenden Wert ersetzen.

Regression:

SELECT predicted_<target-column-name>[OFFSET(0)].tables.value,
predicted_<target-column-name>[OFFSET(0)].tables.prediction_interval.start,
predicted_<target-column-name>[OFFSET(0)].tables.prediction_interval.end
FROM <bq-dataset-name>.predictions

Ergebnisse in Cloud Storage abrufen

Wenn Sie Cloud Storage als Ausgabeziel angegeben haben, werden die Ergebnisse Ihrer Anfrage einer Batchvorhersage als CSV-Dateien in einem neuen Ordner in dem von Ihnen angegebenen Bucket zurückgegeben. Der Name des Ordners ist der Name Ihres Modells, dem "prediction_" vorangestellt und der Zeitstempel, wann der Vorhersagejob begonnen hat, angehängt wird Sie finden den Namen des Cloud Storage-Ordners im Tab Test und Nutzung Ihres Modells ganz unten auf der Seite Batchvorhersage unter Aktuelle Vorhersagen.

Der Cloud Storage-Ordner enthält zwei Dateitypen: Fehlerdateien und Vorhersagedateien. Wenn die Ergebnisse groß sind, werden zusätzliche Dateien erstellt.

Die Fehlerdateien haben den Namen errors_1.csv, errors_2.csv und so weiter. Sie enthalten eine Kopfzeile und eine Zeile für jede Zeile in Ihrer Vorhersageanfrage, für die AutoML Tables keine Vorhersage zurückgeben kann.

Die Vorhersagedateien haben den Namen tables_1.csv, tables_2.csv und so weiter. Sie enthalten eine Kopfzeile mit den Spaltennamen und eine Zeile für jede zurückgegebene Vorhersage.

In den Vorhersagedateien gibt AutoML Tables Ihre Vorhersagedaten zurück und erstellt je nach Modelltyp eine oder mehrere neue Spalten für die Vorhersageergebnisse:

Klassifikation:

Für jeden potenziellen Wert Ihrer Zielspalte wird eine Spalte mit dem Namen <target-column-name>_<value>_score den Ergebnissen hinzugefügt. Diese Spalte enthält den Wert oder die Konfidenzschätzung für diesen Wert.

Regression:

Der vorhergesagte Wert für diese Zeile wird in einer Spalte mit dem Namen predicted_<target-column-name> zurückgegeben. Das Vorhersageintervall wird für die CSV-Ausgabe nicht zurückgegeben.

Die lokale Merkmalwichtigkeit ist für Ergebnisse in Cloud Storage nicht verfügbar.

Ergebnisse interpretieren

Die Interpretation der Ergebnisse hängt vom Geschäftsproblem ab, das Sie lösen, und davon, wie Ihre Daten verteilt werden.

Ergebnisse für Klassifizierungsmodelle interpretieren

Vorhersageergebnisse für Klassifizierungsmodelle (binär und mehrklassig) geben einen Wahrscheinlichkeitswert für jeden potenziellen Wert der Zielspalte zurück. Sie müssen festlegen, wie die Bewertungen verwendet werden sollen. Um beispielsweise eine binäre Klassifizierung aus den bereitgestellten Bewertungen zu erhalten, würden Sie einen Schwellenwert angeben. Wenn es die beiden Klassen "A" und "B" gibt, sollten Sie das Beispiel mit "A" klassifizieren, wenn die Bewertung für "A" größer als der ausgewählte Grenzwert ist. Andernfalls klassifizieren Sie "B". Bei unausgewogenen Datasets kann der Grenzwert 100 % oder 0 % erreichen.

Auf der Seite Bewerten für Ihr Modell in der Google Cloud Console können Sie das Diagramm zur Genauigkeits-Recall-Kurve, das Diagramm der Empfänger-Operator-Kurve und andere relevante Statistiken nach Label für Ihr Modell verwenden. Dort sehen Sie, wie sich eine Änderung des Schwellenwerts auf Ihre Bewertungsmesswerte auswirkt. So können Sie ermitteln, wie Sie die Ergebniswerte am besten zur Interpretation Ihrer Vorhersageergebnisse verwenden.

Ergebnisse für Regressionsmodelle interpretieren

Für Regressionsmodelle wird ein erwarteter Wert zurückgegeben. Bei vielen Problemen können Sie diesen Wert direkt verwenden. Sie können auch das Vorhersageintervall verwenden, wenn es zurückgegeben wird und wenn ein Bereich für Ihr Geschäftsproblem sinnvoll ist.

Interpretieren der Ergebnisse der lokalen Merkmalwichtigkeit

Informationen zum Interpretieren der Ergebnisse der lokalen Merkmalwichtigkeit finden Sie unter lokale Merkmalwichtigkeit.

Nächste Schritte