FORECAST

Vollqualifizierter Name: SNOWFLAKE.ML.FORECAST

Mit einem Prognosemodell wird eine Prognose für eine einzelne oder mehrere Zeitreihen erstellt. Sie verwenden CREATE SNOWFLAKE.ML.FORECAST, um das Prognosemodell zu erstellen und zu trainieren, und verwenden dann die <Name_des_Modells>!FORECAST-Methode des Modells, um Prognosen zu erstellen. Die Methode <Name_des_Modells>!EXPLAIN_FEATURE_IMPORTANCE liefert Informationen darüber, wie jedes Feature in den Trainingsdaten die Prognose beeinflusst.

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 ] <model_name>(
    INPUT_DATA => <input_data>,
    [SERIES_COLNAME => '<series_colname>',]
    TIMESTAMP_COLNAME => '<timestamp_colname>',
    TARGET_COLNAME => '<target_colname>')
  [ [ 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

model_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 irrelevant.

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 die Trainingsbezeichnung (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.

Nutzungshinweise

Die Replikation von Klasseninstanzen wird derzeit nicht unterstützt.

Beispiele

Siehe Beispiele.

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 die Befehlsausgabe nach dem Objektnamen. Der Filter verwendet eine Mustererkennung 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%' ...
[ 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 Modells, derzeit 1

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.

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.

Nutzungshinweise

Gelöschte Modelle können nicht wiederhergestellt werden, sondern müssen neu erstellt werden.

<Name_des_Modells>!FORECAST

Generiert eine Prognose aus dem zuvor trainierten Modell model_name.

Syntax

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

Einzelzeitreihen-Modelle ohne exogene Variablen:

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

Einzelreihen-Modelle mit exogenen Variablen:

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

Multizeitreihen-Modelle ohne exogene Variablen:

<model_name>!FORECAST(
  SERIES_VALUE => <series>,
  FORECASTING_PERIODS => <forecasting_periods>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [CONFIG_OBJECT => <config_object>]
);
Copy

Multizeitreihen-Modelle mit exogenen Variablen:

<model_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. Ihre exogenen Variablen müssen in diesem Schritt in der gleichen Reihenfolge sein wie im Trainingsschritt.

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. Derzeit gibt es nur eine Konfigurationsoption.

Schlüssel

Typ

Beschreibung

prediction_interval

FLOAT

[0, 1). Der Standardwert ist 0,95, was bedeutet, dass 95 % der zukünftigen Punkte innerhalb des Intervalls [untere_Grenze, obere_Grenze] des Prognoseergebnisses liegen werden.

Ausgabe

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

Für jede exogene Variable gibt es außerdem eine zusätzliche Spalte. Die Anzahl, die Namen und die Typen dieser Variablen variieren, weshalb sie hier nicht aufgeführt sind.

Spalte

Typ

Beschreibung

SERIES

VARIANT

Zeitreihen für den vorhergesagten Wert in dieser Zeile (für Multizeitreihen-Prognosen)

TS

TIMESTAMP_NTZ

Zeitstempel

FORECAST

FLOAT

Prognostizierter Zielwert

LOWER_BOUND

FLOAT

Untere Grenze für das Vorhersageintervall

UPPER_BOUND

FLOAT

Obere Grenze für das Vorhersageintervall

<Name_des_Modells>!EXPLAIN_FEATURE_IMPORTANCE

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

Syntax

<model_name>!EXPLAIN_FEATURE_IMPORTANCE();
Copy

Ausgabe

Spalte

Typ

Beschreibung

SERIES

VARIANT

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

RANK

INTEGER

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 Ihrer 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; ein der folgenden Optionen:

  • user_provided

  • derived_from_timestamp

  • derived_from_endogenous

Beispiele

Siehe Beispiele.