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>' ]
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

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 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 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

STRING

'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

STRING

'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

STRING

Wie aggregation_numeric oder 'MEAN', wenn nicht angegeben

Die 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

Objekt

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 oder aggregation_categorical angegebene Methode oder den Standardwert für diesen Spaltentyp (MEAN für numerische, MODE für kategorische).

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).

frequency

STRING

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

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_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

INTEGER

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

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 wird für Klasseninstanzen nicht unterstützt, außer für Instanzen der Klasse CUSTOM_CLASSIFIER.

Beispiele

Siehe Beispiele.