Partager via


Vue d’ensemble des méthodes de prévision d’AutoML

Cet article se concentre sur les méthodes utilisées par AutoML pour préparer des données de série chronologique et générer des modèles de prévision. Pour obtenir des instructions et des exemples pour l’apprentissage des modèles de prévision dans AutoML, consultez notre article Configuration d’AutoML pour la prévision de séries chronologiques.

AutoML utilise plusieurs méthodes pour prévoir des valeurs de série chronologique. Ces méthodes peuvent être classées en deux catégories :

  1. Des modèles de série chronologique qui utilisent des valeurs historiques de la quantité cible afin d’effectuer des prédictions pour l’avenir
  2. Des modèles de régression, ou explicatifs, qui utilisent des variables de prédicteur pour prévoir les valeurs de la cible

Prenons par exemple le problème de la prévision de la demande quotidienne d’une marque particulière de jus d’orange dans une épicerie. $y_t$ représente la demande pour cette marque le jour $t$. Un modèle de série chronologique prédit la demande à $t+1$ à l’aide d’une fonction de la demande historique :

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$.

La fonction $f$ prend souvent des paramètres qui sont réglés suivant la demande observée par le passé. La quantité d’historique utilisée par $f$ pour effectuer des prédictions, $s$, peut également être considérée comme un paramètre du modèle.

Le modèle de série chronologique appliqué dans l’exemple de demande de jus d’orange peut manquer de précision, car il n’utilise que des informations sur la demande passée. De nombreux autres facteurs influencent probablement la demande future : prix, jour de la semaine et jour férié ou non, etc. Prenons un modèle de régression qui utilise les variables de prédicteur suivantes :

$y = g(\text{prix}, \text{jour de la semaine}, \text{jour férié})$

Là encore, $g$ prend généralement un ensemble de paramètres (notamment ceux qui régissent la régularisation), qui sont réglés par AutoML suivant les valeurs passées de la demande et les prédicteurs. $t$ est omis dans l’expression pour souligner que le modèle de régression utilise des modèles de corrélation entre des variables définies simultanément pour effectuer des prédictions. Autrement dit, pour prédire $y_{t+1}$ à partir de $g$, nous devons savoir sur quel jour de la semaine $t+1$ tombe, s’il s’agit d’un jour férié et quel est le prix du jus d’orange le jour $t+1$. Les deux premières informations sont toujours faciles à trouver en consultant un calendrier. Le prix de vente étant généralement fixé à l’avance, celui du jus d’orange est probablement connu un jour avant. Il peut cependant ne pas l’être 10 jours à l’avance ! Il est important de comprendre que l’utilité de cette régression est limitée par la portée dans le temps des prévisions (également appelée horizon de prévision) et par notre connaissance des valeurs futures des prédicteurs.

Important

Les modèles de régression de prévision d’AutoML supposent que toutes les caractéristiques fournies par l’utilisateur sont connues par avance, au moins jusqu’à l’horizon de prévision.

Les modèles de régression de prévision d’AutoML peuvent également être complétés pour utiliser les valeurs historiques de la cible et des prédicteurs. En résulte un modèle hybride présentant les caractéristiques d’un modèle de série chronologique et d’un modèle de régression pure. Les quantités historiques constituent des variables prédictrices supplémentaires dans la régression, appelées quantités décalées. L’ordre du décalage fait référence à la date à laquelle la valeur est connue. Par exemple, la valeur actuelle d’un décalage d’ordre deux de la cible est, dans notre exemple de demande de jus d’orange, la demande observée il y a deux jours.

Une autre différence notable entre les modèles de série chronologique et les modèles de régression réside dans la façon dont ils génèrent des prévisions. Les modèles de série chronologique sont généralement définis par des relations de récursivité. Ils produisent une prévision à la fois. Pour prévoir de nombreuses périodes dans l’avenir, ils effectuent des itérations successives jusqu’à l’horizon de prévision, en réinjectant les prévisions précédentes dans le modèle pour générer les prévisions de la période suivante. Les modèles de régression, eux, sont des prévisionnistes directs qui produisent en une seule fois toutes les prévisions jusqu’à l’horizon. Les prévisionnistes directs peuvent être préférables aux modèles récursifs, car ces derniers aggravent l’erreur de prédiction lorsqu’ils réinjectent les prévisions précédentes dans le modèle. En présence de caractéristiques de décalage, AutoML apporte des modifications importantes aux données d’apprentissage afin que les modèles de régression puissent fonctionner comme des prévisionnistes directs. Pour plus d’informations , consultez l’article Caractéristiques de décalage .

