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_du_modèle>!FORECAST du modèle pour produire des prévisions. La méthode <nom_du_modèle>!EXPLAIN_FEATURE_IMPORTANCE fournit des informations sur l’influence de chaque fonction des données d’entraînement sur la prévision.
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 ] <model_name>(
INPUT_DATA => <input_data>,
[SERIES_COLNAME => '<series_colname>',]
TIMESTAMP_COLNAME => '<timestamp_colname>',
TARGET_COLNAME => '<target_colname>')
[ [ 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¶
model_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 balise d’entraînement (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.
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'
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%' ...
[ 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 du modèle, actuellement 1 |
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é.
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.
Notes sur l’utilisation¶
Les modèles supprimés ne peuvent être récupérés ; ils doivent être recréés.
<nom_du_modèle>!FORECAST¶
Génère une prévision à partir du modèle précédemment entraîné model_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 :
<model_name>!FORECAST(
FORECASTING_PERIODS => <forecasting_periods>,
[CONFIG_OBJECT => <config_object>]
);
Pour les modèles à série unique avec des variables exogènes :
<model_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 :
<model_name>!FORECAST(
SERIES_VALUE => <series>,
FORECASTING_PERIODS => <forecasting_periods>,
TIMESTAMP_COLNAME => '<timestamp_colname>',
[CONFIG_OBJECT => <config_object>]
);
Pour les modèles à séries multiples avec variables exogènes :
<model_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 énumérés précédemment.
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. Vos variables exogènes doivent être dans le même ordre à cette étape qu’à l’étape d’entraînement.
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. Actuellement, il n’existe qu’une seule option de configuration.
Clé
Type
Description
prediction_interval
[0, 1)
. 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.
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.
Une colonne supplémentaire est également présente pour chaque variable exogène. Leur nombre, leur nom et leur type varient, c’est pourquoi ils ne sont pas mentionnés ici.
Colonne |
Type |
Description |
---|---|---|
SERIES |
Série pour la valeur prédite dans cette ligne (pour les prévisions multi-séries) |
|
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_du_modèle>!EXPLAIN_FEATURE_IMPORTANCE¶
Renvoie l’importance relative de chaque fonction utilisée par le modèle.
Syntaxe¶
<model_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 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 |
La source de la fonction, une parmi :
|