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.
Weitere Informationen dazu finden Sie unter Snowflake AI Trust and Safety FAQ.
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>' ]
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¶
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 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
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
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
'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
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
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
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
0
Anzahl der Stichproben, die am Ende jedes Trainingsset vor dem Testset ausgeschlossen werden sollen.
prediction_interval
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>
}
]
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
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 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>;
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.
<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> ]
);
Einzelreihen-Modelle mit exogenen Variablen:
<name>!FORECAST(
INPUT_DATA => <input_data>,
TIMESTAMP_COLNAME => '<timestamp_colname>',
[ CONFIG_OBJECT => <config_object> ]
);
Multizeitreihen-Modelle ohne exogene Variablen:
<name>!FORECAST(
SERIES_VALUE => <series>,
FORECASTING_PERIODS => <forecasting_periods>,
[ CONFIG_OBJECT => <config_object> ]
);
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> ]
);
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
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
'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 |
Zeitreihenwert (wenn Modell mit mehreren Zeitreihen trainiert wurde) |
|
TS |
Zeitstempel |
|
FORECAST |
Prognostizierter Zielwert |
|
LOWER_BOUND |
Untere Grenze des Vorhersageintervalls. |
|
UPPER_BOUND |
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();
Ausgabe¶
Die Spalte SERIES ist nur bei Multizeitreihen-Prognosen vorhanden. Bei Einzelzeitreihen-Prognosen gibt es diese Spalte nicht.
Spalte |
Typ |
Beschreibung |
---|---|---|
SERIES |
Zeitreihenwert (wenn Modell mit mehreren Zeitreihen trainiert wurde) |
|
RANK |
Der 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. Eine der folgenden Optionen:
|
<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();
Ausgabe¶
Die Spalte SERIES ist nur bei Multizeitreihen-Prognosen vorhanden. Bei Einzelzeitreihen-Prognosen gibt es diese Spalte nicht.
Spalte |
Typ |
Beschreibung |
---|---|---|
SERIES |
Zeitreihenwert (nur vorhanden, wenn Modell mit mehreren Zeitreihen trainiert wurde) |
|
ERROR_METRIC |
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
|
|
LOGS |
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();
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 |
Zeitreihenwert (wenn Modell mit mehreren Zeitreihen trainiert wurde) |
|
LOGS |
Objekt, das die Fehler enthält, die beim Training aufgetreten sind. Derzeit ist gibt es nur den Schlüssel |
Beispiele¶
Siehe Beispiele.