Clusterisation des Séries Temporelles : Une Approche pour Mieux Comprendre les Données
Introduction
Les séries temporelles sont des ensembles de données collectées à intervalles réguliers, souvent soumises à des fluctuations saisonnières, des tendances à long terme et des anomalies. Elles sont omniprésentes dans des domaines aussi variés que la finance, la santé, la météorologie ou le retail. Leur analyse repose sur des techniques permettant de capturer et de modéliser leurs structures sous-jacentes. Certaines méthodes se concentrent sur la décomposition des tendances et la détection des motifs récurrents, tandis que d’autres exploitent des représentations spectrales ou des transformations statistiques pour extraire des caractéristiques essentielles.
Le partitionnement, ou clusterisation, des séries temporelles constitue une approche essentielle pour structurer ces flux d’information en groupes homogènes. En regroupant des séries partageant des dynamiques similaires, elle permet de favoriser la découverte de comportements cachés, facilitant ainsi l’interprétation des données et la prise de décision.
Cet article explore les défis liés à la clusterisation des séries temporelles, présente les principales approches méthodologiques et illustre leur application à travers l’analyse du jeu de données M5 Forecasting issu du domaine du retail.
Qu’est-ce que la Clusterisation ?
La clusterisation, ou analyse de regroupement, est une technique d’apprentissage automatique non supervisée visant à partitionner un ensemble de données en groupes homogènes appelés clusters. Chaque cluster regroupe des éléments présentant des caractéristiques similaires tout en étant distincts des autres groupes.
L’approche repose sur une mesure de similarité entre les données. Différentes métriques de distance, telles que la distance euclidienne, la corrélation ou des méthodes plus avancées comme le Dynamic Time Warping (DTW) [1], sont utilisées pour quantifier la ressemblance entre les séries. Il existe plusieurs catégories d’algorithmes de clusterisation, comme les :
- Méthodes de partitionnement : comme K-means [2], qui cherche à regrouper les données autour de centres de gravité appelés centroïdes.
- Méthodes hiérarchiques : qui construisent une structure arborescente des clusters en fonction de leurs proximités.
- Méthodes basées sur la densité : telles que DBSCAN [2], qui détecte des régions densément peuplées et ignore les points isolés.
Contexte et Importance de la Clusterisation
Dans un monde où les volumes de données augmentent de manière exponentielle, il devient essentiel de structurer ces informations pour les rendre exploitables. La clusterisation joue un rôle clé en identifiant des groupes naturels au sein de vastes ensembles de données non labellisées, facilitant ainsi la segmentation et l’analyse. Qu’il s’agisse de segmenter des clients, de regrouper des pathologies ou d’identifier des anomalies dans les données financières, cette technique s’impose comme un levier stratégique incontournable à l’ère du big data et de l’intelligence artificielle.
Clusterisation des Séries Temporelles
Les séries temporelles, qui représentent des données évoluant au fil du temps, nécessitent des méthodes spécifiques de partitionement. Contrairement aux données classiques, elles possèdent une structure temporelle qui introduit des défis supplémentaires, notamment la dépendance séquentielle entre les points de données et la présence de saisonnalités ou de tendances complexes.
La clusterisation des séries temporelles permet de regrouper des séquences présentant des comportements similaires, ce qui est utile dans de nombreux contextes :
- Prévision de la demande : en identifiant des groupes de produits ayant des cycles de vente similaires.
- Détection d’anomalies : en repérant des séries qui divergent fortement du comportement typique.
- Analyse de signaux biomédicaux : pour classer des patients en fonction de leurs schémas cardiaques ou neurologiques.
Défis liés à la Clusterisation des Séries Temporelles
1. Dépendance et Structure Temporelle
Les séries temporelles diffèrent des données tabulaires par leur dépendance intrinsèque entre points successifs, rendant parfois les mesures de distance classiques comme la distance euclidienne inefficaces. Des méthodes comme le Dynamic Time Warping (DTW) sont nécessaires pour comparer des séquences de longueurs variables en prenant en compte les décalages temporels.
2. Variabilité des Longueurs et Saisonnalités
Les séries temporelles présentent des longueurs variables et des motifs saisonniers nécessitant des techniques adaptées, comme la transformation en données tabulaires via des descripteurs statistiques ou la réduction de dimensionnalité, afin de mieux capter les structures sous-jacentes.
3. Haute Dimensionnalité et Représentation des Données
Le grand nombre de points dans une série temporelle complexifie le traitement computationnel. La réduction de dimensionnalité (ACP, compression par autoencodeurs) et des représentations alternatives (transformation de Fourier, ondelettes) permettent d’extraire les caractéristiques essentielles et d’optimiser les performances des algorithmes.
4. Choix des Algorithmes et Évaluation des Clusters
Le choix des algorithmes (K-means, DBSCAN, Spectral Clustering, RNN, …) dépend de la complexité et de la nature des séries. L’évaluation de la qualité des clusters repose sur des métriques adaptées comme la silhouette [3], garantissant une segmentation pertinente des données.
Méthodes de Clusterisation des Séries Temporelles
La clusterisation des séries temporelles repose sur différentes approches méthodologiques adaptées aux spécificités des données évolutives. Contrairement aux données statiques, ces séries intègrent une structure temporelle qui impose des contraintes particulières en matière de mesure de similarité et d’algorithme de classification.
Une taxonomie complète des méthodes de clusterisation des séries temporelles, issue de la référence [4], peut être divisée en quatre grandes catégories :
- Distance-based : Ces méthodes reposent sur la mesure directe des distances entre les séries temporelles, utilisant notamment des métriques comme la distance euclidienne ou Dynamic Time Warping (DTW).
- Distribution-based : Ces approches supposent que les séries temporelles proviennent d’une distribution sous-jacente et exploitent des modèles statistiques pour effectuer la segmentation.
- Subsequence-based : Elles fragmentent les séries temporelles en sous-séquences et effectuent le clustering sur ces segments plutôt que sur les séries complètes.
- Representation-Learning-based : Ces méthodes utilisent des techniques d’apprentissage profond pour apprendre des représentations optimisées des séries temporelles avant de procéder au clustering.
Figure 1 : Taxonomie des méthodes de clusterisation de séries temporelles proposée dans la référence [4]
Dans cette section, nous mentionnons deux familles de méthodes, que nous avons employé dans cette étude :
- Clusterisation directe des séries temporelles, qui relève des méthodes distance-based.
- Clusterisation basée sur l’extraction de caractéristiques et clusterisation basée sur des modèles, qui relèvent des approches distribution-based.
1. Clusterisation Directe des Séries Temporelles (Distance-based)
a. Approche basée sur la Forme (Shape-Based Clustering)
Cette approche cherche à regrouper des séries temporelles en fonction de leur forme. Pour ce faire, elle s’appuie sur des mesures de distance spécifiques comme :
- Distance Euclidienne : Mesure classique de la proximité entre les points correspondants de deux séries.
- Dynamic Time Warping (DTW) : Aligne temporellement deux séries pour minimiser leur distance en tenant compte des décalages possibles.
- Distance de Fréchet : Utilisée pour mesurer les similitudes entre des courbes en tenant compte de leurs trajectoires.
- Distance élastique : Ajuste dynamiquement les points des séries pour les rendre comparables.
Figure 2 : Illustration de la distance euclidienne et de la distance DTW dans le cadre de la clusterisation directe. Cette image met en évidence la limitation de la distance euclidienne face à des séries de longueurs différentes, tandis que la distance DTW (Dynamic Time Warping) est plus adaptée pour ce type de données [5].
Une fois la matrice des distances calculée, les algorithmes de clustering comme K-means, K-medoids ou clustering hiérarchique sont souvent employés pour segmenter ces séries en groupes homogènes.
2. Clusterisation Basée sur l’Extraction de Caractéristiques (Distribution-based)
a. Approche Feature-Based
Dans cette approche, les séries temporelles sont transformées en vecteurs de caractéristiques. Cette méthode réduit la complexité de la donnée et facilite l’application d’algorithmes classiques de clustering. Les caractéristiques extraites peuvent inclure :
- Statistiques globales : Moyenne, écart-type, …
- Statistiques locales : statistiques calculés sur des fenêtres de temps, à intervalles réguliers
- Composantes fréquentielles : Coefficients de Fourier (FFT), coefficients d’ondelettes, …
- Autocorrélation : Mesurent de la répétition de certains patterns dans la série.
Les algorithmes comme K-means, DBSCAN ou GMM (Gaussian Mixture Models) sont ensuite appliqués aux vecteurs de caractéristiques.
A la place de choisir les caractéristiques appropriées, il existe également des approches basées sur l’apprentissage profond qui utilises des modèles de deep learning tels que les autoencodeurs pour générer des représentations latentes optimisées des séries temporelles avant d’effectuer la clusterisation.
4. Évaluation des Clusters
L’évaluation des résultats est essentielle pour valider la qualité des clusters. Parmi les indices couramment utilisés :
- Indice de Silhouette : Évalue la séparation entre clusters.
- Indice de Davies-Bouldin : Mesure la compacité et la séparation des clusters.
- Indice de Calinski-Harabasz : Indicateur de la densité intra-cluster.
Cependant, comme la clusterisation des séries temporelles est une approche non supervisée, ces métriques ne sont pas toujours suffisantes. L’analyse qualitative par des experts métiers est souvent nécessaire pour valider la pertinence des clusters en fonction des connaissances du domaine. Par exemple, dans le secteur du retail, il est important de s’assurer que les groupes identifiés reflètent bien des comportements d’achat cohérents. Le choix de la méthode de clusterisation des séries temporelles repose sur les objectifs analytiques et la nature des données.
Cas d’usage : Clusterisation des séries temporelles du jeu de données M5 Forecasting
Présentation du jeu de données M5 Forecasting
Le jeu de données M5 Forecasting [6], issu d’une compétition Kaggle, est une ressource précieuse pour l’analyse et la modélisation des séries temporelles en contexte de vente au détail (retail). Il comprend des données de ventes de produits dans les magasins Walmart aux États-Unis, sur une période de 5 ans (2011-2016). Avec 30 490 séries temporelles, il permet d’étudier les tendances des ventes à différents niveaux d’agrégation, du produit individuel au total des ventes par état.
Structure hiérarchique des données
Le jeu de données suit une organisation hiérarchique qui facilite l’analyse multi-niveaux :
- State : les ventes sont regroupées par état (Californie, Texas, Wisconsin).
- Store : les données sont segmentées par magasin au sein de chaque état.
- Cat_id : classification en catégories de produits (Hobbies, Household, Foods).
- Dept_id : segmentation plus fine en départements spécifiques par catégorie.
- Item_id : chaque produit individuel possède un identifiant unique.
Grâce à cette structure, il est possible de générer 42 840 combinaisons différentes pour examiner les dynamiques de ventes sous plusieurs angles.
Prétraitement et sélection des données
Avant d’appliquer les algorithmes de clusterisation, nous avons réalisé un travail de prétraitement pour rendre les séries plus exploitables :
- Granularité : transformation des données de ventes journalières en hebdomadaires pour réduire la volatilité et mieux capturer les tendances.
- Niveau d’analyse : sélection d’un sous-ensemble de 3 049 séries correspondant aux ventes agrégées des produits (Item_id) sur l’ensemble des magasins.
- Filtrage : élimination des séries comportant des trous temporels (périodes prolongées de ventes nulles) pour éviter des biais dans l’analyse. Finalement, 598 séries bien structurées ont été conservées, réparties en trois grandes catégories :
- FOOD : 250 produits
- HOUSEHOLD : 194 produits
- HOBBIES : 154 produits
Exemples de séries temporelles
Figure 3 : Exemples de séries temporelles avec une granularité hebdomadaire. La série de gauche illustre un cas présentant une longue période d’inactivité, mettant en évidence la mise sur le marché de nouveaux produits en cours d’étude. La série de droite montre une série avec une saisonnalité marquée, caractérisée par des pics récurrents à intervalles réguliers, reflétant une dynamique commerciale cyclique.
Deux types de tendances ont été observés :
- Produits avec des périodes d’inactivité : par exemple, un article de la catégorie HOUSEHOLD qui présente des interruptions de ventes, révélant potentiellement une faible rotation des stocks.
- Produits avec une forte saisonnalité : par exemple, un article de la catégorie FOOD qui affiche des pics de ventes récurrents liés à des cycles de consommation annuels.
Notre approche de clusterisation basée sur les caractéristiques (Feature-Based Clustering)
Préparation et transformation des séries temporelles
Dans notre approche, la clusterisation ne s’effectue pas directement sur les séries temporelles brutes, mais sur un ensemble de caractéristiques extraites, décrivant la dynamique et les motifs de chaque série. Ce passage par une représentation tabulaire permet de tirer parti d’algorithmes classiques de clustering, tout en capturant les propriétés essentielles des séries temporelles.
La préparation des données s’articule autour de trois étapes principales :
- Standardisation par série (item) : chaque série est normalisée pour réduire les biais liés aux différences d’échelle entre les produits, permettant une meilleure comparabilité.
- Décomposition des séries temporelles : les séries sont décomposées en trois composantes : tendance, saisonnalité et résidu. Cette décomposition aide à séparer les évolutions structurelles des fluctuations plus volatiles.
- Transformation en caractéristiques : à partir des composantes de chaque série (en particulier la tendance et la saisonnalité), un ensemble de variables statistiques est calculé. Ce sont ces variables qui serviront de base au clustering.
Extraction des caractéristiques de tendance
Bien que le clustering soit non-supervisé, la qualité des résultats dépend fortement de la sélection et de la construction des variables utilisées. Le choix des variables clés, comme la pente et la courbure de la tendance, guide la segmentation des séries temporelles en clusters.
L’objectif est de capturer les évolutions structurelles des ventes (croissance, stagnation, décroissance) à travers des indicateurs pertinents extraits de la tendance (issue de la décomposition additive).
Découpage en bins : on découpe les séries temporelles en segments de 12 semaines pour capter variations saisonnières. Les variables suivantes sont calculées sur chacun de segments.
Variables utilisées :
- Gradient de la tendance : mesure le taux de variation global (positif ou négatif).
- Deuxième dérivée : détecte les changements de direction (accélération ou ralentissement).
- Statistiques descriptives : moyenne et écart-type de la tendance, indiquant la stabilité ou la variabilité de la série.
- Autres variables calculées sur la tendance : somme, median, variance, rms, maximum, absolute_maximum, minimum.
Le résultat final consiste d’un jeu de données tabulaires composé par 598 lignes (séries) × 98 colonnes (variables).
Figure 4 : Exemple de décomposition additive d’une série temporelle. Cette décomposition exprime la série observée comme la somme de trois composantes : la tendance (Trend), représentant l’évolution structurelle à long terme, la saisonnalité (Seasonal), capturant les motifs cycliques récurrents, et le résidu (Residual), reflétant les variations non expliquées par les deux premières composantes. Série(t) = Tendance(t) + Saisonnalité(t) + Résidu(t)
Intégration des motifs saisonniers
En complément de l’analyse de la tendance, nous cherchons à identifier les régularités cycliques qui rythment les ventes de certains produits. Pour cela, nous ajoutons des variables décrivant les motifs saisonniers :
- Statistiques par année : permettent d’observer les tendances globales sur chaque année.
- Statistiques mensuelles : capturent les variations périodiques mensuelles.
- Statistiques par saison : regroupent les données selon les saisons (printemps, été, etc.) pour identifier les comportements liés aux cycles commerciaux.
L’ensemble de ces variables saisonnières sont extraites à partir de la série globale (sold), facilitant l’identification de groupes présentant des rythmes de vente similaires. Le résultat final est un deuxième jeu de données tabulaires contenant 598 lignes (séries) et 124 colonnes (variables).
Clustering avec K-means
L’algorithme choisi pour regrouper les séries est le K-means, qui partitionne les séries en k clusters, chacun centré autour d’un centroïde moyen. La distance entre chaque série et les centroïdes est calculée à l’aide de la distance euclidienne.
Les étapes principales du K-means sont :
- Initialisation de k centroïdes.
- Attribution de chaque série au centroïde le plus proche.
- Mise à jour itérative des centroïdes jusqu’à stabilisation.
Analyse qualitative : Comme il s’agit d’une méthode non-supervisée, nous privilégions une évaluation qualitative en observant leurs motifs et tendances, adaptant k selon la pertinence des regroupements, sans s’appuyer dans des métriques comme la silhouette.
Résultats
La section suivante présente les résultats obtenus à travers notre méthodologie de clusterisation en plusieurs étapes. Nous avons commencé par une première segmentation basée sur les tendances globales des séries temporelles. Ensuite, une seconde étape a permis d’identifier des motifs saisonniers distincts. Enfin, une dernière phase a combiné tendance et saisonnalité pour affiner la segmentation des séries restantes.
Étape 1 – Clusterisation basée sur la tendance
La première étape de notre approche consiste à appliquer l’algorithme K-means sur le jeu de données contenant les caractéristiques de tendance. Cette étape permet d’identifier des groupes de séries présentant des évolutions structurelles similaires, comme des tendances croissantes, stables ou décroissantes.
Nous avons fixé k = 9, une valeur estimée pertinente pour capturer la diversité des dynamiques présentes dans les données. Suite à cette première analyse, 5 clusters ont été sélectionnés pour l’étape suivante, car ils représentent des comportements pertinents et exploitables.
Étape 2 – Clusterisation basée sur les motifs saisonniers
En parallèle, un second K-means est appliqué sur le jeu de données enrichi avec les variables calendaires. L’objectif ici est d’identifier les séries présentant des motifs saisonniers marqués, nous avons fixé k = 9. Par suite nous avons choisi un total de 3 clusters.
Étape 3 – Fusion et reclusterisation des séries restantes
Les séries non assignées ou peu pertinentes après les deux premières étapes sont soumises à une dernière étape de clustering, combinant les caractéristiques de tendance et de saisonnalité pour affiner la segmentation.
Un total de 470 séries a pu être regroupé dans des clusters distincts après cette fusion. Les 128 séries restantes sont soumises à un nouvel algorithme de K-means, intégrant à la fois les caractéristiques de tendance et de saisonnalité, pour affiner leur segmentation en totalisant 2 clusters choisis.
Analyse des clusters finaux
Figure 5 : Résultats finaux de la méthode de clusterisation basée sur l’extraction de caractéristiques. Un total de 10 clusters représentatifs a été obtenu, illustrant la diversité des dynamiques de ventes capturées par la segmentation. Chaque graphique présente les séries appartenant à un cluster donné, avec en rouge le barycentre représentant la tendance moyenne du groupe.
À l’issue de ce processus en plusieurs phases, un total de 10 clusters finaux a été retenu, chacun représentant un comportement type :
- Cluster 0 : Tendance décroissante.
- Cluster 1 : Tendance stable et constante.
- Cluster 2 : Tendance croissante.
- Cluster 3 : Déclin des ventes (obsolescence ou pénurie).
- Cluster 4 : Pics récurrents (rentrée scolaire ou autres événements spécifiques).
- Cluster 5 : Motifs saisonniers avec des pics en été.
- Cluster 6 : Motifs saisonniers avec des pics en hiver.
- Cluster 7 : Comportement hybride combinant saisonnalité et tendance décroissante.
- Cluster 8 : Tendance légèrement décroissante avec motifs de répétition.
- Cluster 9 : Évolution dynamique avec croissance initiale suivie d’une décroissance et de motifs saisonniers.
Ces résultats montrent la capacité de notre approche à identifier des profils variés et à capturer à la fois les tendances de fond et les motifs cycliques qui structurent les ventes des produits étudiés. Afin de compléter l’analyse, il serait intéressant d’apporter un regard métier en regardant la nature des produits dans chaque cluster. Cependant, le jeu de données M5 est partiellement anonymisé et ne permet pas une analyse fine à partir des connaissances métiers du retail.
Conclusion
La méthodologie adoptée pour la clusterisation des séries temporelles du jeu de données M5 repose sur l’extraction et l’analyse de caractéristiques décrivant la tendance et la saisonnalité des ventes. Cette approche a permis de structurer un processus de segmentation en plusieurs étapes, combinant étude de la dynamique globale et identification de motifs saisonniers récurrents. Cette analyse exploratoire met en avant la valeur ajoutée capable d’exploiter efficacement des séries temporelles de nature hétérogène.
- L’approche repose sur un apprentissage non supervisé, néanmoins guidé par les caractéristiques
- La diversité des comportements identifiés reflète la richesse du jeu de données M5 et souligne la pertinence de combiner plusieurs niveaux d’analyse (tendance et saisonnalité).
- Les séries analysées étant anonymisées, une extension de cette étude vers des contextes métiers spécifiques pourrait enrichir l’interprétation des clusters.
Grâce à cette double approche, nous avons pu orienter l’algorithme de K-means vers des regroupements pertinents, en mettant en évidence des comportements typiques de séries temporelles. Au total, 10 clusters distincts ont été retenus, reflétant une grande diversité de profils allant de la croissance continue aux décroissances progressives, en passant par des comportements cycliques marqués.
Pour aller plus loin
Pour aller plus loin, cette méthodologie pourra être complétée par :
- Des modèles prédictifs, exploitant les clusters pour améliorer les prévisions de ventes et affiner les stratégies de gestion des stocks.
- Des analyses supplémentaires, visant à mieux comprendre les transitions entre clusters ou à identifier des événements exogènes influençant les dynamiques observées.
En résumé, cette approche combinant extraction de caractéristiques et apprentissage non supervisé offre une base solidepour une segmentation fine et actionnable des séries temporelles, tout en ouvrant la voie à des applications analytiques et prédictives plus avancées.
Références
[1] https://tslearn.readthedocs.io/en/stable/user_guide/dtw.html
[2] https://scikit-learn.org/stable/modules/clustering.html
[3] https://scikit-learn.org/stable/modules/generated/sklearn.metrics.silhouette_score.html
[4] https://arxiv.org/pdf/2412.20582
[5] https://commons.wikimedia.org/wiki/File:Euclidean_vs_DTW.jpg
[6] https://www.kaggle.com/c/m5-forecasting-accuracy/data
