FORECAST

Vollqualifizierter Name: SNOWFLAKE.ML.FORECAST

Mit einem Prognosemodell wird eine Prognose für eine einzelne Zeitreihe oder für mehrere Zeitreihen erstellt. Sie verwenden CREATE SNOWFLAKE.ML.FORECAST, um das Prognosemodell zu erstellen und zu trainieren, und verwenden dann die Methode <name>!FORECAST des Modells, um Prognosen zu erstellen. Die Methode <name>!EXPLAIN_FEATURE_IMPORTANCE liefert Informationen darüber, wie jedes Feature in den Trainingsdaten die Prognose beeinflusst. Die Methode <name>!SHOW_TRAINING_LOGS liefert Fehlermeldungen für alle Zeitreihen, deren Modelle nicht passen. Die Beispiele-Methode liefert Bewertungskennzahlen für Daten, die außerhalb der Stichprobe liegen.

Wichtig

Rechtlicher Hinweis Diese ML-basierte Snowflake Cortex-Funktion wird durch Machine Learning-Technologie unterstützt. Die Machine Learning-Technologie und die bereitgestellten Ergebnisse können ungenau, unangemessen oder verzerrt sein. Entscheidungen auf der Grundlage von Ergebnissen aus Prozessen des maschinellen Lernens, einschließlich solcher, die in automatische Pipelines integriert sind, erfordern eine von Menschen durchgeführte Überwachung und Überprüfung, um sicherzustellen, dass die vom Modell generierten Inhalte korrekt sind. Die von ML-basierten Snowflake Cortex-Funktionen ausgeführten Abfragen werden wie alle anderen SQL-Abfragen behandelt, deren Metadaten untersucht werden können.

Metadaten. Wenn Sie ML-basierte Snowflake Cortex-Funktionen verwenden, protokolliert Snowflake allgemeine Fehlermeldungen, die von einer ML-Funktion zurückgegeben werden, zusätzlich zu dem, was in Metadatenfeldern erwähnt wird. Diese Fehlerprotokolle helfen uns, auftretende Probleme zu beheben und diese Funktionen zu verbessern, um unser Angebot für Sie zu optimieren.

CREATE SNOWFLAKE.ML.FORECAST

Erstellt ein neues Prognosemodell aus den von Ihnen bereitgestellten Trainingsdaten oder ersetzt das gleichnamige Prognosemodell.

Syntax

