L'estimation et le choix d'un modèle de machine learning sont des étapes cruciales dans tout
projet de science des données. Elles visent à sélectionner l'algorithme le plus performant et le
mieux adapté à un problème donné, tout en garantissant sa capacité à généraliser sur de
nouvelles données.
Voici une approche structurée, incluant les cas pratiques possibles :
I. Comprendre le Problème et les Données
Avant même de penser aux modèles, il est fondamental de bien comprendre le problème à
résoudre et de connaître ses données :
● Type de problème :
○ Classification : Prédire une catégorie (ex: spam/non-spam, maladie/non-maladie,
type de client).
○ Régression : Prédire une valeur numérique continue (ex: prix d'une maison,
température, ventes futures).
○ Clustering : Regrouper des données similaires sans étiquettes (ex: segmentation
client, détection d'anomalies).
○ Réduction de dimensionnalité : Réduire le nombre de caractéristiques tout en
conservant l'information (ex: PCA pour la visualisation).
○ Séries temporelles : Prédiction basée sur des données séquentielles et
chronologiques (ex: prévisions boursières, consommation d'énergie).
● Nature des données :
○ Structurelles : Données tabulaires (colonnes, lignes).
○ Non-structurelles : Images, textes, sons.
● Volume des données : Petite, moyenne, grande.
● Qualité des données : Données manquantes, aberrantes, bruitées.
● Exigences métier : Quelle est la métrique de performance la plus importante pour le
métier ? (précision, rappel, F1-score, erreur quadratique moyenne, etc.) Est-ce que
l'interprétabilité du modèle est une exigence forte ? Quelle est la latence acceptable pour
les prédictions ?
Cas pratique :
● Problème : Prédire si un client va désabonner d'un service (churn prediction).
● Type : Classification binaire.
● Données : Données tabulaires (âge, revenu, durée d'abonnement, historique
d'utilisation).
● Exigence métier : Identifier les clients à risque pour proposer des offres de rétention. Le
rappel (capacité à identifier tous les churners) est probablement plus important que la
précision (éviter les faux positifs).
II. Préparation des Données
Une bonne préparation des données est essentielle pour la performance du modèle.
● Nettoyage des données :
○ Gestion des valeurs manquantes (imputation, suppression).
○ Traitement des valeurs aberrantes.
● Transformation des données :
○ Encodage des variables catégorielles (One-Hot Encoding, Label Encoding).
○ Mise à l'échelle des caractéristiques numériques (StandardScaler, MinMaxScaler).
○ Création de nouvelles caractéristiques (Feature Engineering).
● Sélection de caractéristiques (Feature Selection) : Réduire la dimensionnalité pour
améliorer la performance et l'interprétabilité.
Cas pratique (suite churn prediction) :
● Nettoyage : Imputer les revenus manquants par la médiane.
● Transformation : Encoder la catégorie de service (e.g., "internet", "téléphone") en
variables binaires. Mettre à l'échelle les revenus et la durée d'abonnement.
● Feature Engineering : Créer une nouvelle variable "ratio d'utilisation" (utilisation
mensuelle / durée d'abonnement).
III. Sélection des Modèles Candidats
Basé sur le type de problème et la nature des données, on peut présélectionner plusieurs types
d'algorithmes :
● Pour la Classification :
○ Régression Logistique
○ Arbres de Décision
○ Random Forest
○ Gradient Boosting (XGBoost, LightGBM, CatBoost)
○ Support Vector Machines (SVM)
○ Réseaux de Neurones
○ K-Nearest Neighbors (KNN)
○ Naïve Bayes
● Pour la Régression :
○ Régression Linéaire
○ Régression Polynomiale
○ Arbres de Décision
○ Random Forest
○ Gradient Boosting
○ SVM (SVR)
○ Réseaux de Neurones
○ K-Nearest Neighbors (KNN)
● Pour le Clustering :
○ K-Means
○ DBSCAN
○ Clustering Hiérarchique
○ Gaussian Mixture Models (GMM)
Cas pratique (suite churn prediction) :
● Modèles candidats : Régression Logistique (modèle de base, interprétable), Random
Forest (bonne performance, gère les non-linéarités), XGBoost (souvent très performant),
SVM (robuste).
IV. Stratégies d'Évaluation des Modèles
La façon la plus fiable d'estimer la performance d'un modèle est de le tester sur des données
qu'il n'a jamais vues.
● Division Train/Test :
○ Le dataset est divisé en deux parties : un ensemble d'entraînement (généralement
70-80%) et un ensemble de test (20-30%).
○ Le modèle est entraîné sur l'ensemble d'entraînement et évalué sur l'ensemble de
test.
○ Limitation : La performance peut être très dépendante de la manière dont les
données sont divisées. Moins fiable pour de petits datasets.
● Validation Croisée (K-Fold Cross-Validation) :
○ Le dataset est divisé en K "folds" (sous-ensembles) de taille égale.
○ Le modèle est entraîné K fois. À chaque itération, un fold est utilisé comme
ensemble de test et les K-1 autres comme ensemble d'entraînement.
○ La performance finale est la moyenne des K évaluations.
○ Avantages : Utilise toutes les données à la fois pour l'entraînement et le test,
donne une estimation plus robuste de la performance.
○ Variantes :
■ Stratified K-Fold : Important pour les problèmes de classification avec des
classes déséquilibrées. Assure que chaque fold a une proportion similaire de
classes que le dataset original.
■ Leave-One-Out Cross-Validation (LOOCV) : K = nombre d'échantillons.
Très coûteux en calcul pour de grands datasets.
■ Time Series Cross-Validation : Pour les données de séries temporelles, il
faut maintenir l'ordre chronologique (entraînement sur le passé, test sur le
futur).
● Bootstrap :
○ Crée plusieurs "échantillons bootstrap" en échantillonnant avec remplacement à
partir du dataset original.
○ Le modèle est entraîné sur chaque échantillon bootstrap et évalué sur les données
qui n'ont pas été échantillonnées (out-of-bag samples).
○ Utile pour estimer la variabilité de la performance du modèle.
Cas pratique (suite churn prediction) :
● Méthode : Validation croisée stratifiée à 5 ou 10 folds (StratifiedKFold), car le churn est
souvent un événement minoritaire. Cela garantit que chaque fold a une proportion
représentative de "churners" et de "non-churners".
V. Métriques d'Évaluation
Le choix des métriques dépend du type de problème et des objectifs métier.
● Pour la Classification :
○ Matrice de confusion : Tableau récapitulatif des prédictions (Vrais Positifs, Vrais
Négatifs, Faux Positifs, Faux Négatifs).
○ Accuracy (Précision globale) : (TP + TN) / Total. Peut être trompeuse avec des
classes déséquilibrées.
○ Precision : TP / (TP + FP). Proportion de vrais positifs parmi ceux prédits positifs.
○ Recall (Rappel ou Sensibilité) : TP / (TP + FN). Proportion de vrais positifs parmi
tous les positifs réels.
○ F1-Score : 2 \times (Precision \times Recall) / (Precision + Recall). Moyenne
harmonique de la précision et du rappel, utile pour les classes déséquilibrées.
○ AUC-ROC (Area Under the Receiver Operating Characteristic curve) : Mesure
la capacité du modèle à distinguer les classes. Plus l'AUC est proche de 1,
meilleure est la séparation. Moins sensible au déséquilibre des classes que
l'accuracy.
○ PR Curve (Precision-Recall Curve) : Souvent plus informative que l'AUC-ROC
pour les classes très déséquilibrées, car elle se concentre sur la performance de la
classe minoritaire.
● Pour la Régression :
○ Mean Absolute Error (MAE) : Moyenne des erreurs absolues. Moins sensible aux
valeurs aberrantes que MSE.
○ Mean Squared Error (MSE) : Moyenne des erreurs au carré. Pénalise davantage
les grandes erreurs.
○ Root Mean Squared Error (RMSE) : Racine carrée de MSE. Dans la même unité
que la variable cible.
○ R-squared (R^2) : Proportion de la variance de la variable dépendante qui est
expliquée par le modèle. Entre 0 et 1 (peut être négatif si le modèle est très
mauvais).
● Pour le Clustering :
○ Silhouette Score : Mesure la qualité des clusters, entre -1 et 1. Plus il est proche
de 1, mieux c'est.
○ Davies-Bouldin Index : Mesure la similarité entre les clusters. Plus il est bas,
mieux c'est.
○ Inertia (pour K-Means) : Somme des carrés des distances des points à leur
centroïde. Le plus bas est le mieux.
Cas pratique (suite churn prediction) :
● Métriques principales : F1-score (car classes déséquilibrées et importance de la
détection des churners), Recall (pour minimiser les faux négatifs, c'est-à-dire les churners
non identifiés), et AUC-ROC.
VI. Optimisation des Hyperparamètres
Une fois les modèles candidats et les métriques définis, il est nécessaire d'optimiser les
hyperparamètres de chaque modèle pour maximiser leurs performances.
● Grid Search : Teste toutes les combinaisons possibles d'hyperparamètres définies dans
une grille. Systématique mais coûteux en temps.
● Random Search : Échantillonne aléatoirement des combinaisons d'hyperparamètres.
Souvent plus efficace que Grid Search, surtout quand de nombreux hyperparamètres ont
peu d'impact.
● Optimisation Bayésienne : Utilise un modèle probabiliste pour choisir les
hyperparamètres suivants à tester, en se basant sur les résultats précédents. Plus
efficace pour explorer de grands espaces d'hyperparamètres.
● Algorithmes génétiques : Inspirés de la sélection naturelle pour trouver les meilleurs
hyperparamètres.
Cas pratique (suite churn prediction) :
● Hyperparamètres à optimiser :
○ Random Forest : n_estimators (nombre d'arbres), max_depth (profondeur
maximale des arbres), min_samples_split.
○ XGBoost : n_estimators, learning_rate, max_depth, subsample, colsample_bytree.
● Méthode : Random Search avec validation croisée pour trouver les meilleurs
hyperparamètres pour chaque modèle.
VII. Comparaison et Choix du Modèle Final
Après avoir entraîné et évalué tous les modèles candidats optimisés, il faut les comparer et
choisir le meilleur.
● Comparaison des métriques : Examiner les scores obtenus sur les métriques clés (ex:
F1-score, AUC-ROC pour la classification).
● Interprétabilité : Certains modèles (régression logistique, arbres de décision simples)
sont plus interprétables que d'autres (réseaux de neurones, forêts aléatoires).
L'interprétabilité peut être une exigence forte dans certains domaines (médecine,
finance). Utiliser des techniques d'interprétabilité post-hoc (SHAP, LIME) pour les
modèles complexes.
● Complexité et Temps de calcul : Un modèle plus simple et plus rapide à
entraîner/prédire peut être préféré s'il offre des performances comparables.
● Robusteese : Le modèle est-il stable face à de légères variations dans les données
d'entrée ?
● Ressources : Exigences en termes de mémoire et de CPU pour l'entraînement et le
déploiement.
● Coûts des erreurs : Quel est le coût d'un faux positif ou d'un faux négatif ? Dans le cas
du churn, un faux négatif (ne pas identifier un churner) est plus coûteux qu'un faux positif
(proposer une offre de rétention à un client qui ne churnerait pas).
Tests statistiques de comparaison : Pour des comparaisons plus rigoureuses entre modèles,
surtout sur des datasets de taille modérée, on peut utiliser des tests statistiques pour vérifier si
les différences de performance sont significatives (ex: test de Wilcoxon, test de t).
Analyse des erreurs : Examiner les erreurs spécifiques faites par les modèles. Y a-t-il des
patterns ? Le modèle a-t-il du mal avec certaines catégories de clients, certaines régions, etc. ?
Cette analyse peut guider des améliorations futures ou des stratégies de déploiement ciblées.
Cas pratique (suite churn prediction) :
● Comparaison : Supposons que XGBoost ait le meilleur F1-score et AUC-ROC, suivi de
Random Forest, puis de la Régression Logistique.
● Choix :
○ Si la performance est la priorité absolue et que l'on peut accepter une certaine
"boîte noire", XGBoost est le meilleur choix.
○ Si l'interprétabilité est très importante, on pourrait choisir la Régression Logistique
si sa performance est acceptable, ou utiliser des techniques d'interprétabilité
(SHAP) sur XGBoost pour expliquer ses prédictions.
○ On peut aussi envisager un ensemble de modèles (ensemble learning) pour
combiner les forces de plusieurs algorithmes.
VIII. Déploiement et Monitoring
Le travail ne s'arrête pas au choix du modèle.
● Déploiement : Intégrer le modèle choisi dans un système de production pour des
prédictions en temps réel ou batch.
● Monitoring : Surveiller la performance du modèle en production. Les données peuvent
évoluer (dérive des données, data drift), ce qui peut dégrader la performance du modèle
au fil du temps.
● Ré-entraînement : Mettre en place des processus pour ré-entraîner régulièrement le
modèle avec de nouvelles données.
Cas pratique (suite churn prediction) :
● Déploiement : Le modèle XGBoost est déployé via une API REST pour des prédictions
en temps réel.
● Monitoring : Une dashboard est mise en place pour suivre le F1-score, le Recall et
l'AUC-ROC du modèle sur les nouvelles données chaque mois. Des alertes sont
configurées si la performance chute en dessous d'un certain seuil.
● Ré-entraînement : Le modèle est ré-entraîné tous les trimestres avec les données les
plus récentes pour s'adapter aux évolutions du comportement client.
Cas pratiques supplémentaires avec des
problématiques spécifiques :
1. Données Déséquilibrées (Imbalanced Data) :
○ Problème : Détection de fraude bancaire (très peu de fraudes par rapport aux
transactions normales).
○ Techniques :
■ Rééchantillonnage : Oversampling de la classe minoritaire (SMOTE) ou
undersampling de la classe majoritaire.
■ Changement de l'algorithme : Utiliser des algorithmes moins sensibles au
déséquilibre (e.g., forêt aléatoire).
■ Changement de la fonction de perte : Utiliser des fonctions de perte
pondérées qui donnent plus de poids aux erreurs sur la classe minoritaire.
■ Métriques : Privilégier le Recall, la Precision, le F1-score et la PR-Curve
plutôt que l'Accuracy.
2. Séries Temporelles :
○ Problème : Prévision de la demande en électricité.
○ Techniques d'évaluation : Validation croisée glissante (rolling/walk-forward
cross-validation) pour respecter l'ordre temporel.
○ Modèles : ARIMA, Prophet, LSTMs, modèles de forêts (si les caractéristiques
temporelles sont bien construites).
○ Métriques : RMSE, MAE.
3. Petit Volume de Données :
○ Problème : Développement de médicaments, avec peu de patients.
○ Techniques :
■ Validation Croisée : Leave-One-Out Cross-Validation (LOOCV) si le dataset
est vraiment petit.
■ Modèles simples : Régression logistique, SVM linéaires, modèles basés sur
les arbres (avec une profondeur limitée). Les réseaux de neurones profonds
sont à éviter car ils nécessitent beaucoup de données.
■ Augmentation de données : Pour les images, rotations, translations, etc.
■ Transfer Learning : Utiliser un modèle pré-entraîné sur un grand dataset
similaire et le fine-tuner sur le petit dataset.
4. Interprétabilité Cruciale :
○ Problème : Attribution de crédits bancaires, diagnostic médical.
○ Modèles à privilégier : Régression logistique, arbres de décision, modèles
linéaires généralisés (GLM).
○ Techniques d'interprétabilité : LIME (Local Interpretable Model-agnostic
Explanations), SHAP (SHapley Additive exPlanations) pour comprendre les
contributions des caractéristiques aux prédictions individuelles ou globales,
Permutation Importance.
5. Contraintes de Latence et de Déploiement :
○ Problème : Système de recommandation en temps réel.
○ Choix du modèle : Privilégier les modèles rapides à prédire (ex: régression
logistique, LightGBM, petits réseaux de neurones).
○ Optimisation : Quantification du modèle, élagage (pruning) des réseaux de
neurones.
○ Infrastructure : Utilisation de frameworks de déploiement optimisés (TensorFlow
Serving, ONNX Runtime).
En résumé, l'estimation et le choix d'un modèle de machine learning ne sont pas une science
exacte mais un processus itératif qui implique une compréhension approfondie du problème,
une exploration rigoureuse des données, l'expérimentation avec divers algorithmes et stratégies
d'évaluation, et enfin une prise de décision éclairée en fonction des métriques de performance
et des contraintes métier.