Introduction

Après avoir compris les paradigmes du machine learning, il est temps d'explorer les algorithmes spécifiques qui alimentent les applications modernes. Chaque algorithme a ses forces et ses faiblesses, et le choix dépend fortement de votre problème, vos données, et vos contraintes de performance. Ce cours couvre les algorithmes classiques qui forment la base de presque tout travail en ML pratique.

De la régression linéaire simple aux forêts aléatoires sophistiquées, ces techniques restent essentielles. Même avec l'émergence des réseaux de neurones profonds, une compréhension solide de ces algorithmes fondamentaux est invaluable pour le diagnostic, l'interprétabilité, et l'optimisation des modèles.

Modèles de Régression

La régression linéaire est le point de départ naturel. Elle suppose que la relation entre les features et la cible est linéaire : y = w0 + w1*x1 + w2*x2 + ... + wn*xn. Les paramètres (poids) sont estimés en minimisant la somme des carrés des erreurs entre les prédictions et les valeurs réelles. Bien que simple, la régression linéaire est étonnamment puissante pour beaucoup de problèmes réels et offre une excellente interprétabilité : chaque poids indique l'impact d'une feature sur la cible.

La régression polynomiale étend ce concept en ajoutant des termes non-linéaires (x², x³, x1*x2, etc.). Cela permet de capturer des relations courbes ou plus complexes. Attention cependant : trop de termes polynomiaux mènent rapidement à l'overfitting.

Régularisation : Pour combattre l'overfitting, on ajoute une pénalité aux modèles complexes. Ridge (L2) pénalise la somme des carrés des poids. Lasso (L1) pénalise la somme des valeurs absolues des poids. Elastic Net combine les deux. Ces techniques forcent les petits poids à devenir encore plus petits, ce qui réduit la complexité effective du modèle.

La régression logistique est utilisée pour la classification binaire. Malgré son nom, ce n'est pas vraiment une régression. Elle modélise la probabilité d'appartenance à la classe positive en appliquant une fonction sigmoïde à une combinaison linéaire des features. La fonction sigmoïde mappe toute valeur à l'intervalle [0, 1], ce qui convient parfaitement pour les probabilités.

Algorithmes de Classification

Arbres de Décision sont intuitifs et puissants. Un arbre de décision divise l'espace des features en régions rectangulaires, chacune associée à une classe. Chaque nœud interne teste une condition (par exemple, "age > 30 ?"), et les feuilles contiennent des prédictions. Pour construire un arbre, on cherche les splits qui maximisent l'information (information gain) ou minimisent l'impureté (indice Gini). Les arbres sont facilement interprétables - vous pouvez tracer exactement comment le modèle a pris sa décision. Cependant, ils tendent à l'overfitting sur des données non-régulières.

Support Vector Machines (SVM) trouvent l'hyperplan qui sépare au mieux les classes tout en maximisant la marge (distance) entre les classes. Pour les problèmes non-linéairement séparables, SVM utilise des "kernel tricks" pour implicitly mapper les données dans un espace de dimension supérieure où elles deviennent séparables. Les kernels populaires incluent polynomial, RBF (Radial Basis Function), et sigmoïde. SVM sont puissants mais peuvent être difficiles à interpréter et coûteux computationnellement pour les grands datasets.

k-Nearest Neighbors (k-NN) est extrêmement simple : pour classer un point, regardez les k exemples d'entraînement les plus proches (selon une métrique de distance) et faites un vote majoritaire. k-NN n'a pas d'étape d'entraînement explicite (c'est un "lazy learner") mais peut être lent au test. Le choix de k et de la métrique de distance affectent fortement la performance.

Méthodes d'Ensemble

Les méthodes d'ensemble combinent plusieurs modèles faibles pour créer un modèle fort. La sagesse des foules s'applique ici : combiner de nombreuses prédictions indépendantes tend à améliorer la précision.

Random Forest entraîne de nombreux arbres de décision sur des sous-ensembles aléatoires des données et features. Chaque arbre "vote" et la classe la plus commune remporte le vote final. Cette randomisation réduit l'overfitting des arbres individuels. Random Forests sont robustes, efficaces, et offrent une bonne performance sur beaucoup de problèmes sans nécessiter beaucoup de tuning. Ils gèrent bien les features non-normalisées et peuvent capturer les interactions complexes.

Gradient Boosting entraîne des arbres séquentiellement, chaque nouvel arbre corrigeant les erreurs du précédent. XGBoost, LightGBM, et CatBoost sont des implémentations populaires hautement optimisées. Bien que puissants, les modèles boosting peuvent l'être trop et requièrent un tuning minutieux pour éviter l'overfitting.

Bagging et Stacking sont d'autres approches : Bagging entraîne des modèles identiques sur des échantillons bootstrap différents ; Stacking entraîne des meta-learners sur les prédictions d'autres modèles. Ces techniques peuvent améliorer significativement la performance mais au coût de la complexité.

💡 Conseil

Pour la plupart des problèmes de classification, commencez par Random Forest. C'est simple, robuste, et offre généralement des résultats décents avec peu de tuning. Essayez ensuite XGBoost ou LightGBM si vous avez besoin d'une performance un peu meilleure.

Clustering et Réduction

K-means est l'algorithme de clustering le plus populaire. Il divise les données en k clusters en minimisant la variance intra-cluster. L'algorithme itère entre assigner chaque point au centroïde le plus proche et recalculer les centroïdes. K-means converge rapidement mais le choix de k est crucial et peut être difficile à déterminer.

Clustering hiérarchique construit un arbre (dendrogramme) de clusters imbriqués. Il peut être agglomératif (bottom-up, commençant avec chaque point comme son propre cluster) ou divisif (top-down). Cela offre une vue plus riche de la structure des données mais est généralement plus coûteux computationnellement.

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) identifie les clusters comme régions denses. Contrairement à k-means, DBSCAN peut découvrir des clusters de formes arbitraires et identifier les valeurs aberrantes comme points de bruit. Il nécessite deux paramètres (epsilon et min_points) qui peuvent être difficiles à tuner.

