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>',
[ 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¶
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¶
Benötigt:
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.
Um diesen Verweis zu erstellen, können Sie das Schlüsselwort TABLE mit dem Tabellennamen, dem Ansichtsnamen oder der Abfrage verwenden, oder Sie können die Funktion SYSTEM$REFERENCE oder SYSTEM$QUERY_REFERENCE aufrufen.
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 mehreren Zeitreihen 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
aggregation_categorical
'MODE'
Die Aggregationsmethode für kategoriale Features Folgende Werte werden unterstützt:
'MODE'
: Der häufigste Wert.'FIRST'
: Der früheste Wert.'LAST'
: Der letzte Wert.
aggregation_numeric
'MEAN'
Die Aggregationsmethode für numerische Features Folgende Werte werden unterstützt:
'MEAN'
: Der Durchschnitt der Werte.'MEDIAN'
: Der mittlere Wert.MODE
: Der häufigste Wert.'MIN'
: Der kleinste Wert.'MAX'
: Der größte Wert.'SUM'
: Die Summe der Werte.'FIRST'
: Der früheste Wert.'LAST'
: Der letzte Wert.
aggregation_target
Wie
aggregation_numeric
oder'MEAN'
, wenn nicht angegebenDie Aggregationsmethode für den Zielwert. Folgende Werte werden unterstützt:
'MEAN'
: Der Durchschnitt der Werte.'MEDIAN'
: Der mittlere Wert.MODE
: Der häufigste Wert.'MIN'
: Der kleinste Wert.'MAX'
: Der größte Wert.'SUM'
: Die Summe der Werte.'FIRST'
: Der früheste Wert.'LAST'
: Der letzte Wert.
aggregation_column
k.A.
Ein Objekt mit Schlüssel-Wert-Paaren (beide Zeichenfolgen), die die Aggregationsmethode für bestimmte Spalten angeben. Der Schlüssel ist der Spaltenname und der Wert ist die Aggregationsmethode. Wenn eine Spalte nicht angegeben wird, verwendet das Modell die durch
aggregation_numeric
oderaggregation_categorical
angegebene Methode oder den Standardwert für diesen Spaltentyp (MEAN
für numerische,MODE
für kategorische).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).
frequency
k.A.
Die Frequenz der Zeitreihe Wenn nicht angegeben, ermittelt das Modell die Häufigkeit. Der Wert muss eine Zeichenfolge sein, die einen Zeitraum angibt, z. B.
'1 day'
. Zu den unterstützten Einheiten gehören Sekunden, Minuten, Stunden, Tage, Wochen, Monate, Quartale und Jahre. Sie können den Intervallnamen im Singular („Stunde“) oder im Plural („Stunden“) verwenden, dürfen ihn aber nicht abkürzen.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_des_Modells>!SHOW_TRAINING_LOGS des Modells.
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
1
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 wird für Klasseninstanzen nicht unterstützt, außer für Instanzen der Klasse CUSTOM_CLASSIFIER.
Beispiele¶
Siehe Beispiele.