La Data Science est un métier qui combine programmation, statistiques, compréhension métier et rigueur scientifique. Il est facile de tomber dans certains pièges, surtout lorsqu’on doit livrer vite, ou lorsqu’on apprend sur le tas. Voici les 10 erreurs courantes en Data Science — avec des explications détaillées, des exemples concrets, et surtout, des bonnes pratiques pour les éviter.
1. 📉 Travailler avec des données non nettoyées
❌ Ce qui se passe :
Beaucoup de data scientists se jettent directement dans la modélisation sans avoir vérifié la qualité des données. Pourtant, les données brutes sont souvent incomplètes, incohérentes, mal formatées, voire biaisées.
🎯 Pourquoi c’est un problème :
Un modèle est aussi bon que les données qu’on lui donne. Les données bruitées ou corrompues entraînent une baisse significative de performance et peuvent donner des conclusions erronées.
✅ Comment l’éviter :
- Utiliser
pandas.info()
,df.describe()
,df.isnull().sum()
pour repérer les anomalies. - Gérer les valeurs manquantes (suppression, imputation).
- Supprimer ou corriger les valeurs aberrantes (outliers).
- Standardiser les formats (dates, unités, capitalisation).
- Outils utiles :
missingno
,Sweetviz
,Great Expectations
.
2. 🧐 Sauter l’analyse exploratoire (EDA)
❌ Ce qui se passe :
Certains se contentent de vérifier le nombre de lignes et de colonnes avant de lancer leur modèle.
🎯 Pourquoi c’est un problème :
Sans comprendre les distributions, les corrélations ou les tendances, vous modélisez à l’aveugle. Vous risquez d’ignorer des biais, de mal choisir vos features ou de louper des insights majeurs.
✅ Comment l’éviter :
- Étudier les distributions :
sns.histplot()
,df.skew()
,df.kurt()
. - Identifier les corrélations :
sns.heatmap(df.corr())
. - Visualiser les relations entre variables :
pairplot
,boxplot
,violinplot
. - Détecter les outliers avec IQR ou Z-score.
3. 🔄 Surentraînement (Overfitting)
❌ Ce qui se passe :
Un modèle trop complexe s’ajuste parfaitement aux données d’entraînement, mais échoue à généraliser.
🎯 Pourquoi c’est un problème :
Le modèle « mémorise » au lieu d’apprendre. Il est performant en entraînement, mais perd toute efficacité sur de nouvelles données.
✅ Comment l’éviter :
- Séparer correctement le dataset en train/validation/test.
- Utiliser la validation croisée.
- Ajouter de la régularisation (
Lasso
,Ridge
,Dropout
,Weight decay
). - Surveillez le gap entre accuracy entraînement / validation.
4. 📏 Mauvaise séparation des jeux de données
❌ Ce qui se passe :
Utiliser les mêmes données pour l’entraînement et l’évaluation fausse complètement les performances.
🎯 Pourquoi c’est un problème :
Vous surestimez la qualité du modèle. Il s’agit d’une fuite de données (« data leakage »).
✅ Comment l’éviter :
- Toujours séparer au moins en
train
ettest
. - Pour des datasets déséquilibrés (ex : classification binaire frauduleuse), utiliser
StratifiedSplit
. - Ne jamais regarder ou transformer le test set avant l’évaluation finale.
5. 🧪 Mauvais choix de métriques
❌ Ce qui se passe :
Utiliser accuracy
pour tout, même pour des cas de classification déséquilibrée.
🎯 Pourquoi c’est un problème :
Une métrique mal choisie peut masquer un mauvais comportement du modèle.
✅ Comment l’éviter :
- Classification équilibrée :
accuracy
,F1
,ROC AUC
. - Classification déséquilibrée :
precision
,recall
,PR AUC
,balanced accuracy
. - Régression :
MAE
(erreurs moyennes),RMSE
(erreurs amplifiées),R²
. - Toujours contextualiser les erreurs par rapport à l’impact métier.
6. 🤝 Négliger la compréhension métier
❌ Ce qui se passe :
Développer un modèle performant mais hors-sujet, car on n’a pas bien compris le besoin métier.
🎯 Pourquoi c’est un problème :
Un modèle mal aligné avec les objectifs opérationnels ne sera jamais utilisé, peu importe ses performances.
✅ Comment l’éviter :
- Travailler avec les métiers dès le début (co-conception).
- Poser les bonnes questions : quel problème veut-on résoudre ?
- Comprendre les contraintes terrain (temps réel, lisibilité, coût d’erreur…).
- Traduire les objectifs en KPI data-friendly.
7. ⚙️ Trop de complexité inutile
❌ Ce qui se passe :
Utiliser XGBoost, deep learning ou Transformers… alors qu’une régression logistique aurait suffi.
🎯 Pourquoi c’est un problème :
Les modèles complexes sont plus longs à entraîner, plus durs à expliquer, et souvent inutiles.
✅ Comment l’éviter :
- Commencer par une baseline simple (régression, arbre de décision).
- Comparer les performances par étapes (simple → complexe).
- Toujours préférer la simplicité et la robustesse.
8. ✨ Sous-estimer le Feature Engineering
❌ Ce qui se passe :
On se repose uniquement sur les colonnes existantes, sans chercher à les enrichir.
🎯 Pourquoi c’est un problème :
La qualité du modèle dépend largement de la qualité des variables d’entrée.
✅ Comment l’éviter :
- Créer des variables dérivées (agrégation, ratios, interaction).
- Gérer correctement les variables catégorielles (
OneHotEncoding
,TargetEncoding
). - Tester les transformations non linéaires (log, racine carrée…).
- Utiliser
Feature Importance
,SHAP
,PCA
pour améliorer les features.
9. 🔍 Oublier le monitoring en production
❌ Ce qui se passe :
Une fois le modèle déployé, plus personne ne vérifie s’il fonctionne encore bien.
🎯 Pourquoi c’est un problème :
Les données évoluent (data drift, concept drift). Un modèle peut devenir obsolète sans qu’on s’en rende compte.
✅ Comment l’éviter :
- Mettre en place un suivi automatique des performances.
- Comparer les distributions de données entrantes vs entraînement.
- Mettre des alertes (via Prometheus, Grafana, EvidentlyAI…).
- Réentraîner périodiquement.
10. 💾 Ne pas versionner ses données, ses modèles, ses expériences
❌ Ce qui se passe :
Vous refaites une expérience, mais impossible de retrouver les bons paramètres, ou la bonne version du dataset.
🎯 Pourquoi c’est un problème :
Pas de traçabilité = pas de reproductibilité = perte de temps.
✅ Comment l’éviter :
- Versionner le code avec Git (bien sûr !).
- Versionner les datasets avec DVC, Git LFS ou MLflow.
- Logger chaque expérience : modèle, hyperparamètres, résultats, commentaires.
- Utiliser des outils comme Weights & Biases, Neptune, ou Comet.
📌 En résumé
Erreur | Conséquence | Solution |
---|---|---|
Données non nettoyées | Biais, erreurs | Nettoyage + visualisation |
Pas d’EDA | Méconnaissance du dataset | Analyse visuelle/statistique |
Overfitting | Mauvaise généralisation | Régularisation + validation croisée |
Mauvaise séparation | Évaluation faussée | Séparer train/test proprement |
Mauvaises métriques | Diagnostic incorrect | Choix selon contexte |
Pas de vision métier | Projet inutile | Travailler avec les parties prenantes |
Modèles trop complexes | Temps perdu | Commencer simple |
Feature engineering négligé | Faible performance | Créer/améliorer les variables |
Pas de monitoring | Dégradation non détectée | Suivi automatisé |
Pas de versioning | Reproductibilité impossible | Git + DVC + MLflow |