Modèles de prévision dans AutoML

Le tableau suivant présente les modèles de prévision implémentés dans AutoML et la catégorie à laquelle ils appartiennent :

Modèles de série chronologique Modèles de régression
Naïf, saisonnier naïf, moyenne, moyenne saisonnière, ARIMA(X), lissage exponentiel Descente de gradient stochastique (SGD) linéaire, LARS LASSO, Elastic Net, Prophet, K plus proches voisins, Arbre de décision, Forêt aléatoire, Arborescences extrêmement aléatoires, Arbres GVT (Gradient Boosted Trees), LightGBM, XGBoost, TCNForecaster

Les modèles de chaque catégorie sont listés approximativement par ordre de complexité, également appelée capacité du modèle. Un modèle naïf, qui prévoit simplement la dernière valeur observée, présente une faible capacité, contrairement au réseau convolutif temporel (TCNForecaster), un réseau neuronal profond qui peut inclure des millions de paramètres réglables.

Il est important de noter qu’AutoML inclut également des modèles ensemblistes qui créent des combinaisons pondérées des modèles les plus performants pour améliorer encore la précision. Pour la prévision, nous utilisons un ensemble de votes souples, dans lequel la composition et les pondérations sont trouvées au moyen de l’algorithme de sélection d’ensemble Caruana.

Notes

Il existe deux mises en garde importantes pour les ensembles de modèles de prévision :

  1. Le réseau convolutif temporel ne peut actuellement pas être inclus dans des ensembles.
  2. AutoML désactive par défaut une autre méthode ensembliste, le stacking, qui est fourni avec les tâches de régression et de classification par défaut dans AutoML. Le stacking ajuste un métamodèle sur les meilleures prévisions des modèles pour trouver les pondérations de l’ensemble. Nous avons constaté dans un benchmark interne que cette stratégie présente une tendance accrue à surajuster les données de série chronologique, ce qui peut entraîner une mauvaise généralisation. C’est pourquoi le stacking est désactivé par défaut. Vous pouvez toutefois l’activer si vous le souhaitez dans la configuration d’AutoML.

Utilisation des données dans AutoML

AutoML accepte les données de série chronologique au format tabulaire « large ». Autrement dit, à chaque variable doit correspondre une colonne. AutoML exige que l’une des colonnes soit l’axe temporel du problème de prévision. Cette colonne doit être analysable dans un type DateHeure. Le jeu de données de série chronologique le plus simple se compose d’une colonne de temps et d’une colonne cible numérique. La cible représente la variable à prédire dans l’avenir. Voici un exemple de format dans ce cas simple :

timestamp quantité
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

Dans des cas plus complexes, les données peuvent contenir d’autres colonnes alignées sur l’indice de temps.

timestamp SKU price Publicité quantité
2012-01-01 JUICE1 3,5 0 100
2012-01-01 BREAD3 5.76 0 47
2012-01-02 JUICE1 3,5 0 97
2012-01-02 BREAD3 5.5 1 68
... ... ... ... ...
2013-12-31 JUICE1 3,75 0 347
2013-12-31 BREAD3 5.7 0 94

Cet exemple comprend une référence SKU, un prix de vente et un indicateur précisant si l’article a fait l’objet d’une publicité, en plus de l’horodatage et de la quantité cible. Il existe manifestement deux séries dans ce jeu de données : une pour la référence SKU JUICE1, l’autre pour la référence SKU BREAD3. La SKU colonne est une colonne d’ID de série chronologique. En effet, si l’on groupe les données sur cette colonne, on obtient deux groupes contenant une seule série chacun. Avant de balayer les modèles, AutoML effectue une validation de base de la configuration et des données d’entrée et ajoute des caractéristiques artificielles.

