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>',
[ 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¶
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.
Pour créer cette référence, vous pouvez utiliser le mot-clé TABLE avec le nom de la table, de la vue ou de la requête, ou vous pouvez appeler la fonction SYSTEM$REFERENCE ou SYSTEM$QUERY_REFERENCE.
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
aggregation_categorical
'MODE'
Méthode d’agrégation pour les fonctionnalités catégorielles. Valeurs prises en charge :
'MODE'
: valeur la plus fréquente.'FIRST'
: valeur la plus ancienne.'LAST'
: valeur la plus récente.
aggregation_numeric
'MEAN'
La méthode d’agrégation pour les fonctionnalités numériques. Valeurs prises en charge :
'MEAN'
: moyenne des valeurs.'MEDIAN'
: valeur moyenne.MODE
: valeur la plus fréquente.'MIN'
: valeur plus petite.'MAX'
: valeur la plus grande.'SUM'
: total des valeurs.'FIRST'
: valeur la plus ancienne.'LAST'
: valeur la plus récente.
aggregation_target
Même chose que
aggregation_numeric
, ou'MEAN'
si non spécifiéMéthode d’agrégation pour la valeur cible. Valeurs prises en charge :
'MEAN'
: moyenne des valeurs.'MEDIAN'
: valeur moyenne.MODE
: valeur la plus fréquente.'MIN'
: valeur plus petite.'MAX'
: valeur la plus grande.'SUM'
: total des valeurs.'FIRST'
: valeur la plus ancienne.'LAST'
: valeur la plus récente.
aggregation_column
s/o
Un objet contenant des paires clé-valeur (toutes deux des chaînes) qui spécifient la méthode d’agrégation pour des colonnes spécifiques. La clé est le nom de la colonne et la valeur est la méthode d’agrégation. Si une colonne n’est pas spécifiée, le modèle utilise la méthode spécifiée par
aggregation_numeric
ouaggregation_categorical
, ou la valeur par défaut pour ce type de colonne (MEAN
pour numérique,MODE
pour catégorique).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.
frequency
s/o
Fréquence des séries chronologiques. Si non spécifié, le modèle déduit la fréquence. La valeur doit être une chaîne représentant une période, telle que
'1 day'
. Les unités prises en charge incluent les secondes, les minutes, les heures, les jours, les semaines, les mois, les trimestres et les années. Vous pouvez utiliser le singulier (« heure ») ou le pluriel (« heures ») pour le nom de l’intervalle, mais vous ne pouvez pas l’abréger.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_du_modèle>!SHOW_TRAINING_LOGS du modèle.
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
1
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 n’est pas prise en charge pour les instances de classe, à l’exception des instances de la classe CUSTOM_CLASSIFIER.
Exemples¶
Voir Exemples.