ANOMALY_DETECTION¶
Nom complet : SNOWFLAKE.ML.ANOMALY_DETECTION
La détection des anomalies vous permet de détecter les valeurs aberrantes dans vos données de séries temporelles à l’aide d’un algorithme de machine learning. Vous utilisez CREATE SNOWFLAKE.ML.ANOMALY_DETECTION pour créer et entraîner le modèle de détection, puis vous utilisez la méthode <nom>!DETECT_ANOMALIES pour détecter les anomalies.
Important
Mention légale. Cette fonction Snowflake Cortex basée sur le ML est alimentée par une technologie de machine learning. La technologie de machine learning et les résultats fournis peuvent être inexacts, incorrects ou biaisés. Les décisions basées sur les résultats du machine learning, y compris celles qui sont intégrées dans des pipelines automatiques, devraient être soumises à une supervision humaine et à des processus d’examen pour s’assurer que le contenu généré par le modèle est exact. Les requêtes de fonctions Snowflake Cortex basées sur le ML seront traitées comme toute autre requête SQL et peuvent être considérées comme des métadonnées.
Métadonnées. Lorsque vous utilisez des fonctions Snowflake Cortex basées sur le ML, Snowflake enregistre les messages d’erreur génériques renvoyés par une fonction ML, en plus de ce qui est mentionné dans les champs de métadonnées. Ces journaux d’erreurs nous aident à résoudre les problèmes qui surviennent et à améliorer ces fonctions pour mieux répondre à vos demandes.
Pour plus d’informations, voir la FAQ relative à la confiance et à la sécurité concernant l’AI de Snowflake.
CREATE SNOWFLAKE.ML.ANOMALY_DETECTION¶
Crée un objet que vous utilisez pour détecter les anomalies ou remplace l’objet de détection d’anomalies portant le même nom.
Syntaxe¶
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>' ]
Paramètres¶
name
Indique l’identificateur (nom) de l’objet de détection d’anomalies ; doit être unique pour le schéma dans lequel l’objet est créée.
De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple,
"My object"
). Les identificateurs entre guillemets doubles sont également sensibles à la casse. Pour plus de détails, voir Exigences relatives à l’identificateur.
Arguments du constructeur¶
Obligatoire :
INPUT_DATA => reference_to_training_data
Spécifie une référence à la table, à la vue ou à la requête qui renvoie les données d’entraînement pour le modèle.
Pour créer cette référence, appelez SYSTEM$REFERENCE ou SYSTEM$QUERY_REFERENCE.
TIMESTAMP_COLNAME => 'timestamp_column_name'
Spécifie le nom de la colonne contenant les horodatages (TIMESTAMP_NTZ) dans les données de séries temporelles.
TARGET_COLNAME => 'target_column_name'
Spécifie le nom de la colonne contenant les données (NUMERIC ou FLOAT) à analyser.
LABEL_COLNAME => 'label_column_name'
Spécifie le nom de la colonne contenant les balises des données. Les balises sont des valeurs booléennes (vrai/faux) indiquant si une ligne donnée est une anomalie connue. Si vous ne disposez pas de données balisées, indiquez une chaîne vide (
''
) pour cet argument.
Facultatif :
SERIES_COLNAME => 'series_column_name'
Nom de la colonne contenant l’identificateur de la série (pour plusieurs séries temporelles). Cette colonne doit être un VARIANT, car elle peut contenir n’importe quel type de valeur ou une combinaison de valeurs provenant de plusieurs colonnes d’un tableau.
CONFIG_OBJECT => config_object
OBJECT contenant des paires clé-valeur utilisées pour configurer la tâche d’entraînement des modèles.
Clé
Type
Par défaut
Description
on_error
'ABORT'
Chaîne (constante) qui spécifie la méthode de gestion des erreurs pour l’entraînement. Cette fonction est particulièrement utile lors de l’entraînement de plusieurs séries. Valeurs prises en charge :
'abort'
: abandonner l’entraînement si une erreur est rencontrée dans une série temporelle.'skip'
: ignorer toute série temporelle pour laquelle l’entraînement a rencontré une erreur. Cela permet de réussir l’entraînement pour d’autres séries temporelles. Pour connaître les séries qui ont échoué lors de l’entraînement du modèle, appelez la méthode <nom>!SHOW_TRAINING_LOGS du modèle.
Notes sur l’utilisation¶
Si les noms de colonnes spécifiés par les arguments TIMESTAMP_COLNAME, TARGET_COLNAME ou LABEL_COLNAME n’existent pas dans la table, la vue ou la requête spécifiée par l’argument INPUT_DATA, une erreur se produit.
La réplication des instances de classe n’est actuellement pas prise en charge.
SHOW SNOWFLAKE.ML.ANOMALY_DETECTION¶
Répertorie tous les modèles de détection d’anomalies.
Syntaxe¶
SHOW SNOWFLAKE.ML.ANOMALY_DETECTION [ LIKE <pattern> ];
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
Paramètres¶
LIKE 'pattern'
(Facultatif) Filtre la sortie de commande par nom d’objet. Le filtre utilise une concordance de motif insensible à la casse avec prise en charge des caractères génériques SQL (
%
et_
).Par exemple, les motifs suivants donnent les mêmes résultats :
... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
. Par défaut : aucune valeur (aucun filtrage n’est appliqué à la sortie).
[ IN ... ]
Spécifie de manière facultative la portée de la commande. Spécifie l’un des éléments suivants :
ACCOUNT
Renvoie les enregistrements pour l’ensemble du compte.
DATABASE
, .DATABASE db_name
Renvoie les enregistrements pour la base de données en cours d’utilisation ou pour une base de données spécifiée (
db_name
).Si vous spécifiez
DATABASE
sansdb_name
et qu’aucune base de données n’est utilisée, le mot-clé n’a aucun effet sur la sortie.SCHEMA
, .SCHEMA schema_name
, .schema_name
Renvoie les enregistrements pour le schéma en cours d’utilisation ou un schéma spécifié (
schema_name
).SCHEMA
est facultatif si une base de données est utilisée ou si vous spécifiez leschema_name
complet (par exemple,db.schema
).Si aucune base de données n’est utilisée, spécifier
SCHEMA
n’a aucun effet sur la sortie.
Par défaut : dépend si la session dispose actuellement d’une base de données en cours d’utilisation :
Base de données :
DATABASE
est la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans la base de données).Aucune base de données :
ACCOUNT
est la valeur par défaut (c’est-à-dire que la commande renvoie les objets que vous pouvez visualiser dans votre compte).
Sortie¶
Les propriétés des modèles et les métadonnées dans les colonnes suivantes :
Colonne |
Description |
---|---|
created_on |
Date et heure de création du modèle |
name |
Nom du modèle |
database_name |
Base de données dans laquelle le modèle est stocké |
schema_name |
Schéma dans lequel le modèle est stocké |
current_version |
Version de l’algorithme du modèle |
commentaire |
Commentaire pour le modèle |
propriétaire |
Rôle qui possède le modèle |
DROP SNOWFLAKE.ML.ANOMALY_DETECTION¶
Supprime le modèle spécifié du schéma actuel ou spécifié. Les modèles supprimés ne peuvent être récupérés ; ils doivent être recréés.
Syntaxe¶
DROP SNOWFLAKE.ML.ANOMALY_DETECTION [IF EXISTS] <name>;
Paramètres¶
name
Indique l’identificateur du modèle à supprimer. Si l’identificateur contient des espaces, des caractères spéciaux ou des caractères majuscules et minuscules, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.
Si l’identificateur du modèle n’est pas complet (sous la forme
db_name.schema_name.name
ouschema_name.name
), la commande recherche le modèle dans le schéma actuel de la session.
<nom>!DETECT_ANOMALIES¶
Détecte et signale les anomalies dans les données d’entrée transmises à la méthode. Il s’agit d’une méthode de l’objet de détection d’anomalies que vous créez en exécutant la commande CREATE SNOWFLAKE.ML.ANOMALY_DETECTION.
La méthode renvoie un tableau dans lequel chaque ligne des données d’entrée est qualifiée d’anormale ou non.
Syntaxe¶
<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>' ]
)
Note
name
est l’objet que vous créez en exécutant la commande CREATE SNOWFLAKE.ML.ANOMALY_DETECTION.
Arguments¶
Obligatoire :
INPUT_DATA => reference_to_data_to_analyze
Référence à la table, à la vue ou à la requête qui renvoie les données à analyser.
TIMESTAMP_COLNAME => 'timestamp_column_name'
Nom de la colonne contenant les horodatages (TIMESTAMP_NTZ) dans les données de séries temporelles.
TARGET_COLNAME => 'target_column_name'
Nom de la colonne contenant les données à analyser (type NUMERIC ou FLOAT).
Facultatif :
SERIES_COLNAME => 'series_column_name'
Nom de la colonne contenant l’identificateur de la série (pour plusieurs séries temporelles). Cette colonne doit être un VARIANT, car elle peut contenir n’importe quel type de valeur ou des valeurs provenant de plusieurs colonnes d’un tableau.
CONFIG_OBJECT => config_object
OBJECT contenant des paires clé-valeur utilisées pour configurer la tâche de détection d’anomalie.
Clé
Type
Par défaut
Description
prediction_interval
0,99
Valeur comprise entre 0 et 1 qui spécifie le pourcentage des observations qui doivent être marquées comme des anomalies :
Pour une détection moins stricte des anomalies (c’est-à-dire pour identifier moins d’observations marquées comme des anomalies), indiquez une valeur plus élevée.
Pour une détection plus stricte des anomalies (c’est-à-dire pour identifier davantage d’observations comme des anomalies), réduisez cette valeur.
on_error
'ABORT'
Chaîne (constante) qui spécifie le traitement des erreurs pour la tâche de détection des anomalies. Cette fonction est particulièrement utile pour détecter des anomalies dans plusieurs séries. Valeurs prises en charge :
'abort'
: abandonner l’opération si une erreur est rencontrée dans une série temporelle.'skip'
: ignorer toute série temporelle pour laquelle la détection d’anomalie a rencontré une erreur. Cela permet de détecter les anomalies avec succès pour d’autres séries temporelles. Les séries qui ont échoué sont absentes des résultats.
Sortie¶
La fonction renvoie les colonnes suivantes :
Nom de la colonne |
Type de données |
Description |
---|---|---|
TS |
TIMESTAMP_NTZ |
Horodatages des données |
Y |
FLOAT |
Valeurs des séries temporelles |
FORECAST |
FLOAT |
Valeur prédite au moment de l’horodatage. |
LOWER_BOUND |
FLOAT |
Limite inférieure de la valeur dans l’intervalle de prédiction. Les valeurs inférieures à ce seuil sont signalées comme des anomalies. |
UPPER_BOUND |
FLOAT |
Limite supérieure de la valeur dans l’intervalle de prédiction. Les valeurs supérieures à ce seuil sont signalées comme des anomalies. |
IS_ANOMALY |
BOOLEAN |
Vrai si la valeur est une anomalie ; faux si elle ne l’est pas. |
PERCENTILE |
FLOAT |
Centile correspondant de la valeur Y observée compte tenu de l’intervalle de prédiction. Si le centile est en dehors de Si le champ |
DISTANCE |
FLOAT |
Multiple de l’écart type de la colonne FORECAST (z-score) |
Notes sur l’utilisation¶
Les colonnes des données spécifiées dans la commande CREATE SNOWFLAKE.ML.ANOMALY_DETECTION (dans l’argument du constructeur INPUT_DATA) doivent correspondre aux colonnes des données spécifiées dans l’argument INPUT_DATA de cette méthode.
Par exemple, si vous avez transmis l’argument SERIES_COLNAME à la commande CREATE SNOWFLAKE.ML.ANOMALY_DETECTION , vous devez également transmettre l’argument SERIES_COLNAME à cette méthode. Si vous avez omis l’argument SERIES_COLNAME dans la commande, vous devez omettre cet argument ici.
Si les noms de colonnes spécifiés par les arguments TIMESTAMP_COLNAME ou TARGET_COLNAME n’existent pas dans la table, la vue ou la requête spécifiée par l’argument INPUT_DATA, une erreur se produit.
<nom>!EXPLAIN_FEATURE_IMPORTANCE¶
Renvoie l’importance relative de chaque fonction utilisée par le modèle.
Syntaxe¶
<name>!EXPLAIN_FEATURE_IMPORTANCE();
Sortie¶
Colonne |
Type |
Description |
---|---|---|
SERIES |
Valeur de la série (présente uniquement si le modèle a été entraîné avec plusieurs séries temporelles) |
|
RANK |
Le rang d’importance d’une fonction pour une série spécifique |
|
FEATURE_NAME |
Le nom de la fonction utilisée pour entraîner le modèle |
|
IMPORTANCE_SCORE |
Le score d’importance de la fonction : une valeur dans [0, 1], 0 étant l’importance la plus faible possible, et 1 la plus élevée possible. |
|
FEATURE_TYPE |
La source de la fonction, une parmi :
|
<nom>!SHOW_TRAINING_LOGS¶
Renvoie les journaux de l’entraînement des modèles. La sortie est différente de NULL uniquement lorsque 'ON_ERROR' = 'SKIP'
est défini dans l’entraînement CONFIG_OBJECT
.
Syntaxe¶
<name>!SHOW_TRAINING_LOGS();
Sortie¶
La colonne SERIES n’est présente que pour les modèles multiséries. Les modèles à série unique n’ont pas cette colonne.
Colonne |
Type |
Description |
---|---|---|
SERIES |
Valeur de la série. Présente uniquement si le modèle a été entraîné avec plusieurs séries temporelles. |
|
LOGS |
Un journal des erreurs rencontrées pendant l’entraînement. La valeur de la clé |
Exemples¶
Voir Détection des anomalies.