ANOMALY_DETECTION

Vollqualifizierter Name: SNOWFLAKE.ML.ANOMALY_DETECTION

Die Anomalieerkennung ermöglicht das Erkennen von Ausreißern in Ihren Zeitreihendaten mithilfe von Machine Learning-Algorithmen. Sie verwenden CREATE SNOWFLAKE.ML.ANOMALY_DETECTION, um das Erkennungsmodell zu erstellen und zu trainieren, und verwenden dann die Methode <Name_des_Modells>!DETECT_ANOMALIES, um Anomalien zu erkennen.

CREATE SNOWFLAKE.ML.ANOMALY_DETECTION

Generiert ein Objekt, das Sie zur Anomalieerkennung verwenden, oder ersetzt das gleichnamige Anomalieerkennungsobjekt.

Syntax

CREATE [ OR REPLACE ] SNOWFLAKE.ML.ANOMALY_DETECTION <name>(
  [ SERIES_COLNAME => '<series_column_name>' , ]
  INPUT_DATA => <reference_to_training_data>,
  TIMESTAMP_COLNAME => '<timestamp_column_name>',
  TARGET_COLNAME => '<target_column_name>',
  LABEL_COLNAME => '<label_column_name>'
)
Copy

Parameter

name

Gibt den Bezeichner (name) für das Anomalieerkennungsobjekt an. Dieser muss für das Schema, in dem das Objekt erstellt wird, eindeutig sein.

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

Gibt eine Referenz auf die Tabelle, Ansicht oder Abfrage an, die die Trainingsdaten für das Modell zurückgibt.

Zum Erstellen dieser Referenz rufen Sie SYSTEM$REFERENCE oder SYSTEM$QUERY_REFERENCE auf.

TIMESTAMP_COLNAME => 'timestamp_column_name'

Gibt den Namen der Spalte an, die in den Zeitreihendaten die Zeitstempel (TIMESTAMP_NTZ) enthält.

TARGET_COLNAME => 'target_column_name'

Gibt den Namen der Spalte an, die die zu analysierenden Daten enthält (NUMERIC oder FLOAT).

LABEL_COLNAME => 'label_column_name'

Gibt den Namen der Spalte an, die die Beschriftungen für die Daten enthält. Beschriftungen sind boolesche Werte (wahr/falsch), die angeben, ob eine bestimmte Zeile eine bekannte Anomalie ist.

Wenn Sie keine beschrifteten Daten haben, übergeben Sie eine leere Zeichenfolge für dieses Argument.

Optional:

SERIES_COLNAME => 'series_column_name'

Name der Spalte, die den Bezeichner für die Zeitreihe enthält (bei mehreren Zeitreihen). Diese Spalte sollte vom Typ VARIANT sein, da sie jede Art von Wert oder eine Kombination von Werten aus mehr als einer Spalte in einem Array enthalten kann.

Nutzungshinweise

  • Wenn die durch die Argumente TIMESTAMP_COLNAME, TARGET_COLNAME oder LABEL_COLNAME angegebenen Spaltennamen nicht in der Tabelle, Ansicht oder Abfrage enthalten sind, die im Argument INPUT_DATA angegebenen ist, tritt ein Fehler auf.

  • Die Replikation von Klasseninstanzen wird derzeit nicht unterstützt.

SHOW SNOWFLAKE.ML.ANOMALY_DETECTION

Listet alle Anomalieerkennungsmodelle auf.

Syntax

SHOW SNOWFLAKE.ML.ANOMALY_DETECTION [ LIKE <pattern> ];
                                    [ IN
                                      {
                                        ACCOUNT                  |

                                        DATABASE                 |
                                        DATABASE <database_name> |

                                        SCHEMA                   |
                                        SCHEMA <schema_name>     |
                                        <schema_name>
                                      }
                                    ]
Copy

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

Entfernt das angegebene Modell aus dem aktuellen oder angegebenen Schema.

Syntax