Analyse en Composantes Principales (PCA) est la technique de réduction de dimensionnalité la plus courante. Elle trouve les directions (composantes principales) qui capturent la plus grande variance dans les données, permettant une projection dans un espace de dimension inférieure. Cela accélère les algorithmes, réduit le bruit, et aide à visualiser les données. Les variantes comme Kernel PCA gèrent les relations non-linéaires.

t-SNE et UMAP sont des techniques modernes de réduction pour la visualisation. Elles projettent les données de haut-dimension en 2D ou 3D d'une manière qui préserve la structure locale. Ces visualisations sont souvent révélatrices mais ne doivent pas être utilisées pour des tâches prédictives - c'est purement pour l'exploration.

Évaluation et Optimisation

Les courbes ROC et AUC sont essentielles pour évaluer les classifieurs. Une courbe ROC trace le taux de vrais positifs contre le taux de faux positifs en variant le seuil de décision. L'AUC (Area Under Curve) résume cette performance en une seule métrique : AUC = 0.5 signifie que le modèle ne fait pas mieux qu'un alea, AUC = 1.0 signifie une classification parfaite.

Hyperparameter Tuning : Chaque algorithme a des hyperparamètres qui contrôlent son comportement. Par exemple, Random Forest a le nombre d'arbres, la profondeur maximale, etc. Grid Search teste systématiquement des combinaisons d'hyperparamètres. Random Search teste des combinaisons aléatoires, souvent plus efficace. Bayesian Optimization est plus sophistiqué et efficace mais plus coûteux.

Cross-validation : Au lieu de diviser une seule fois en train/test, la validation croisée k-fold divise les données en k parts, utilisant successivement chacune comme test et les k-1 autres comme entraînement. Cela donne une estimation plus robuste de la performance et utilise mieux les données limitées.

Feature Importance : Après entraînement, comment savons-nous quelles features importantes ? Les arbres et les forêts aléatoires fournissent directement une mesure basée sur le gain d'information. Des méthodes model-agnostiques comme SHAP (SHapley Additive exPlanations) calculent la contribution de chaque feature à chaque prédiction, offrant une interprétabilité granulaire.

❓ Questions fréquentes

Random Forest ou XGBoost : lequel choisir ?

Random Forest est plus robuste, plus rapide à entraîner, et requiert moins de tuning. XGBoost a généralement une meilleure performance mais demande plus de tuning minutieux. Commencez avec Random Forest pour la facilité, passez à XGBoost si vous avez besoin des 5-10% supplémentaires de performance.

Comment normaliser mes features ?

Cela dépend de l'algorithme. Les arbres et les forêts n'en ont pas besoin - ils sont invariants à l'échelle. SVM, k-NN, et la régression linéaire bénéficient de la normalisation (z-score ou min-max). Utilisez standardization (z-score) pour la plupart des cas. Important : normalisez selon les statistiques du training set seulement, puis appliquez les mêmes paramètres au test set.

Comment gérer les données manquantes ?

Options : supprimer les lignes avec valeurs manquantes (simple mais perd de l'information), imputer avec la moyenne/médiane (simple mais perd de la variance), utiliser des modèles sophistiqués (k-NN imputation, forêts aléatoires itératives). Le choix dépend du pourcentage manquant et de l'importance des features.

Comment gérer les classes déséquilibrées ?

Si une classe est beaucoup plus rare (par exemple, fraude à 1%), l'accuracy standard est trompeuse. Utilisez des métriques comme precision, recall, F1-score, ou AUC. Rééchantillonnez : undersampling (moins d'exemples majority), oversampling (plus d'exemples minority, possiblement synthétiques avec SMOTE), ou ajustez les poids de classe dans l'entraînement.

📋 Mentions légales

Ce cours est basé sur des ressources disponibles gratuitement sur Internet sous licence Creative Commons (CC BY). Le contenu peut être librement partagé à fins éducatives en citant les auteurs. Contact.

📚 Voir aussi