Exigences en termes de longueur des données

Pour entraîner un modèle de prévision, vous devez disposer d’une quantité suffisante de données historiques. Cette quantité de seuil varie en fonction de la configuration d’entraînement. Si vous avez fourni des données de validation, le nombre minimal d’observations d’entraînement requises par série chronologique est donné par

$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

où $H$ est l’horizon de prévision, $l_{\text{max}}$ est l’ordre de décalage maximal et $s_{\text{window}}$ est la taille de fenêtre pour les fonctionnalités d’agrégation propagées. Si vous utilisez la validation croisée, le nombre minimal d’observations est

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

où $n_{\text{CV}}$ correspond au nombre de plis de validation croisée et $n_{\text{step}}$ correspond à la taille de l’étape du CV, ou décalage entre les plis du CV. La logique de base derrière ces formules est que vous devez toujours avoir au moins un horizon d’observations d’entraînement pour chaque série chronologique, y compris un remplissage pour les décalages et les fractionnements de validation croisée. Pour plus d’informations sur la validation croisée pour les prévisions, consultez Sélection du modèle de prévision.

Gestion des données manquantes

Les modèles de série chronologique d’AutoML exigent généralement des observations régulièrement espacées dans le temps. (par exemple mensuelles ou annuelles, avec un nombre de jours variable entre les observations). Avant la modélisation, AutoML doit s’assurer qu’il ne manque pas de valeurs de série et que les observations sont régulières. Il existe donc deux cas de données manquantes :

  • Il manque une valeur pour une cellule dans les données tabulaires.
  • Il manque une ligne correspondant à une observation attendue étant donné la fréquence des séries chronologiques.

Dans le premier cas, AutoML impute des valeurs manquantes à l’aide de techniques courantes et configurables.

Un exemple de ligne attendue manquante est illustré dans le tableau suivant :

timestamp quantité
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

Cette série présente apparemment une fréquence quotidienne, mais il n’y a aucune observation pour le 2 janvier 2012. Dans ce cas, AutoML tente de remplir les données en ajoutant une nouvelle ligne pour le 2 janvier 2012. La nouvelle valeur de la colonne quantity et de toutes les autres colonnes des données sera alors imputée comme les autres valeurs manquantes. Il est clair qu’AutoML doit connaître la fréquence de la série afin de combler les lacunes d’observation comme celle-ci. AutoML détecte automatiquement cette fréquence. Sinon, l’utilisateur peut éventuellement la fournir dans la configuration.

La méthode d’imputation pour le remplissage des valeurs manquantes peut être configurée dans l’entrée. Les méthodes par défaut sont présentés dans le tableau suivant :

Type de colonne Méthode d’imputation par défaut
Cible Forward filling (dernière observation reportée)
Caractéristique numérique Valeur médiane

Les valeurs manquantes des caractéristiques catégorielles sont gérées lors de l’encodage numérique en incluant les catégories supplémentaires correspondantes. L’imputation est dans ce cas implicite.

Ingénierie des fonctionnalités automatisées

AutoML ajoute généralement de nouvelles colonnes aux données utilisateur afin d’augmenter la précision de la modélisation. La caractéristique artificielle peut inclure les éléments suivants :

Groupe de caractéristiques Par défaut/optionnel
Caractéristiques de calendrier dérivées de l’indice de temps (par exemple le jour de la semaine) Default
Caractéristiques catégorielles dérivées des ID de série chronologique Default
Encodage de types catégoriels en type numérique Default
Caractéristiques d’indicateur pour les jours fériés associés à une région ou à un pays donné Facultatif
Décalages de la quantité cible Facultatif
Décalages des colonnes de caractéristiques Facultatif
Agrégations de fenêtre mobile (par exemple moyenne glissante) de la quantité cible Facultatif
Décomposition saisonnière (STL) Facultatif

Vous pouvez configurer la caractérisation dans le SDK AutoML au moyen de la classe ForecastingJob ou dans l’interface web Azure Machine Learning Studio.

