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.
Weitere Informationen dazu finden Sie unter Snowflake AI Trust and Safety FAQ.
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>' ]
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
'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>
}
]
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¶
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>;
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>!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>' ]
)
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
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
'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 Wenn im Feld |
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();
Ausgabe¶
Spalte |
Typ |
Beschreibung |
---|---|---|
SERIES |
Zeitreihenwert (nur vorhanden, wenn Modell mit mehreren Zeitreihen trainiert wurde) |
|
RANK |
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; ein der folgenden Optionen:
|
<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();
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. Nur vorhanden, wenn Modell mit mehreren Zeitreihen trainiert wurde. |
|
LOGS |
Ein Protokoll der während des Trainings aufgetretenen Fehler. Der Wert für den Schlüssel |
Beispiele¶
Siehe Erkennen von Anomalien.