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>' ]
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>');
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
oderschema_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 nichttimestamp_colname
,target_colname
oderseries_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
Spalte für Zeitstempel: TIMESTAMP_NTZ
Spalte für Zielwert: FLOAT
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
Spalte für Zeitstempel: TIMESTAMP_NTZ
Spalte für Zielwert: FLOAT
Mehrere Zeitreihen mit exogenen Variablen
Spalte für Zeitreihe: VARIANT mit numerischen Werten und Text.
Spalte für Zeitstempel: TIMESTAMP_NTZ
Spalte für Zielwert: FLOAT
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.
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>
}
]
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
ohnedb_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ürschema_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>;
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
oderschema_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>]
);
Einzelreihen-Modelle mit exogenen Variablen:
<model_name>!FORECAST(
INPUT_DATA => <input_data>,
TIMESTAMP_COLNAME => '<timestamp_colname>',
[CONFIG_OBJECT => <config_object>]
);
Multizeitreihen-Modelle ohne exogene Variablen:
<model_name>!FORECAST(
SERIES_VALUE => <series>,
FORECASTING_PERIODS => <forecasting_periods>,
TIMESTAMP_COLNAME => '<timestamp_colname>',
[CONFIG_OBJECT => <config_object>]
);
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>]
);
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
[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 |
Zeitreihen für den vorhergesagten Wert in dieser Zeile (für Multizeitreihen-Prognosen) |
|
TS |
Zeitstempel |
|
FORECAST |
Prognostizierter Zielwert |
|
LOWER_BOUND |
Untere Grenze für das Vorhersageintervall |
|
UPPER_BOUND |
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();
Ausgabe¶
Spalte |
Typ |
Beschreibung |
---|---|---|
SERIES |
Zeitreihenwert (nur vorhanden, wenn Modell mit mehreren Zeitreihen trainiert wurde) |
|
RANK |
FIR-Wert (Feature Importance Ranking) einer bestimmten Zeitreihe |
|
FEATURE_NAME |
Name des Features, das zum Trainieren des Modells verwendet wird. |
|
IMPORTANCE_SCORE |
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 |
Quelle des Features; ein der folgenden Optionen:
|