Vue d’ensemble des méthodes de prévision d’AutoML
Cet article décrit les méthodes utilisées par AutoML dans Azure Machine Learning 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 sur l’apprentissage des modèles de prévision dans AutoML, consultez Configurer AutoML pour la prévision de série chronologique.
Méthodes de prévision dans AutoML
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 :
- 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
- Des modèles de régression, ou explicatifs, qui utilisent des variables de prédicteur pour prévoir les valeurs de la cible
Supposons que vous devez prévoir la demande quotidienne d’une marque particulière de jus d’orange d’une épicerie. Pour l’expression, laissez $y_t$ représenter la demande pour cette marque le jour $t$. Un modèle de série chronologique prédit la demande à $t+1$ en utilisant une fonction de la demande historique avec l'expression suivante :
$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 dans l’exemple de demande de jus d’orange peut ne pas être suffisamment précis, car il utilise uniquement des informations sur la demande passée. Il existe de nombreux autres facteurs qui peuvent influencer la demande future, comme le prix, le jour de la semaine et les périodes de vacances. Considérons un modèle de régression qui utilise ces variables de prédiction avec l’expression suivante :
$y = g(\text{prix}, \text{jour de la semaine}, \text{vacances})$
De nouveau, la fonction $g$ a généralement un ensemble de paramètres, y compris des valeurs qui régissent la régularisation, qu'AutoML ajuste en utilisant les valeurs passées de la demande et des 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. Pour prédire $y_{t+1}$ de $g$, vous devez savoir quel jour de la semaine correspond à $t+1$, si le jour est un jour férié et le prix du jus d’orange le jour $t+1$. Les deux premières informations sont faciles à identifier à l’aide d’un calendrier. Le prix de vente est souvent fixé à l'avance, donc le prix du jus d'orange est probablement aussi connu un jour à l'avance. Toutefois, le prix peut ne pas être connu 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 sont des variables prédictives 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 l’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 relations récursives définissent généralement des modèles de séries chronologiques qui produisent des prévisions une par une. 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. En revanche, les modèles de régression sont considérés comme des prévisionnistes directs qui génèrent toutes les prévisions jusqu’à l’horizon en une seule tentative. Les prévisionnistes directs peuvent être préférables aux méthodes récursives, 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 Fonctionnalités de décalage pour la prévision de séries chronologiques dans AutoML.
Modèles de prévision dans AutoML
AutoML dans Machine Learning implémente les modèles de prévision suivants. Pour chaque catégorie, les modèles sont répertoriés à peu près dans l’ordre de la complexité des modèles qu’ils peuvent incorporer, également appelés 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.
Modèles de séries chronologiques | 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 |
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, vous utilisez 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.
Remarque
Il existe deux mises en garde importantes pour les ensembles de modèles de prévision :
- Le réseau convolutif temporel ne peut actuellement pas être inclus dans des ensembles.
- Par défaut, AutoML désactive la méthode de stacking, qui est incluse 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. Au cours de l’évaluation interne, cette stratégie a une tendance accrue à s’adapter aux données de série chronologique. Cela qui peut entraîner une mauvaise généralisation. C’est pourquoi le stacking est désactivé par défaut. Vous pouvez activer l’ensemble dans la configuration AutoML, selon les besoins.
Utilisation des données dans AutoML
AutoML accepte les données de série chronologique au format tabulaire « large ». Chaque variable doit avoir sa propre colonne correspondante. AutoML exige qu’une colonne 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 que vous souhaitez prédire dans le futur. Le tableau suivant présente des exemples de valeurs pour ce format :
timestamp | quantité |
---|---|
2012-01-01 | 100 |
2012-01-02 | 97 |
2012-01-03 | 106 |
... | ... |
2013-12-31 | 347 |
Dans des cas plus complexes, le jeu de données peut 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 |
Le deuxième exemple inclut une référence SKU, un prix de vente au détail et un indicateur pour montrer si un élément a été publié en plus de l’horodatage et de la quantité cible. Le deuxième jeu de données révèle deux séries : une pour la référence SKU JUICE1 et une pour la référence SKU BREAD3. La colonne de référence SKU est une colonne d’ID de série chronologique, car le regroupement par ces valeurs de colonne produit deux groupes qui contiennent chacune une seule série. Avant le balayage du modèle, 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 fournissez des données de validation, le nombre minimal d’observations d’apprentissage requises par série chronologique est exprimé comme suit :
$T_{\text{validation utilisateur}} = H + \text{max}(l_{\text{max}}, s_{\text{fenêtre}}) + 1$
Dans cette expression, $H$ est l’horizon de prévision, $l_{\text{max}}$ est l’ordre de décalage maximal, et $s_{\text{fenêtre}}$ 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 exprimé comme suit :
$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$
Dans cette version, $n_{\text{CV}}$ correspond au nombre de plis de validation croisée et $n_{\text{step}}$ est la taille de l’étape CV, ou décalage entre les plis 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 la prévision, consultez Sélection de modèle dans AutoML.
Gestion des données manquantes
Les modèles de séries chronologiques dans AutoML nécessitent des observations régulièrement espacées dans le temps, ce qui inclut des cas comme des observations mensuelles ou annuelles où le nombre de jours entre les observations peut varier. Avant le lancement du processus de modélisation, AutoML doit s’assurer qu’il n’y a pas de valeurs de série manquantes et que les observations sont régulières. Par conséquent, il existe 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. Le tableau suivant montre un exemple de ligne attendue manquante :
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 renseigner les données en ajoutant une nouvelle ligne pour la valeur manquante. La nouvelle valeur de la colonne quantity
et de toutes les autres colonnes des données est alors imputée comme les autres valeurs manquantes. Pour exécuter ce processus, AutoML doit reconnaître la fréquence de série pour pouvoir combler les lacunes d’observation, comme illustré dans ce cas. AutoML détecte automatiquement cette fréquence. Sinon, l’utilisateur peut éventuellement la fournir dans la configuration.
La méthode d’imputation pour fournir des valeurs manquantes peut être configurée dans l’entrée. Le tableau suivant répertorie les méthodes par défaut :
Type de colonne | Méthode d’imputation par défaut |
---|---|
Cible | Forward filling (dernière observation reportée) |
Fonctionnalité numérique | Valeur médiane |
Les valeurs manquantes pour les fonctionnalités catégorielles sont gérées pendant l’encodage numérique en incluant une autre catégorie qui correspond à une valeur manquante. 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. Les fonctionnalités conçues peuvent inclure des éléments par défaut ou facultatifs.
Fonctionnalités conçues par défaut :
- Fonctionnalités de calendrier dérivées de l’indice de temps, comme le jour de la semaine
- Caractéristiques catégorielles dérivées des ID de série chronologique
- Encodage de types catégoriels en type numérique
Fonctionnalités conçues facultatives :
- Fonctionnalités d’indicateur pour les jours fériés associés à une région donnée
- Décalages de la quantité cible
- Décalages des colonnes de caractéristiques
- Agrégations de fenêtres propagées, comme la moyenne propagée, de la quantité cible
- Décomposition saisonnière ((décomposition saisonnière et tendance à l’aide de Loess (STL))
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. Les séries chronologiques qui montrent des tendances stochastiques sont non stationnaires par nature.
L’image suivante présente une visualisation pour ce scénario. Le graphique trace une série qui tend généralement vers le haut. Si vous calculez et comparez les valeurs moyennes (moyennes) pour la première et la deuxième moitié de la série, vous pouvez identifier les différences. La moyenne de la série dans la première moitié du tracé est inférieure à la moyenne de la seconde moitié. Le fait que la moyenne de la série dépend de l’intervalle de temps sous révision est un exemple des moments variables dans le temps. Dans ce scénario, la moyenne d’une série est le premier moment.
L’image suivante montre un graphique 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. Ce scénario illustre un exemple de série chronologique stationnaire de premier ordre :
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 lorsque de telles tendances sont présentes.
AutoML analyse automatiquement un jeu de données de série chronologique pour déterminer son niveau ou sa stationarité. Lorsque des séries chronologiques non stationnaires sont détectées, AutoML applique automatiquement une transformation de différentiation afin d’atténuer les effets 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 Balayage et sélection des modèles pour la prévision dans AutoML.
Regroupement de modèles
Lorsqu’un jeu de données contient plusieurs séries chronologiques, il existe plusieurs façons de modéliser les données. Vous pouvez regrouper les données dans les colonnes d’ID de série chronologique et entraîner des 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.
Voici comment chaque type de modèle utilise des groupes :
Chaque série dans un groupe distinct (1:1) : Naïf, Naïf Saisonnier, Moyenne, Moyenne saisonnière, Lissage exponentiel, ARIMA, ARIMAX, Prophet
Toutes les séries du même groupe (N :1): SGD linéaire, LARS LASSO, Élastique Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomd Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster
Les regroupements de modèles plus généraux sont possibles à l’aide de la solution de nombreux modèles dans AutoML. Pour plus d’informations, consultez Nombreux modèles : Notebook ML automatisé.