CREATE [ OR REPLACE ] SNOWFLAKE.ML.FORECAST [ IF NOT EXISTS ] <name>(
  INPUT_DATA => <input_data>,
  [ SERIES_COLNAME => '<series_colname>', ]
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  TARGET_COLNAME => '<target_colname>',
  [ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Copy

Bemerkung

Bei Verwendung von benannten Argumenten wird die Reihenfolge der Argumente irrelevant und der Code lesbarer. Sie können jedoch auch positionsbezogene Argumente verwenden, wie im folgenden Beispiel:

CREATE SNOWFLAKE.ML.FORECAST <name>(
  '<input_data>', '<series_colname>', '<timestamp_colname>', '<target_colname>'
);
Copy

Parameter

name

Gibt den Bezeichner für das Modell an. Dieser muss für das Schema, in dem das Modell erstellt wird, eindeutig sein.

Wenn der Modellbezeichner nicht vollqualifiziert ist (im Format db_name.schema_name.name oder schema_name.name), erstellt der Befehl das Modell im aktuellen Schema der Sitzung.

Darüber hinaus muss der Bezeichner mit einem Buchstaben beginnen und darf keine Leer- oder Sonderzeichen enthalten, es sei denn, die gesamte Bezeichnerzeichenfolge wird in doppelte Anführungszeichen gesetzt (z. B. "My object"). Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Weitere Details dazu finden Sie unter Anforderungen an Bezeichner.

Konstruktorargumente

Erforderlich:

INPUT_DATA => input_data

Eine Referenz auf die Eingabedaten. Die Verwendung einer Referenz ermöglicht bei einem Trainingsprozess, der mit eingeschränkten Berechtigungen ausgeführt wird, Ihre Berechtigungen für den Zugriff auf die Daten zu nutzen. Sie können eine Referenz auf eine Tabelle oder eine Ansicht verwenden, wenn Ihre Daten bereits in dieser Form vorliegen, oder Sie können eine Abfragereferenz verwenden, um die Abfrage bereitzustellen, die zum Abrufen der Daten ausgeführt werden soll.

Die referenzierten Daten umfassen alle Trainingsdaten, die vom Prognosemodell genutzt werden. Wenn input_data Spalten enthält, die nicht timestamp_colname, target_colname oder series_colname heißen, werden sie als exogene Variablen (zusätzliche Features) betrachtet. Die Reihenfolge der Spalten in den Eingabedaten ist unbedeutend.

Die Spalten für Ihre Eingabedaten müssen für Ihren Anwendungsfall geeignete Typen haben. Weitere Informationen zu den einzelnen Anwendungsfällen finden Sie unter Beispiele.

Anwendungsfall

Spalten und Typen

Einzelne Zeitreihen

Mehrere Zeitreihen

  • Spalte für Zeitreihe: VARIANT mit numerischen Werten und Text.

  • Spalte für Zeitstempel: TIMESTAMP_NTZ.

  • Spalte für Zielwert: FLOAT.

Einzelne Zeitreihen mit exogenen Variablen

Mehrere Zeitreihen mit exogenen Variablen

TIMESTAMP_COLNAME => 'timestamp_colname'

Name der Spalte, die in input_data die Zeitstempel enthält.

TARGET_COLNAME => 'target_colname'

Name der Spalte, die in input_data das Ziel (abhängiger Wert) enthält.

Optional:

SERIES_COLNAME => 'series_colname'

Bei Multizeitreihen-Modellen der Name der Spalte, die in input_data die Multizeitreihen definiert. Diese Spalte kann ein Wert eines beliebigen Typs oder ein Array von Werten aus einer oder mehreren anderen Spalten sein, wie unter Prognoseerstellung für mehrere Zeitreihen gezeigt.

Wenn Sie Argumente positionsbezogen bereitstellen, muss dies das zweite Argument sein.

CONFIG_OBJECT => config_object

Ein OBJECT mit Schlüssel-Wert-Paaren, die zur Konfiguration des Modelltraining-Jobs verwendet werden.

Schlüssel

Typ

Standard

Beschreibung

on_error

STRING

'ABORT'

Zeichenfolge (Konstante), die die Fehlerbehandlungsmethode für die Modelltrainingaufgabe angibt. Dies ist besonders nützlich, wenn mehrere Zeitreihen trainiert werden. Folgende Werte werden unterstützt:

  • 'abort': Trainingsoperation abbrechen, wenn in einer Zeitreihe ein Fehler auftritt.

  • 'skip': Alle Zeitreihen überspringen, bei denen während des Trainings ein Fehler auftritt. Dies ermöglicht ein erfolgreiches Modelltraining für andere Zeitreihen. Um festzustellen, welche Zeitreihen fehlgeschlagen sind, verwenden Sie die Methode <name>!SHOW_TRAINING_LOGS des Modells.

evaluate

BOOLEAN

TRUE

Gibt an, ob Bewertungskennzahlen erstellt werden sollen. Wenn TRUE, dann werden zusätzliche Modelle für die Kreuzvalidierung unter Verwendung der Parameter in evaluation_config trainiert.

evaluation_config

OBJECT

Siehe Konfiguration der Bewertung unten.

Ein optionales Konfigurationsobjekt, das angibt, wie Bewertungskennzahlen für Daten generiert werden sollen, die außerhalb der Stichprobe liegen (out-of-sample).

Konfiguration der Bewertung

Das Objekt evaluation_config enthält Schlüssel-Wert-Paare zur Konfiguration der Kreuzvalidierung. Diese Parameter stammen aus TimeSeriesSplit von scikit-learn.

Schlüssel

Typ

Standard

Beschreibung

n_splits

INTEGER

5

Anzahl der Splits.

max_train_size

INTEGER oder NULL (kein Maximum).

NULL

Maximale Größe für ein einzelnes Trainingsset.

test_size

INTEGER oder NULL.

NULL

Wird verwendet, um die Größe des Testsets zu begrenzen.

gap

INTEGER

0

Anzahl der Stichproben, die am Ende jedes Trainingsset vor dem Testset ausgeschlossen werden sollen.

prediction_interval

FLOAT

0,95

Das Vorhersageintervall, das bei der Berechnung von Intervall-Kennzahlen verwendet wird.

Nutzungshinweise

Die Replikation von Klasseninstanzen wird derzeit nicht unterstützt.

SHOW SNOWFLAKE.ML.FORECAST

Listet alle Prognosemodelle auf.

Syntax

SHOW SNOWFLAKE.ML.FORECAST [ LIKE <pattern> ]
  [ IN
      {
        ACCOUNT                  |

        DATABASE                 |
        DATABASE <database_name> |

        SCHEMA                   |
        SCHEMA <schema_name>     |
        <schema_name>
      }
   ]
Copy

Parameter

LIKE 'pattern'

Filtert optional die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet einen Musterabgleich ohne Berücksichtigung der Groß-/Kleinschreibung, aber mit Unterstützung von SQL-Platzhalterzeichen (% und _).

Die folgenden Muster geben beispielsweise die gleichen Ergebnisse zurück:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. Standard: Kein Wert (die Ausgabe wird nicht gefiltert).

[ IN ... ]

Gibt optional den Geltungsbereich des Befehls an. Geben Sie eine der folgenden Optionen an:

ACCOUNT

Gibt Datensätze für das gesamte Konto zurück.

DATABASE, . DATABASE db_name

Gibt Datensätze für die aktuell verwendete Datenbank oder eine angegebene Datenbank (db_name) zurück.

Wenn Sie DATABASE ohne db_name angeben und aktuell keine Datenbank in Verwendung ist, hat das Schlüsselwort keine Auswirkungen auf die Ausgabe.

SCHEMA, . SCHEMA schema_name, . schema_name

Gibt Datensätze für das aktuell verwendete Schema oder ein angegebenes Schema (schema_name) zurück.

SCHEMA ist optional, wenn aktuell eine Datenbank in Verwendung ist oder wenn Sie für schema_name den vollqualifizierten Schemanamen (z. B. db.schema) angeben.

Wenn aktuell keine Datenbank in Verwendung ist, hat die Angabe von SCHEMA keine Auswirkungen auf die Ausgabe.

Standard: Abhängig davon, ob für die Sitzung aktuell eine Datenbank in Verwendung ist:

  • Datenbank: DATABASE ist der Standardwert (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in der Datenbank haben).

  • Keine Datenbank: ACCOUNT ist der Standardwert (d. h. der Befehl gibt die Objekte zurück, für die Sie Berechtigungen zum Anzeigen in Ihrem Konto haben).

Ausgabe

Die Befehlsausgabe enthält Eigenschaften und Metadaten des Modells in den folgenden Spalten:

Spalte

Beschreibung

created_on

Datum und Uhrzeit der Erstellung des Modells

name

Name des Modells

database_name

Datenbank, in der das Modell gespeichert ist

schema_name

Schema, in dem das Modell gespeichert ist

current_version

Version des Modellalgorithmus

comment

Kommentar zum Modell

owner

Rolle, die Eigentümer des Modells ist

DROP SNOWFLAKE.ML.FORECAST

Entfernt das angegebene Modell aus dem aktuellen oder angegebenen Schema. Gelöschte Modelle können nicht wiederhergestellt werden, sondern müssen neu erstellt werden.

Syntax

DROP SNOWFLAKE.ML.FORECAST [ IF EXISTS ] <name>;
Copy

Parameter

name

Gibt den Bezeichner für das zu löschende Modell an. Wenn der Bezeichner Leerzeichen, Sonderzeichen oder Zeichen in Groß-/Kleinschreibung enthält, muss die gesamte Zeichenfolge in doppelte Anführungszeichen eingeschlossen werden. Bei Bezeichnern, die in doppelte Anführungszeichen eingeschlossen sind, ist auch die Groß-/Kleinschreibung zu beachten.

Wenn der Modellbezeichner nicht vollqualifiziert ist (im Format db_name.schema_name.name oder schema_name.name), sucht der Befehl das Modell im aktuellen Schema der Sitzung.

<name>!FORECAST

Generiert eine Prognose aus dem zuvor trainierten Modell name.

Syntax

Die erforderlichen Argumente variieren je nachdem, für welchen Anwendungsfall das Modell trainiert wurde.

Einzelzeitreihen-Modelle ohne exogene Variablen:

<name>!FORECAST(
  FORECASTING_PERIODS => <forecasting_periods>,
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

Einzelreihen-Modelle mit exogenen Variablen:

<name>!FORECAST(
  INPUT_DATA => <input_data>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

Multizeitreihen-Modelle ohne exogene Variablen:

<name>!FORECAST(
  SERIES_VALUE => <series>,
  FORECASTING_PERIODS => <forecasting_periods>,
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

Multizeitreihen-Modelle mit exogenen Variablen:

<name>!FORECAST(
  SERIES_VALUE => <series>,
  SERIES_COLNAME => <series_colname>,
  INPUT_DATA => <input_data>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

Argumente

Erforderlich:

Nicht alle der folgenden Argumente sind für jeden der zuvor aufgeführten Anwendungsfälle erforderlich.

FORECASTING_PERIODS => forecasting_periods

Erforderlich für Prognosen ohne exogene Variablen.

Die Anzahl der Schritte bis zur Prognose. Das Intervall zwischen den Schritten wird während des Trainings vom Modell abgeleitet.

INPUT_DATA => input_data

Erforderlich für Prognosen mit exogenen Variablen.

Eine Referenz zu einer Tabelle, Ansicht oder Abfrage, die die zukünftigen Zeitstempel und Werte der exogenen Variablen (zusätzliche, vom Benutzer bereitgestellte Features) enthält, die beim Training des Modells als Eingabedaten mit input_data übergeben wurden. Die Verwendung einer Referenz ermöglicht bei einem Prognoseprozess, der mit eingeschränkten Berechtigungen ausgeführt wird, Ihre Berechtigungen für den Zugriff auf die Daten zu nutzen. Die Spalten werden anhand des Namens zwischen diesem Argument und den ursprünglichen exogenen Trainingsdaten abgeglichen.

TIMESTAMP_COLNAME => 'timestamp_colname'

Erforderlich für Prognosen mit exogenen Variablen.

Der Name der Spalte in input_data, die die Zeitstempel enthält.

SERIES_COLNAME => 'series_colname'

Erforderlich bei Multizeitreihen-Prognosen mit exogenen Variablen.

Der Name der Spalte in input_data, die die Zeitreihen angibt.

SERIES_VALUE => series

Erforderlich bei Multizeitreihen-Prognosen.

Die Zeitreihe für die Prognose. Kann ein einzelner Wert (z. B. 'Series A'::variant) oder ein VARIANT sein, muss aber eine Zeitreihe angeben, mit der das Modell trainiert wurde. Wenn nicht angegeben, werden alle trainierten Zeitreihen vorhergesagt.

Optional:

CONFIG_OBJECT => config_object

Ein OBJECT mit Schlüssel-Wert-Paaren, die zur Konfiguration des Prognose-Jobs verwendet werden.

Schlüssel

Typ

Standard

Beschreibung

prediction_interval

FLOAT

0,95

Ein Wert, der größer als oder gleich 0,0 und kleiner als 1,0 ist. Der Standardwert ist 0,95, was bedeutet, dass 95 % der zukünftigen Punkte innerhalb des Intervalls [untere_Grenze, obere_Grenze] des Prognoseergebnisses liegen werden.

on_error

STRING

'ABORT'

Zeichenfolge (Konstante), die die Fehlerbehandlungsmethode angibt. Dies ist besonders nützlich, wenn Prognosen für mehrere Zeitreihen erstellt werden. Folgende Werte werden unterstützt:

  • 'abort': Modellprognoseoperation abbrechen, wenn in einer Zeitreihe ein Fehler auftritt.

  • 'skip': Alle Zeitreihen überspringen, bei denen während bei der Prognoseerstellung ein Fehler auftritt. Dies ermöglicht eine erfolgreiche Prognose für andere Zeitreihen. Die fehlgeschlagenen Zeitreihen sind in der Modellausgabe nicht enthalten.

Ausgabe

Die Spalte SERIES ist nur bei Multizeitreihen-Prognosen vorhanden. Bei Einzelzeitreihen-Prognosen gibt es diese Spalte nicht.

Spalte

Typ

Beschreibung

SERIES

VARIANT

Zeitreihenwert (wenn Modell mit mehreren Zeitreihen trainiert wurde)

TS

TIMESTAMP_NTZ

Zeitstempel

FORECAST

FLOAT

Prognostizierter Zielwert

LOWER_BOUND

FLOAT

Untere Grenze des Vorhersageintervalls.

UPPER_BOUND

FLOAT

Obere Grenze des Vorhersageintervalls.

<name>!EXPLAIN_FEATURE_IMPORTANCE

Gibt die relative Feature-Bedeutung (Feature Importance) für jedes vom Modell verwendete Feature zurück.

Syntax

<name>!EXPLAIN_FEATURE_IMPORTANCE();
Copy

Ausgabe

Die Spalte SERIES ist nur bei Multizeitreihen-Prognosen vorhanden. Bei Einzelzeitreihen-Prognosen gibt es diese Spalte nicht.

Spalte

Typ

Beschreibung

SERIES

VARIANT

Zeitreihenwert (wenn Modell mit mehreren Zeitreihen trainiert wurde)

RANK

INTEGER

Der FIR-Wert (Feature Importance Ranking) einer bestimmten Zeitreihe.

FEATURE_NAME

VARCHAR

Name des Features, das zum Trainieren des Modells verwendet wird. aggregated_endogenous_features steht für alle Features, die als Transformationen der Zielvariablen abgeleitet wurden.

IMPORTANCE_SCORE

FLOAT

Importance-Bewertung des Features: Ein Wert in [0, 1], wobei 0 für die geringstmögliche und 1 für die höchstmögliche Aussagekraft steht.

FEATURE_TYPE

VARCHAR

Quelle des Features. Eine der folgenden Optionen:

  • user_provided: Vom Benutzer bereitgestellte Featuredaten.

  • derived_from_timestamp: Periodisches Feature (z. B. Tag, Woche oder Monat), das aus Zeitstempeldaten abgeleitet wird.

  • derived_from_endogenous: Features, die aus einer Transformation der Zielvariablen abgeleitet werden.

<name>!SHOW_EVALUATION_METRICS

Gibt Out-of-Sample-Bewertungskennzahlen zurück, die mithilfe der Zeitreihen-Kreuzvalidierung generiert wurden. Kennzahlen sind nur verfügbar, wenn für CONFIG_OBJECT während der Modellkonstruktion evaluate=TRUE eingestellt ist (Standardeinstellung).

Syntax

<name>!SHOW_EVALUATION_METRICS();
Copy

Ausgabe

Die Spalte SERIES ist nur bei Multizeitreihen-Prognosen vorhanden. Bei Einzelzeitreihen-Prognosen gibt es diese Spalte nicht.

Spalte

Typ

Beschreibung

SERIES

VARIANT

Zeitreihenwert (nur vorhanden, wenn Modell mit mehreren Zeitreihen trainiert wurde)

ERROR_METRIC

VARCHAR

Der Name des verwendeten Fehlermaßes. Die Methode gibt die folgenden Fehlermaße zurück:

Punkt-Fehlermaße:

Intervall-Fehlermaße: Diese Fehlermaße verwenden das prediction_interval-Argument von Konfiguration der Bewertung.

  • COVERAGE_INTERVAL: Anteil der tatsächlichen Werte, die innerhalb des Vorhersageintervalls liegen.

  • WINKLER_ALPHA: Winkler Score.

LOGS

VARIANT

Enthält Fehler- oder Warnmeldungen.

<name>!SHOW_TRAINING_LOGS

Gibt die Protokolleinträge des Modelltrainings zurück. Die Ausgabe ist nur dann Nicht-NULL, wenn in CONFIG_OBJECT für das Training 'ON_ERROR' = 'SKIP' gesetzt ist, da andernfalls das Training des gesamten Modells fehlschlägt.

Syntax

<name>!SHOW_TRAINING_LOGS();
Copy

Ausgabe

Die Spalte SERIES ist nur bei Modellen mit mehreren Zeitreihen vorhanden. Bei Modellen mit nur einer Zeitreihe gibt es diese Spalte nicht.

Spalte

Typ

Beschreibung

SERIES

VARIANT

Zeitreihenwert (wenn Modell mit mehreren Zeitreihen trainiert wurde)

LOGS

OBJECT

Objekt, das die Fehler enthält, die beim Training aufgetreten sind. Derzeit ist gibt es nur den Schlüssel Errors, ein Array von Fehlern. Wenn keine Fehler aufgetreten sind, ist das Objekt NULL.

Beispiele

Siehe Beispiele.