FORECAST¶
Nom complet : SNOWFLAKE.ML.FORECAST
Un modèle de prévision produit une prévision pour une ou plusieurs séries temporelles. Vous utilisez CREATE SNOWFLAKE.ML.FORECAST pour créer et former le modèle de prévision, puis vous utilisez la méthode <nom>!FORECAST du modèle pour produire des prévisions. La méthode <nom>!EXPLAIN_FEATURE_IMPORTANCE fournit des informations sur l’influence de chaque fonction des données d’entraînement sur la prévision. La méthode <nom>!SHOW_TRAINING_LOGS fournit des messages d’erreur pour toutes les séries temporelles dont les modèles n’ont pas réussi à s’ajuster. La méthode Exemples fournit des mesures d’évaluation sur des données hors échantillon.
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.FORECAST¶
Crée un nouveau modèle de prévision à partir des données d’entraînement que vous fournissez, ou remplace le modèle de prévision portant le même nom.
Syntaxe¶
CREATE [ OR REPLACE ] SNOWFLAKE.ML.FORECAST [ IF NOT EXISTS ] <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>' ]
Note
L’utilisation d’arguments nommés rend l’ordre des arguments non pertinent et permet d’obtenir un code plus lisible. Cependant, vous pouvez également utiliser des arguments de position, comme dans l’exemple suivant :
CREATE SNOWFLAKE.ML.FORECAST <name>(
'<input_data>', '<series_colname>', '<timestamp_colname>', '<target_colname>'
);
Paramètres¶
name
Spécifie l’identificateur du modèle ; il doit être unique pour le schéma dans lequel le modèle est créé.
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.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 => input_data
Référence aux données d’entrée. L’utilisation d’une référence permet au processus d’entraînement, qui s’exécute avec des privilèges limités, d’utiliser vos privilèges pour accéder aux données. Vous pouvez utiliser une référence à une table ou à une vue si vos données sont déjà sous cette forme, ou vous pouvez utiliser une référence de requête pour fournir la requête à exécuter pour obtenir les données.
Les données référencées sont l’ensemble des données d’entraînement consommées par la modèle de prévisions. Si
input_data
contient des colonnes qui ne sont pas nomméestimestamp_colname
,target_colname
, ouseries_colname
, elles sont considérées comme des variables exogènes (fonctions supplémentaires). L’ordre des colonnes dans les données d’entrée n’a pas d’importance.Vos données d’entrée doivent comporter des colonnes dont le type est adapté à votre cas. Consultez Exemples pour plus de détails sur chaque cas.
Cas d’utilisation
Colonnes et types
Série temporelle unique
Colonne d’horodatage : TIMESTAMP_NTZ.
Colonne de valeur cible : FLOAT.
Séries temporelles multiples
Colonne de la série : VARIANT contenant des valeurs numériques et du texte.
Colonne d’horodatage : TIMESTAMP_NTZ.
Colonne de valeur cible : FLOAT.
Série temporelle unique avec variables exogènes
Colonne d’horodatage : TIMESTAMP_NTZ.
Colonne de valeur cible : FLOAT.
Séries temporelles multiples avec variables exogènes
Colonne de la série : VARIANT contenant des valeurs numériques et du texte.
Colonne d’horodatage : TIMESTAMP_NTZ.
Colonne de valeur cible : FLOAT.
TIMESTAMP_COLNAME => 'timestamp_colname'
Nom de la colonne contenant les horodatages dans
input_data
.TARGET_COLNAME => 'target_colname'
Nom de la colonne contenant la cible (valeur dépendante) dans
input_data
.
Facultatif :
SERIES_COLNAME => 'series_colname'
Pour les modèles de séries temporelles multiples, le nom de la colonne définissant les séries temporelles multiples dans
input_data
. Cette colonne peut être une valeur de n’importe quel type ou un tableau de valeurs provenant d’une ou plusieurs autres colonnes, comme présenté dans Prévision sur des séries multiples.Si vous fournissez des arguments en tenant compte de la position, il doit s’agir du deuxième argument.
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 traitement des erreurs pour la tâche d’entraînement des modèles. Cette fonction est particulièrement utile lors de l’entraînement de plusieurs séries. Valeurs prises en charge :
'abort'
: abandonner l’opération d’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 des modèles pour d’autres séries temporelles. Pour savoir quelle série a échoué, utilisez la méthode <nom>!SHOW_TRAINING_LOGS du modèle.
evaluate
TRUE
Si des mesures d’évaluation doivent être générées. Si TRUE, des modèles supplémentaires sont entraînés pour la validation croisée en utilisant les paramètres de
evaluation_config
.evaluation_config
Voir Configuration de l’évaluation ci-dessous.
Un objet de configuration facultatif pour spécifier comment les mesures d’évaluation hors échantillon doivent être générées.
Configuration de l’évaluation¶
L’objet evaluation_config
contient des paires clé-valeur qui configurent la validation croisée. Ces paramètres proviennent de TimeSeriesSplit de scikit-learn.
Clé
Type
Par défaut
Description
n_splits
5
Nombre de fractionnements.
max_train_size
INTEGER ou NULL (pas de maximum).
NULL
Taille maximale d’un seul ensemble d’entraînement.
test_size
INTEGER ou NULL.
NULL
Utilisé pour limiter la taille de l’ensemble de tests.
gap
0
Nombre d’échantillons à exclure de la fin de chaque ensemble d’entraînement avant l’ensemble de test.
prediction_interval
0,95
L’intervalle de prédiction utilisé dans le calcul des métriques d’intervalle.
Notes sur l’utilisation¶
La réplication des instances de classe n’est actuellement pas prise en charge.
SHOW SNOWFLAKE.ML.FORECAST¶
Dresse la liste de tous les modèles de prévision.
Syntaxe¶
SHOW SNOWFLAKE.ML.FORECAST [ 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¶
La sortie de commande fournit 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.FORECAST¶
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.FORECAST [ 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>!FORECAST¶
Génère une prévision à partir du modèle précédemment entraîné name
.
Syntaxe¶
Les arguments requis varient en fonction du cas d’utilisation pour lequel le modèle a été entraîné.
Pour les modèles à série unique sans variables exogènes :
<name>!FORECAST(
FORECASTING_PERIODS => <forecasting_periods>,
[ CONFIG_OBJECT => <config_object> ]
);
Pour les modèles à série unique avec des variables exogènes :
<name>!FORECAST(
INPUT_DATA => <input_data>,
TIMESTAMP_COLNAME => '<timestamp_colname>',
[ CONFIG_OBJECT => <config_object> ]
);
Pour les modèles à séries multiples sans variables exogènes :
<name>!FORECAST(
SERIES_VALUE => <series>,
FORECASTING_PERIODS => <forecasting_periods>,
[ CONFIG_OBJECT => <config_object> ]
);
Pour les modèles à séries multiples avec variables exogènes :
<name>!FORECAST(
SERIES_VALUE => <series>,
SERIES_COLNAME => <series_colname>,
INPUT_DATA => <input_data>,
TIMESTAMP_COLNAME => '<timestamp_colname>',
[ CONFIG_OBJECT => <config_object> ]
);
Arguments¶
Obligatoire :
Tous les arguments suivants ne sont pas nécessaires pour tous les cas d’utilisation.
FORECASTING_PERIODS => forecasting_periods
Nécessaire pour les prévisions sans variables exogènes.
Nombre de pas en avant pour la prévision. L’intervalle entre les étapes est déduit par le modèle au cours de l’entraînement.
INPUT_DATA => input_data
Nécessaire pour les prévisions avec des variables exogènes.
Référence à une table, une vue ou une requête qui contient les horodatages futurs et les valeurs des variables exogènes (fonctions supplémentaires fournies par l’utilisateur) qui ont été transmises en tant que
input_data
lors de la formation du modèle. L’utilisation d’une référence permet au processus de prévision, qui s’exécute avec des privilèges limités, d’utiliser vos privilèges pour accéder aux données. Les colonnes sont mises en correspondance entre cet argument et les données d’entraînement exogènes d’origine par nom.TIMESTAMP_COLNAME => 'timestamp_colname'
Nécessaire pour les prévisions avec des variables exogènes.
Nom de la colonne dans
input_data
contenant les horodatages.SERIES_COLNAME => 'series_colname'
Nécessaire pour les prévisions multi-séries avec des variables exogènes.
Nom de la colonne dans
input_data
spécifiant la série.SERIES_VALUE => series
Nécessaire pour les prévisions multi-séries.
Série temporelle à prévoir. Peut être une valeur unique (par exemple,
'Series A'::variant
) ou un VARIANT, mais doit spécifier une série sur laquelle le modèle a été entraîné. Si elle n’est pas spécifiée, toutes les séries entraînées sont prévues.
Facultatif :
CONFIG_OBJECT => config_object
OBJECT contenant des paires de clés de valeurs utilisées pour configurer la tâche de prévision.
Clé
Type
Par défaut
Description
prediction_interval
0,95
Une valeur supérieure ou égale à 0,0 et inférieure à 1,0. La valeur par défaut est 0,95, ce qui signifie que 95 % des points futurs devraient se situer dans l’intervalle [lower_bound, upper_bound] du résultat de la prévision.
on_error
'ABORT'
Chaîne (constante) spécifiant la méthode de gestion des erreurs. Cette fonction est particulièrement utile pour la prévision de plusieurs séries. Valeurs prises en charge :
'abort'
: abandonner l’opération de prévision de modèle si une erreur est rencontrée dans une série temporelle.l
'skip'
: ignorer toute série temporelle pour laquelle la prévision a rencontré une erreur. Cela permet d’effectuer des prévisions pour d’autres séries temporelles. Les séries qui ont échoué sont absentes de la sortie du modèle.
Sortie¶
La colonne SERIES n’est présente que pour les prévisions multiséries. Les prévisions à série unique n’ont pas cette colonne.
Colonne |
Type |
Description |
---|---|---|
SERIES |
Valeur de la série (si le modèle a été entraîné avec plusieurs séries temporelles) |
|
TS |
Horodatage. |
|
FORECAST |
Valeur cible de la prévision. |
|
LOWER_BOUND |
Limite inférieure de l’intervalle de prédiction. |
|
UPPER_BOUND |
Limite supérieure de l’intervalle de prédiction. |
<nom>!EXPLAIN_FEATURE_IMPORTANCE¶
Renvoie l’importance relative de chaque fonction utilisée par le modèle.
Syntaxe¶
<name>!EXPLAIN_FEATURE_IMPORTANCE();
Sortie¶
La colonne SERIES n’est présente que pour les prévisions multiséries. Les prévisions à série unique n’ont pas cette colonne.
Colonne |
Type |
Description |
---|---|---|
SERIES |
Valeur de la série (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 donnée. |
|
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 |
Source de la fonction. Une des options :
|
<nom>!SHOW_EVALUATION_METRICS¶
Renvoie les mesures d’évaluation hors échantillon générées à l’aide de la validation croisée des séries temporelles. Les métriques ne sont disponibles que si evaluate=TRUE
dans le CONFIG_OBJECT
lors de la construction du modèle (c’est la valeur par défaut).
Syntaxe¶
<name>!SHOW_EVALUATION_METRICS();
Sortie¶
La colonne SERIES n’est présente que pour les prévisions multiséries. Les prévisions à 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) |
|
ERROR_METRIC |
Le nom de la métrique d’erreur utilisée. La méthode renvoie les données suivantes : Métriques ponctuelles : Mesures d’intervalle : ces mesures utilisent l’argument
|
|
LOGS |
Contient des messages d’erreur ou d’avertissement. |
<nom>!SHOW_TRAINING_LOGS¶
Renvoie les journaux de l’entraînement des modèles. La sortie n’est pas NULL uniquement lorsque 'ON_ERROR' = 'SKIP'
est défini dans l’entraînement CONFIG_OBJECT
, sinon le modèle entier ne parvient pas à s’entraîner.
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 (si le modèle a été entraîné avec plusieurs séries temporelles) |
|
LOGS |
Objet contenant les erreurs rencontrées pendant l’entraînement. Actuellement, la seule clé est |
Exemples¶
Voir Exemples.