Prognosen für mehrere Zeitreihen mit einem univariaten TimesFM-Modell erstellen

In dieser Anleitung erfahren Sie, wie Sie die AI.FORECAST Funktion mit dem integrierten univariaten TimesFM-Modell von BigQuery ML verwenden, um den zukünftigen Wert für eine bestimmte Spalte auf Grundlage des bisherigen Werts dieser Spalte vorherzusagen.

In dieser Anleitung werden Daten aus der öffentlichen bigquery-public-data.san_francisco_bikeshare.bikeshare_trips Tabelle verwendet.

Ziele

In dieser Anleitung erfahren Sie, wie Sie die Funktion AI.FORECAST mit dem integrierten TimesFM-Modell verwenden, um Prognosen für Fahrten mit Leihfahrrädern zu erstellen. In den ersten beiden Abschnitten wird beschrieben, wie Sie Prognosen erstellen und Ergebnisse für eine einzelne Zeitreihe visualisieren. Im dritten Abschnitt wird beschrieben, wie Sie Prognosen für mehrere Zeitreihen erstellen.

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloudverwendet, darunter:

  • BigQuery
  • BigQuery ML

Weitere Informationen zu den Kosten von BigQuery finden Sie auf der Seite BigQuery-Preise.

Weitere Informationen zu den Kosten für BigQuery ML finden Sie unter BigQuery ML-Preise.

Hinweis

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. BigQuery ist in neuen Projekten automatisch aktiviert. So aktivieren Sie BigQuery in einem bereits bestehenden Projekt:

    Aktivieren Sie die BigQuery API.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.

    API aktivieren

Prognose für eine einzelne Zeitreihe von Fahrten mit Leihfahrrädern

Prognostizieren Sie zukünftige Zeitreihenwerte mit der Funktion AI.FORECAST.

Die folgende Abfrage prognostiziert die Anzahl der Fahrten mit Leihfahrrädern pro Stunde für Abonnenten für den nächsten Monat (ca. 720 Stunden) auf Grundlage der bisherigen Daten der letzten vier Monate. Das Argument confidence_level gibt an, dass die Abfrage ein Vorhersageintervall mit einem Konfidenzniveau von 95% generiert.

So erstellen Sie Prognosen für Daten mit dem TimesFM-Modell:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Fügen Sie die folgende Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen:

    SELECT *
    FROM
      AI.FORECAST(
        (
          SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips
    FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
    WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01')
    GROUP BY TIMESTAMP_TRUNC(start_date, HOUR)
        ),
        horizon => 720,
        confidence_level => 0.95,
        timestamp_col => 'trip_hour',
        data_col => 'num_trips');

    Die Ergebnisse sehen in etwa so aus:

    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | forecast_timestamp      | forecast_value    | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | 2018-05-01 00:00:00 UTC | 26.3045959...     |            0.95  | 21.7088378...                   | 30.9003540...                   |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | 2018-05-01 01:00:00 UTC | 34.0890502...     |            0.95  | 2.47682913...                   | 65.7012714...                   |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | 2018-05-01 02:00:00 UTC | 24.2154693...     |            0.95  | 2.87621605...                   | 45.5547226...                   |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | ...                     | ...               |  ...             | ...                             |  ...                            |                    |
    +-------------------------+-------------------+------------------+---------------------------------+---------------------------------+--------------------+
    

Prognostizierte Daten mit Eingabedaten vergleichen

Erstellen Sie ein Diagramm der Ausgabe der Funktion AI.FORECAST zusammen mit einer Teilmenge der Eingabedaten der Funktion, um sie zu vergleichen.

So erstellen Sie ein Diagramm der Funktionsausgabe:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Fügen Sie die folgende Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen:

    SELECT *
    FROM
      AI.FORECAST(
        (
          SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, COUNT(*) as num_trips
          FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
          WHERE subscriber_type = 'Subscriber' AND start_date >= TIMESTAMP('2018-01-01')
          GROUP BY TIMESTAMP_TRUNC(start_date, HOUR)
        ),
        horizon => 720,
        confidence_level => 0.95,
        timestamp_col => 'trip_hour',
        data_col => 'num_trips',
        output_historical_time_series => true);
  3. Wenn die Abfrage ausgeführt wurde, klicken Sie im Bereich Abfrageergebnisse auf den Tab Visualisierung. Wählen Sie für Visualisierungstyp die Option Linie aus. Wählen Sie für Dimension die Option time_series_timestamp aus. Wählen Sie für Messwerte die Optionen time_series_data, prediction_interval_lower_bound und prediction_interval_upper_bound aus. Das resultierende Diagramm sieht in etwa so aus:

    Stellen Sie 100 Zeitpunkte der Eingabedaten zusammen mit den Ausgabedaten der Funktion AI.FORECAST in einem Diagramm dar, um ihre Ähnlichkeit zu bewerten.

    Sie sehen, dass die Eingabedaten und die prognostizierten Daten eine ähnliche Nutzung von Leihfahrrädern zeigen. Außerdem sehen Sie, dass die untere und obere Grenze des Vorhersageintervalls zunimmt, je weiter die prognostizierten Zeitpunkte in der Zukunft liegen.

Prognose für mehrere Zeitreihen von Bike-Sharing-Fahrten

Die folgende Abfrage prognostiziert die Anzahl der Fahrten mit Leihfahrrädern pro Abonnententyp und pro Stunde für den nächsten Monat (ca. 720 Stunden) auf Grundlage der bisherigen Daten der letzten vier Monate. Das Argument confidence_level gibt an, dass die Abfrage ein Vorhersageintervall mit einem Konfidenzniveau von 95% generiert.

So erstellen Sie Prognosen für Daten mit dem TimesFM-Modell:

  1. Rufen Sie in der Google Cloud Console die Seite BigQuery auf.

    BigQuery aufrufen

  2. Fügen Sie die folgende Abfrage in den Abfrageeditor ein und klicken Sie auf Ausführen:

    SELECT *
    FROM
      AI.FORECAST(
        (
          SELECT TIMESTAMP_TRUNC(start_date, HOUR) as trip_hour, subscriber_type, COUNT(*) as num_trips
          FROM `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`
          WHERE start_date >= TIMESTAMP('2018-01-01')
          GROUP BY TIMESTAMP_TRUNC(start_date, HOUR), subscriber_type
        ),
        horizon => 720,
        confidence_level => 0.95,
        timestamp_col => 'trip_hour',
        data_col => 'num_trips',
        id_cols => ['subscriber_type']);

    Die Ergebnisse sehen in etwa so aus:

    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | subscriber_type     | forecast_timestamp       | forecast_value   | confidence_level | prediction_interval_lower_bound | prediction_interval_upper_bound | ai_forecast_status |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | Subscriber          | 2018-05-01 00:00:00 UTC  | 26.3045959...    |            0.95  | 21.7088378...                   | 30.9003540...                   |                    |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | Subscriber          |  2018-05-01 01:00:00 UTC | 34.0890502...    |            0.95  | 2.47682913...                   | 65.7012714...                   |                    |
    +---------------------+-------------------+------------------+-------------------------+---------------------------------+---------------------------------+--------------------+
    | Subscriber          |  2018-05-01 02:00:00 UTC | 24.2154693...    |            0.95  | 2.87621605...                   | 45.5547226...                   |                    |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    | ...                 | ...                      |  ...             | ...              | ...                             |  ...                            |                    |
    +---------------------+--------------------------+------------------+------------------+---------------------------------+---------------------------------+--------------------+
    

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Projekt löschen

So löschen Sie das Projekt:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Herunterfahren), um das Projekt zu löschen.

Nächste Schritte