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>' ]
Copy

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>');
Copy

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 ou schema_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ées timestamp_colname, target_colname, ou series_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

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

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

  • Colonnes de fonctions exogènes : numérique ou texte

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.

Exemples

Voir Exemples.

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>
                                }
                            ]
Copy

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 sans db_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 le schema_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>;
Copy

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 ou schema_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>]
);
Copy

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>]
);
Copy

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>]
);
Copy

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>]
);
Copy

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

FLOAT

[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

VARIANT

Série pour la valeur prédite dans cette ligne (pour les prévisions multi-séries)

TS

TIMESTAMP_NTZ

Horodatage

FORECAST

FLOAT

Valeur cible de la prévision

LOWER_BOUND

FLOAT

Limite inférieure de l’intervalle de prédiction

UPPER_BOUND

FLOAT

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();
Copy

Sortie

Colonne

Type

Description

SERIES

VARIANT

Valeur de la série (présente uniquement si le modèle a été entraîné avec plusieurs séries temporelles)

RANK

INTEGER

Le rang d’importance d’une fonction pour une série donnée

FEATURE_NAME

VARCHAR

Le nom de la fonction utilisée pour entraîner le modèle aggregated_endogenous_features représente toutes les fonctions dérivées en tant que transformations de votre variable cible.

IMPORTANCE_SCORE

FLOAT

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

VARCHAR

La source de la fonction, une parmi :

  • user_provided

  • derived_from_timestamp

  • derived_from_endogenous

Exemples

Voir Exemples.