Un distributeur horloger nous contacte avec un problème simple à formuler, mais coûteux : il commande trop ou pas assez. Trop de stock sur certaines références qui dorment en entrepôt. Des ruptures sur d'autres qui se vendent mieux que prévu. Et une stratégie de commande qui tient en une phrase : "on commande ce qu'on a vendu la semaine dernière".
Cette approche (reconduire les ventes récentes) est intuitive, mais elle ignore tout : la saisonnalité, les tendances, les corrélations entre références. Résultat : un taux d'erreur élevé qui coûte de l'argent en stock inutile et en ventes manquées.
Chez Tensoria, on a construit un système basé sur les séries temporelles et du machine learning (Random Forest, LSTM, ARIMA). Pas une solution "boîte noire magique", une approche méthodique, étape par étape, qui a divisé par 3 l'erreur de prévision chez ce client. Le modèle propose les quantités, le responsable des achats valide la commande finale : chaque prévision reste vérifiable face aux ventes réelles. Voici comment. Pour une vue d'ensemble des données, coûts et algorithmes, consultez notre guide sur le calcul de la prévision des ventes par IA.
Pourquoi "commander comme la semaine dernière" ne marche pas
Avant de parler de modèles et d'algorithmes, il faut comprendre pourquoi la stratégie en place ne fonctionnait pas. Le client commandait chaque semaine à son fournisseur les mêmes quantités que celles vendues la semaine précédente. C'est ce qu'on appelle en data science une stratégie naïve (naive forecast).
Sur le papier, ça semble logique : si on a vendu 15 montres modèle X la semaine dernière, on en recommande 15. Sauf que :
- La saisonnalité est ignorée : les ventes de montres fluctuent fortement selon les périodes (fêtes, soldes, rentrée). Commander en janvier les mêmes volumes qu'en décembre, c'est du surstock garanti.
- Les tendances sont invisibles : une référence en déclin progressif continue d'être commandée au même rythme. Une référence en hausse n'est pas assez approvisionnée.
- Les pics et creux sont amplifiés : une bonne semaine exceptionnelle (promotion, événement) entraîne une surcommande la semaine suivante. Une mauvaise semaine crée une sous-commande qui peut générer une rupture.
Le problème de la stratégie naïve
Semaine exceptionnelle
Ventes : 42 unités (promo)
Commande S+1 : 42
Résultat : surstock massif
Semaine creuse
Ventes : 5 unités (post-fêtes)
Commande S+1 : 5
Résultat : rupture de stock
Avec prévision IA
Analyse : saisonnalité + tendance
Commande adaptée : 18
Résultat : stock optimisé
Selon une étude McKinsey sur la supply chain, les entreprises qui adoptent des méthodes de prévision basées sur l'IA réduisent leurs erreurs de prévision de 20 à 50%. Le cas de notre client se situe dans cette fourchette.
Étape 1 : Comprendre et nettoyer les données (le vrai travail)
Avant de parler de modèles, il y a une étape que tout le monde sous-estime et qui représente plus de la moitié du travail : la préparation des données. C'est une leçon qu'on retrouve dans tous nos projets, des systèmes RAG aux pipelines de génération de rapports.
Le client nous a transmis ses données de ventes sous forme de fichiers Excel. Plusieurs années d'historique. En théorie, tout ce qu'il faut. En pratique :
Ce qu'on a trouvé en ouvrant les fichiers
- Des formats incohérents : dates en format français dans certains fichiers, format américain dans d'autres, parfois juste "semaine 12" sans année
- Des références produit instables : le même modèle de montre avec 3 codes différents selon les périodes (changement d'ERP, fusion de catalogues)
- Des trous dans les données : des semaines entières manquantes, sans savoir si c'est "0 vente" ou "données non enregistrées"
- Des anomalies non documentées : un pic de ventes en mars 2024 qui correspondait à une vente exceptionnelle à un grossiste (pas du retail classique)
- Des retours produit mélangés : certaines semaines avec des quantités négatives (retours) qui faussent les moyennes
Ce que personne ne vous dit sur les projets data
Le nettoyage des données n'est pas une étape qu'on "fait vite" avant le vrai travail. C'est le vrai travail. Sur ce projet, on a passé 3 semaines sur la préparation des données et 2 semaines sur les modèles. Ce ratio est normal. Un modèle entraîné sur des données sales ne fera jamais de bonnes prévisions, peu importe sa sophistication.
Ce qu'on a fait concrètement
- Harmonisation des références : construction d'une table de correspondance entre les anciens et nouveaux codes produit, validation manuelle avec le client
- Traitement des valeurs manquantes : distinction entre "0 vente" (la boutique était ouverte) et "donnée absente" (fermeture, bug). Les vrais zéros sont conservés, les absences sont interpolées
- Suppression des anomalies identifiées : les ventes grossiste et les retours sont isolés pour ne pas polluer le modèle retail
- Agrégation hebdomadaire : passage des données quotidiennes (trop bruitées) en données hebdomadaires, plus stables et cohérentes avec le cycle de commande du client
- Feature engineering : création de variables supplémentaires : semaine de l'année, mois, indicateur de période promotionnelle, moyenne mobile sur 4 semaines, tendance sur 12 semaines
À la fin de cette étape, on disposait d'un dataset propre de 104 semaines (2 ans) couvrant les 120 références les plus vendues. C'est sur cette base que tout le reste a été construit.
Étape 2 : Établir une baseline avec des modèles simples
Avant de sortir les modèles complexes, on a d'abord mesuré à quel point la stratégie actuelle était mauvaise, et ce qu'on pouvait déjà gagner avec des approches simples.
C'est un principe fondamental en data science : toujours commencer par une baseline. Si un modèle sophistiqué ne bat pas un modèle simple, c'est qu'on a un problème : soit dans les données, soit dans la modélisation.
Les modèles de référence testés
| Méthode | Principe | Erreur (MAE) |
|---|---|---|
| Stratégie naïve (client) | Commande = ventes semaine précédente | 8.4 unités |
| Moyenne mobile (4 sem.) | Moyenne des 4 dernières semaines | 6.1 unités |
| Moyenne mobile + saisonnalité | Moyenne mobile pondérée par le facteur saisonnier | 5.3 unités |
| Lissage exponentiel (Holt-Winters) | Modèle statistique classique : niveau + tendance + saisonnalité | 4.7 unités |
Premier constat : une simple moyenne mobile sur 4 semaines battait déjà la stratégie du client de 27%. Pas besoin de machine learning pour ça. Juste un calcul basique qui lisse les fluctuations au lieu de réagir à chaque variation.
Le lissage exponentiel (Holt-Winters), un modèle statistique datant des années 1960, faisait encore mieux : -44% d'erreur par rapport à la stratégie naïve. Pourquoi ? Parce qu'il capte trois composantes que la stratégie naïve ignore totalement : le niveau moyen, la tendance, et la saisonnalité.
Comparaison des erreurs de prévision (MAE)
Ce qu'il faut retenir :
Avant de chercher le modèle le plus sophistiqué, testez les solutions simples. Une moyenne mobile qui prend 5 minutes à implémenter battait déjà la stratégie du client de 27%. Ce n'est pas le modèle qui crée la valeur ; c'est le passage d'une approche intuitive à une approche basée sur les données.
Étape 3 : Les modèles avancés, Random Forest et LSTM
Une fois la baseline établie et les modèles simples testés, on a exploré deux approches de machine learning pour aller plus loin. Si vous cherchez les librairies Python qui implémentent ces algorithmes (Prophet, Darts, Nixtla, sktime, PyTorch Forecasting...), notre comparatif des librairies de prévision des séries temporelles couvre leurs tradeoffs selon le volume de données et le profil technique.
Random Forest : le couteau suisse de la prévision
Le Random Forest est un modèle d'ensemble qui combine des centaines d'arbres de décision. Chaque arbre "vote" pour une prévision, et le résultat final est la moyenne des votes. C'est un modèle robuste, rapide à entraîner, et difficile à sur-ajuster (overfitting).
Pour la prévision des ventes, on lui a fourni les variables suivantes :
- Ventes des 4 dernières semaines (lag features)
- Moyenne mobile sur 4 et 12 semaines
- Semaine de l'année (pour capter la saisonnalité)
- Mois et trimestre
- Indicateur promotionnel (oui/non)
- Tendance sur 12 semaines (pente de la régression linéaire locale)
- Catégorie produit (gamme entrée / milieu / haut)
Résultat : MAE de 3.5 unités, mesurée sur des semaines de test que le modèle n'avait jamais vues, soit 58% de mieux que la stratégie naïve et 26% de mieux que Holt-Winters sur ce jeu de données. XGBoost, LightGBM et les autres librairies ML Python utilisées ici sont comparées dans notre panorama des librairies de machine learning Python : forces, limites et cas d'usage par famille d'algorithme. Cette comparaison systématique avec l'existant est aussi ce qui permet au client de vérifier que le modèle reste bon dans le temps. Le Random Forest a particulièrement bien capté les effets de saisonnalité croisés avec les catégories de produits : les montres haut de gamme ont un pic de Noël plus marqué que l'entrée de gamme, par exemple.
LSTM : le réseau de neurones pour les séquences
Le LSTM (Long Short-Term Memory) est un type de réseau de neurones récurrent conçu spécifiquement pour les données séquentielles. Contrairement au Random Forest qui travaille sur des variables tabulaires, le LSTM apprend directement les dépendances temporelles dans les séquences de ventes.
On lui a donné en entrée les 12 dernières semaines de ventes pour chaque référence, et il devait prédire la semaine suivante. L'architecture :
- Une couche LSTM de 64 unités
- Un dropout de 20% (pour éviter le surapprentissage)
- Une couche dense de sortie
- Entraînement sur 100 époques avec early stopping
Résultat : MAE de 3.8 unités. Légèrement moins bon que le Random Forest sur ce jeu de données, ce qui peut surprendre. Mais c'est cohérent avec la littérature : sur des datasets de taille modeste (104 semaines x 120 références), les modèles d'ensemble comme le Random Forest surpassent souvent les réseaux de neurones. Le LSTM brille davantage avec des volumes de données beaucoup plus importants et des patterns temporels très complexes.
Random Forest vs LSTM : Forces et limites
Random Forest
MAE : 3.5LSTM
MAE : 3.8Résultats : ce que ça change concrètement
Le modèle retenu en production a été le Random Forest, pour son meilleur score et sa facilité de maintenance. Voici les résultats observés après 3 mois d'utilisation chez ce distributeur. Ce sont des chiffres constatés sur cette période et ce catalogue, à lire comme des ordres de grandeur : ils varient selon la qualité de l'historique et le profil des références.
| Indicateur | Avant (naïf) | Après (Random Forest) |
|---|---|---|
| Erreur moyenne de prévision (MAE) | 8.4 unités | 3.5 unités (-58%) |
| Références en surstock (>6 sem. de couverture) | 34% du catalogue | 12% du catalogue |
| Ruptures de stock (>3 jours) | 11% des références / mois | 4% des références / mois |
| Temps de décision commande | 2h / semaine (manuel) | 20 min / semaine (validation) |
Au-delà des chiffres, le changement le plus important est qualitatif : le responsable des achats ne passe plus son lundi à décider des quantités référence par référence. Il reçoit une proposition de commande générée par le modèle, qu'il parcourt et ajuste si nécessaire. Pour que cette validation reste rapide sans devenir aveugle, la proposition affiche pour chaque référence la quantité suggérée à côté des ventes des 4 dernières semaines et du stock courant, et signale les lignes où la prévision s'écarte fortement de la moyenne récente. Le responsable concentre son temps sur ces quelques lignes signalées et sur les références qu'il sait sensibles (nouveautés, promotions à venir), pas sur les 120 références. Son rôle passe de calculateur à validateur, comme pour le technicien sinistre qui valide un rapport pré-rempli.
Ce que les données nous ont appris (et qu'on ne soupçonnait pas)
L'un des avantages du Random Forest est son interprétabilité. On peut regarder quelles variables contribuent le plus aux prévisions. Et les résultats ont surpris le client :
- La semaine de l'année était la variable la plus importante, loin devant les ventes récentes. La saisonnalité pèse beaucoup plus que l'inertie des ventes.
- La catégorie produit était en deuxième position. Les montres entrée de gamme et haut de gamme suivent des cycles de vente très différents, quelque chose que le client "sentait" mais n'avait jamais quantifié.
- La tendance sur 12 semaines captait les références en déclin, permettant d'ajuster les commandes à la baisse avant que le stock ne s'accumule.
- Les ventes de la semaine précédente (la seule variable utilisée par la stratégie naïve) arrivaient seulement en 5e position d'importance.
En d'autres termes : la seule information que le client utilisait pour ses décisions de commande était la moins prédictive de toutes. C'est un constat qu'on observe régulièrement : les intuitions métier sont souvent justes sur la direction, mais fausses sur les priorités.
Les limites : en toute honnêteté
Un article qui ne parle que de réussites n'est pas crédible. Voici ce qui n'a pas marché ou reste perfectible :
- Les nouvelles références : un modèle basé sur l'historique ne peut rien prédire pour un produit qui n'a pas encore de ventes. Pour les nouveaux lancements, on utilise une approche par analogie (comparer avec des références similaires), mais c'est moins précis.
- Les événements imprévisibles : une promotion flash décidée au dernier moment, un influenceur qui mentionne un modèle, un problème logistique chez le fournisseur. Le modèle ne peut pas anticiper ce qu'il ne connaît pas.
- La qualité des données reste fragile : le client continue de saisir ses données manuellement dans Excel. Chaque erreur de saisie dégrade la qualité du modèle. Un système intégré directement dans l'ERP serait plus robuste.
- Le modèle nécessite un réentraînement régulier : tous les trimestres minimum, pour intégrer les nouvelles données et s'adapter aux évolutions du marché.
Comme pour tout projet IA en entreprise, la mise en production n'est pas la fin ; c'est le début d'un cycle d'amélioration continue.
Ce cas est-il transposable à votre secteur ?
Ce cas concerne l'horlogerie, mais la logique des séries temporelles est transposable à tout métier avec un historique de ventes et des commandes récurrentes. Textile, agroalimentaire, pièces détachées, distribution spécialisée, le schéma est souvent le même. Les entreprises e-commerce sont particulièrement bien positionnées pour en tirer parti, grâce à la richesse de leurs données transactionnelles. Pour évaluer si votre organisation remplit les prérequis (données, volume de références, cycle de commande), consultez notre guide sur le calcul de la prévision des ventes qui détaille les critères de maturité, les coûts et les métriques attendues.
Les critères qui rendent un processus de commande adapté à cette approche :
- Un historique de ventes d'au moins 1 à 2 ans : pour capter la saisonnalité. En dessous de 12 mois, les modèles simples suffisent.
- Un catalogue avec des références récurrentes : le modèle fonctionne pour des produits qui se vendent régulièrement, pas pour du sur-mesure ou du one-shot.
- Un cycle de commande régulier : hebdomadaire, bimensuel. Si les commandes sont ponctuelles et imprévisibles, la prévision a moins de prise.
- Un coût du surstock ou de la rupture significatif : si le stock coûte cher (capital immobilisé, démarque, espace) ou si les ruptures perdent des clients, le ROI sera rapide.
Si votre processus coche 3 critères ou plus, un audit IA rapide permet de quantifier le potentiel de gains sur vos données réelles.
FAQ : Séries temporelles et modèles de prévision
Comment les séries temporelles améliorent-elles la précision des prévisions ?
Les séries temporelles permettent de modéliser la saisonnalité, les tendances et les corrélations dans l'historique de ventes. Des modèles comme Random Forest ou LSTM, appliqués à ces séries, produisent des prévisions nettement plus fiables qu'une simple reconduction des ventes de la semaine précédente.
Quelle est la différence entre un LSTM et un Random Forest sur des séries temporelles ?
Le Random Forest combine des centaines d'arbres de décision : rapide, robuste, interprétable. Le LSTM est un réseau de neurones qui apprend les dépendances temporelles : plus puissant avec beaucoup de données. En pratique, le Random Forest offre souvent le meilleur rapport résultats/effort sur des volumes modestes, comme on l'a observé sur ce cas client.
Pourquoi le Random Forest surpasse-t-il souvent le LSTM sur de petits catalogues ?
Sur des datasets de taille modeste (2 ans, 100 à 200 références), le Random Forest bénéficie d'une meilleure robustesse au surapprentissage. Le LSTM a besoin de beaucoup plus de séquences pour apprendre des dépendances temporelles fiables. Sur ce projet (104 semaines, 120 références), le Random Forest a fait MAE 3.5 contre MAE 3.8 pour le LSTM.
Quel ROI peut-on espérer sur ce type de projet ?
Le ROI se mesure sur deux axes : réduction du surstock (moins de capital immobilisé, moins de démarque) et réduction des ruptures (moins de ventes perdues). Sur ce cas, la réduction de 58% de l'erreur de prévision s'est traduite par une baisse du surstock de 34% à 12% du catalogue et une division par 3 des ruptures.
Questions fréquentes
Pour aller plus loin
- ROI des projets IA : comment le mesurer concrètement
- Lancer un projet IA en entreprise : le guide réaliste
- Pourquoi un audit IA est indispensable avant de se lancer
- 5 exemples concrets d'automatisation pour PME
- Cas client : rapport sinistre de 3h à 40 min avec l'IA
- Cas client Raynier : automatisation supply chain avec l'IA
- 5 erreurs qui font échouer vos projets IA en entreprise
- Calcul de la prévision des ventes par IA : guide PME (données, algorithmes, ROI)
- Notre service de prévision de stock et ventes par IA
- Pour cadrer le projet côté PME, voir Prévision des stocks par IA : précision, données, coût pour une PME avec niveaux de précision attendus et budget réaliste.
Vos commandes sont-elles optimisées ?
30 minutes pour analyser votre processus de commande et évaluer le potentiel de gains avec l'IA.