Détection et gestion des séries chronologiques non stationnaires

Une série chronologique dont la moyenne et la variance changent au fil du temps est appelée série non stationnaire. Par exemple, les séries chronologiques qui montrent des tendances stochastiques sont non stationnaires par nature. Pour visualiser cela, l’image ci-dessous trace une série qui tend généralement à évoluer à la hausse. À présent, calculez et comparez les valeurs moyennes de la première et de la deuxième moitié de la série. Sont-elles identiques ? Ici, la moyenne de la série dans la première moitié du tracé est sensiblement inférieure à celle de la deuxième moitié. Le fait que la moyenne de la série dépend de l’intervalle de temps qui est examiné est un exemple des moments qui varient avec le temps. Ici, la moyenne d’une série est le premier moment.

Diagramme montrant les ventes au détail pour une série chronologique non stationnaire.

Examinons ensuite l’image suivante, qui trace la série d’origine dans les premières différences, $\Delta y_{t} = y_t - y_{t-1}$. La moyenne de la série est à peu près constante au cours de l’intervalle de temps, tandis que la variance semble varier. Il s’agit d’un exemple d’une série chronologique stationnaire de premier ordre.

Diagramme montrant les ventes au détail pour une série chronologique faiblement stationnaire.

Par nature, les modèles de régression AutoML ne peuvent pas traiter les tendances stochastiques ou d’autres problèmes connus associés aux séries chronologiques non stationnaires. Par conséquent, la justesse de prévision hors échantillon sera médiocre si de telles tendances sont présentes.

AutoML analyse automatiquement le jeu de données de série chronologique pour déterminer la stationnarité. Lorsque des séries chronologiques non stationnaires sont détectées, AutoML applique automatiquement une transformation de différentiation afin d’atténuer l’impact du comportement non stationnaire.

Balayage de modèle

Une fois les données préparées avec la gestion des données manquantes et l’ingénierie de caractéristiques, AutoML balaye un ensemble de modèles et d’hyperparamètres à l’aide d’un service de recommandation de modèle. Les modèles sont classés en fonction des métriques de validation ou de validation croisée. Ensuite, les meilleurs peuvent éventuellement être utilisés dans un modèle ensembliste. Le meilleur modèle, ou l’un de ceux dont l’apprentissage a été effectué, peut si nécessaire être inspecté, téléchargé ou déployé pour produire des prévisions. Pour plus d’informations, consultez l’article Balayage et sélection des modèles.

Regroupement de modèles

Lorsqu’un jeu de données contient plusieurs séries chronologiques (comme dans l’exemple donné), il existe plusieurs façons de modéliser ces données. Par exemple, nous pouvons simplement les regrouper par colonne(s) d’ID de série chronologique et effectuer l’apprentissage de modèles indépendants pour chaque série. Une approche plus générale consiste à partitionner les données en groupes qui peuvent chacun contenir plusieurs séries (probablement associées) et à effectuer l’apprentissage d’un modèle par groupe. Par défaut, la prévision AutoML applique une approche mixte du regroupement de modèles. Les modèles de série chronologique, ainsi qu’ARIMAX et Prophet, attribuent une série à un groupe. D’autres modèles de régression relient à l’inverse toutes les séries à un seul groupe. Le tableau suivant récapitule les regroupements de modèles en deux catégories, un à un et plusieurs à un :

Chaque série dans son propre groupe (1:1) Toutes les séries dans un seul groupe (N:1)
Naïf, saisonnier naïf, moyenne, moyenne saisonnière, lissage exponentiel, ARIMA, ARIMAX, Prophet Descente de gradient stochastique (SGD) linéaire, LARS LASSO, Elastic Net, K plus proches voisins, Arbre de décision, Forêt aléatoire, Arborescences extrêmement aléatoires, Arbres GVT (Gradient Boosted Trees), LightGBM, XGBoost, TCNForecaster

Des regroupements de modèles plus généraux sont possibles au moyen de la solution Many-Models d’AutoML. Consultez les notebooks Nombreux modèles – ML automatisé.

Étapes suivantes