DROP SNOWFLAKE.ML.ANOMALY_DETECTION [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>!DETECT_ANOMALIES

Erkennt und berichtet Anomalien in den Eingabedaten, die an die Methode übergeben wurden. Dies ist eine Methode des Anomalieerkennungsobjekts, das Sie durch Ausführen des Befehls CREATE SNOWFLAKE.ML.ANOMALY_DETECTION erstellen.

Die Methode gibt eine Tabelle zurück, die für jede erkannte Anomalie eine Zeile enthält.

Syntax

<model_name>!DETECT_ANOMALIES(
  INPUT_DATA => <reference_to_data_to_analyze>
  , TIMESTAMP_COLNAME => '<timestamp_column_name>'
  , TARGET_COLNAME => '<target_column_name>'
  [ , CONFIG_OBJECT => <configuration_object> ]
  [ , SERIES_COLNAME => '<series_column_name>' ]
)
Copy

Bemerkung

model_name ist das Objekt, das Sie durch Ausführen des Befehls CREATE SNOWFLAKE.ML.ANOMALY_DETECTION erstellen.

Argumente

Erforderlich:

INPUT_DATA => reference_to_data_to_analyze

Gibt eine Referenz auf die Tabelle, Ansicht oder Abfrage an, die die zu analysierenden Daten zurückgibt.

TIMESTAMP_COLNAME => 'timestamp_column_name'

Gibt den Namen der Spalte an, die in den Zeitreihendaten die Zeitstempel (TIMESTAMP_NTZ) enthält.

TARGET_COLNAME => 'target_column_name'

Gibt den Namen der Spalte an, die die zu analysierenden Daten enthält (NUMERIC oder FLOAT).

Optional:

SERIES_COLNAME => 'series_column_name'

Name der Spalte, die den Bezeichner für die Zeitreihe enthält (bei mehreren Zeitreihen). Diese Spalte sollte vom Typ VARIANT sein, da sie Werte jeden Typs oder Werte mehrerer Spalten in einem Array enthalten kann.

CONFIG_OBJECT => configuration_object

OBJECT, das die Konfigurationseinstellungen für dieses Objekt angibt.

Sie können entweder eine Objektkonstante oder die Funktion OBJECT_CONSTRUCT verwenden, um dieses Objekt zu erstellen.

In diesem Objekt können Sie die folgenden Schlüssel und Werte festlegen:

Schlüssel

Beschreibung des Werts

'prediction_interval'

Wert zwischen 0 und 1, der den Prozentsatz der Beobachtungen angibt, die als Anomalien markiert werden sollen:

  • Für eine weniger strenge Anomalieerkennung (d. h. weniger Beobachtungen identifizieren, die als Anomalien markiert werden), geben Sie einen höheren Wert an.

  • Für eine strengere Anomalieerkennung (d. h. mehr Beobachtungen als Anomalien identifizieren), reduzieren Sie diesen Wert.

Standardwert: 0,99 (1 % der Daten werden als Anomalien markiert).

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

TS

TIMESTAMP_NTZ

Zeitstempel der Daten

Y

FLOAT

Werte der Zeitreihen

FORECAST

FLOAT

Der zum Zeitpunkt des Zeitstempels vorhergesagte Wert

Die Funktion verwendet diese Werte, um die Vorhersageintervalle zu erstellen, die anomale Datenpunkte identifizieren.

LOWER_BOUND

FLOAT

Untere Grenze des Wertes innerhalb des Vorhersageintervalls

Werte, die unter diesem Wert liegen, werden als Anomalien gekennzeichnet.

UPPER_BOUND

FLOAT

Obere Grenze des Wertes innerhalb des Vorhersageintervalls

Werte, die über diesem Wert liegen, werden als Anomalien gekennzeichnet.

IS_ANOMALY

BOOLEAN

„true“, wenn der Wert eine Anomalie ist; „false“, wenn nicht.

PERCENTILE

FLOAT

Das entsprechende Perzentil des Vorhersageintervalls für den Y-Wert.

Wenn das Perzentil außerhalb von ((1-prediction_interval)/2, (1-prediction_interval)/2 + prediction_interval liegt, wird der Wert nicht als Anomalie gekennzeichnet.

Wenn im Feld prediction_interval des Konfigurationsobjekts kein Wert angegeben wird, ist das Standardvorhersageintervall 0,99. Wenn zum Beispiel das Perzentil 0,96 und das Vorhersageintervall 0,95 ist, wird der beobachtete Wert als Anomalie gekennzeichnet.

DISTANCE

FLOAT

Das Vielfache der Standardabweichung aus der Spalte FORECAST (z-Wert)

Nutzungshinweise

  • Die Spalten für die Daten, die im Befehl CREATE SNOWFLAKE.ML.ANOMALY_DETECTION (im Konstruktorargument INPUT_DATA) angegeben sind, müssen mit den Spalten der Daten übereinstimmen, die im Argument INPUT_DATA dieser Methode angegeben sind.

    Wenn Sie beispielsweise das Argument SERIES_COLNAME an den Befehl CREATE SNOWFLAKE.ML.ANOMALY_DETECTION übergeben haben, müssen Sie dieser Methode auch das Argument SERIES_COLNAME übergeben. Wenn Sie das Argument SERIES_COLNAME im Befehl weggelassen haben, müssen Sie dieses Argument auch beim Aufrufen dieser Methode weglassen.

  • Wenn die durch die Argumente TIMESTAMP_COLNAME oder TARGET_COLNAME angegebenen Spaltennamen nicht in der Tabelle, Ansicht oder Abfrage enthalten sind, die im Argument INPUT_DATA angegebenen ist, tritt ein Fehler auf.

<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 Erkennen von Anomalien.