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>!DETECT_ANOMALIES, um Anomalien zu erkennen.

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.

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>(
  INPUT_DATA => <reference_to_training_data>,
  [ SERIES_COLNAME => '<series_column_name>', ]
  TIMESTAMP_COLNAME => '<timestamp_column_name>',
  TARGET_COLNAME => '<target_column_name>',
  LABEL_COLNAME => '<label_column_name>',
  [ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
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.

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

STRING

'ABORT'

Zeichenfolge (Konstante), die die Fehlerbehandlungsmethode für das Training angibt. Dies ist besonders nützlich, wenn mehrere Zeitreihen trainiert werden. Folgende Werte werden unterstützt:

  • 'abort': Training abbrechen, wenn in einer der Zeitreihen ein Fehler auftritt.

  • 'skip': Alle Zeitreihen überspringen, bei denen während des Trainings ein Fehler auftritt. Dies ermöglicht ein erfolgreiches Training für andere Zeitreihen. Um anzuzeigen, welche Zeitreihen während des Modelltrainings fehlgeschlagen sind, rufen Sie die Methode <name>!SHOW_TRAINING_LOGS des Modells auf.

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

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

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

<name>!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, in der jede Zeile der Eingabedaten als anomal oder nicht anomal gekennzeichnet ist.

Syntax

<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

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

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

TIMESTAMP_COLNAME => 'timestamp_column_name'

Der Name der Spalte, die in den Zeitreihendaten die Zeitstempel (TIMESTAMP_NTZ) enthält.

TARGET_COLNAME => 'target_column_name'

Der Namen der Spalte, die die zu analysierenden Daten enthält (Datentyp 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 => config_object

OBJECT mit Schlüssel-Wert-Paaren, die zur Konfiguration des Anomalieerkennungs-Jobs verwendet werden.

Schlüssel

Typ

Standard

Beschreibung

prediction_interval

FLOAT

0,99

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.

on_error

STRING

'ABORT'

Zeichenfolge (Konstante), die die Fehlerbehandlung für die Anomalieerkennungsaufgabe angibt. Dies ist vor allem bei der Erkennung von Anomalien in mehreren Zeitreihen nützlich. Folgende Werte werden unterstützt:

  • 'abort': Operation abbrechen, wenn in einer Zeitreihe ein Fehler auftritt.

  • 'skip': Alle Zeitreihen überspringen, bei denen während der Anomalieerkennung ein Fehler auftritt. Dies ermöglicht eine erfolgreiche Anomalieerkennung für andere Zeitreihen. Die fehlgeschlagenen Zeitreihen sind in der Ausgabe nicht enthalten.

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 vorhergesagte Wert zum Zeitpunkt des Zeitstempels.

LOWER_BOUND

FLOAT

Die untere Grenze des Wertes innerhalb des Vorhersageintervalls. Werte, die unter diesem Wert liegen, werden als Anomalien gekennzeichnet.

UPPER_BOUND

FLOAT

Die obere Grenze des Wertes innerhalb des Vorhersageintervalls. Werte, die über diesem Wert liegen, werden als Anomalien gekennzeichnet.

IS_ANOMALY

BOOLEAN

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

PERCENTILE

FLOAT

Das entsprechende Perzentil des beobachteten Y-Werts im Vorhersageintervall.

Wenn das Perzentil außerhalb von ((1 - alpha) / 2, 1 - (1 - alpha) / 2) liegt, wird der Wert als Anomalie gekennzeichnet. Wenn das Vorhersageintervall beispielsweise 0,95 ist, wäre ein Perzentil von 0,96 keine Anomalie, aber ein Perzentil von 0,98 wäre eine.

Wenn im Feld prediction_interval des Konfigurationsobjekts kein Wert angegeben ist, wird das Standardvorhersageintervall 0,99 verwendet.

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 hier 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>!EXPLAIN_FEATURE_IMPORTANCE

Gibt die relative Feature-Bedeutung (Feature Importance) für jedes vom Modell verwendete Feature zurück.

Syntax

<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

<name>!SHOW_TRAINING_LOGS

Gibt die Protokolleinträge des Modelltrainings zurück. Die Ausgabe ist nur dann Nicht-NULL, wenn 'ON_ERROR' = 'SKIP' im CONFIG_OBJECT für das Training gesetzt ist.

Syntax

<name>!SHOW_TRAINING_LOGS();
Copy

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

VARIANT

Zeitreihenwert. Nur vorhanden, wenn Modell mit mehreren Zeitreihen trainiert wurde.

LOGS

OBJECT

Ein Protokoll der während des Trainings aufgetretenen Fehler. Der Wert für den Schlüssel Errors ist ein Array von Trainingsfehlern. Wenn keine Fehler aufgetreten sind, hat die LOGS-Spalte den Wert NULL.

Beispiele

Siehe Erkennen von Anomalien.