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 de prévision des ventes basé sur des séries temporelles et du machine learning. Pas une solution "boîte noire magique", une approche méthodique, étape par étape, qui a divisé par 3 l'erreur de prévision. Voici comment.
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.
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, soit 58% de mieux que la stratégie naïve et 26% de mieux que Holt-Winters. 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 après 3 mois d'utilisation :
| 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. 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.
Votre processus de commande est-il un bon candidat ?
Ce cas concerne l'horlogerie, mais la logique 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. Consultez notre guide complet sur le calcul de prévision des ventes par IA pour une vue d'ensemble des données, algorithmes et coûts.
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 : Prévision des ventes et IA
Comment l'IA améliore-t-elle la prévision des ventes ?
L'IA analyse l'historique des ventes pour détecter des patterns invisibles à l'oeil nu : saisonnalité, tendances, corrélations entre références. Des modèles comme le Random Forest produisent des prévisions plus fiables qu'une simple reconduction des ventes de la semaine précédente.
Faut-il beaucoup de données pour entraîner un modèle de prévision des ventes ?
Idéalement 2 ans d'historique minimum pour capter la saisonnalité. Mais même avec 12 mois de données propres, on peut déjà battre une stratégie naïve de façon significative. La qualité des données compte plus que la quantité.
Quelle est la différence entre un LSTM et un Random Forest pour la prévision ?
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.
Combien de temps faut-il pour mettre en place ce type de système ?
Nettoyage et préparation des données : 2 à 4 semaines. Entraînement et évaluation des modèles : 2 à 3 semaines. Intégration dans le workflow : 1 à 2 semaines. Au total, un premier système fonctionnel est opérationnel en 6 à 8 semaines.
Quel ROI peut-on espérer ?
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 prévision des ventes par IA : le guide pratique
- 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.