Catégorie :
Niveau :
Vue d'ensemble des familles et techniques de Machine Learning Cliquez pour en savoir plus

Le Machine Learning est un ensemble de techniques permettant aux ordinateurs d'apprendre à partir de données sans être explicitement programmés.

Les trois grandes familles:

  • Apprentissage supervisé : On dispose de données étiquetées (X, y). Le modèle apprend à prédire y à partir de X.
  • Apprentissage non supervisé : Pas d'étiquettes. Le modèle cherche des structures cachées dans les données.
  • Deep Learning : Réseaux de neurones profonds capables d'apprendre des représentations hiérarchiques complexes.

Comment choisir?

SituationApproche recommandée
Données étiquetées + prédiction numériqueSupervised Régression
Données étiquetées + prédiction de classeSupervised Classification
Pas d'étiquettes + grouper des donnéesUnsupervised (Clustering)
Pas d'étiquettes + réduire dimensionsUnsupervised (PCA)
Images, texte, séquences complexesDeep Learning
Données tabulaires simplesModèles classiques (arbres, SVM)

Taxonomie du Machine Learning

flowchart TD ML["Machine Learning"] SUP["Apprentissage Supervisé"] UNSUP["Apprentissage Non Supervisé"] DL["Deep Learning"] REG["Régression"] CLASSIF["Classification"] CLUSTER["Clustering"] REDUC["Réduction de dimensions"] NN["Réseaux de Neurones"] LR["Régression Linéaire"] RF_R["Random Forest"] GB["Gradient Boosting"] LOG["Reg. Logistique"] TREE["Arbre de Décision"] SVM["SVM"] NB["Naive Bayes"] KNN["KNN"] KM["K-Means"] DBSCAN["DBSCAN"] HC["Hiérarchique"] PCA["PCA"] MLP["MLP"] CNN["CNN"] RNN["RNN/LSTM"] AE["Autoencoders"] ML --> SUP ML --> UNSUP ML --> DL SUP --> REG SUP --> CLASSIF REG --> LR REG --> RF_R REG --> GB CLASSIF --> LOG CLASSIF --> TREE CLASSIF --> SVM CLASSIF --> NB CLASSIF --> KNN UNSUP --> CLUSTER UNSUP --> REDUC CLUSTER --> KM CLUSTER --> DBSCAN CLUSTER --> HC REDUC --> PCA DL --> NN NN --> MLP NN --> CNN NN --> RNN NN --> AE class ML ml-node-main class SUP ml-node-secondary class UNSUP ml-node-secondary class DL ml-node-secondary class REG ml-node-success class CLASSIF ml-node-success class CLUSTER ml-node-warning class REDUC ml-node-warning class NN ml-node-danger

Les modèles linéaires sont les fondations du Machine Learning. Simples, interprétables et rapides, ils restent incontournables comme baseline avant d'essayer des modèles plus complexes.


Régression Linéaire (prédire une valeur continue)

Le modèle apprend une équation linéaire :

y = a₁·x₁ + a₂·x₂ + ... + b

  • Les coefficients (a₁, a₂, b) sont appris une fois et restent fixes
  • Chaque coefficient indique l'impact de sa feature sur la prédiction
  • Interprétation directe : "Si x₁ augmente de 1, y augmente de a₁"

Exemple : prédiction du prix immobilier

Prix = 3500 × Surface + 15000 × NbChambres + 50000

→ Un m² supplémentaire ajoute 3500€ au prix.


Régression Logistique (prédire une classe)

Malgré son nom, c'est un modèle de classification ! Il prédit une probabilité entre 0 et 1.

P(classe=1) = σ(a₁·x₁ + a₂·x₂ + ... + b)

Où σ (sigmoid) transforme le score linéaire en probabilité :

  • Score très négatif → P ≈ 0
  • Score très positif → P ≈ 1
  • Score = 0 → P = 0.5

Exemple : spam ou non-spam

P(spam) = σ(2.5 × nb_liens - 1.2 × longueur_texte + 0.8)

→ Plus il y a de liens, plus c'est probablement du spam.


Points clés

AspectRégression LinéaireRégression Logistique
TâcheRégression (valeur continue)Classification (probabilité)
SortieValeur réelle (-∞, +∞)Probabilité [0, 1]
Fonctiony = aX + bP = σ(aX + b)
InterprétationCoefficients = impact directCoefficients = impact sur log-odds

Avantages communs : Rapides, interprétables, peu de données suffisent, bon point de départ.

Limitation : Ne capturent que des relations linéaires. Pour des patterns complexes, il faut des arbres ou du deep learning.

Régression Linéaire vs Logistique

flowchart LR subgraph LIN["Régression Linéaire"] X1["Features<br/>x1, x2, ..."] --> EQ1["y = aX + b"] EQ1 --> Y1["Valeur continue<br/>ex: 350 000€"] end subgraph LOG["Régression Logistique"] X2["Features<br/>x1, x2, ..."] --> EQ2["z = aX + b"] EQ2 --> SIG["σ(z)"] SIG --> Y2["Probabilité<br/>ex: 0.87"] Y2 --> DEC{"P > 0.5 ?"} DEC -->|Oui| C1["Classe 1"] DEC -->|Non| C0["Classe 0"] end class X1 ml-node-secondary class X2 ml-node-secondary class EQ1 ml-node-main class EQ2 ml-node-main class SIG ml-node-accent class Y1 ml-node-success class Y2 ml-node-warning class C1 ml-node-success class C0 ml-node-danger

Un arbre de décision est une approche complètement différente des modèles linéaires : au lieu d'une équation, il utilise une succession de règles pour découper l'espace des données.


Principe : diviser pour régner

L'arbre segmente l'espace des features via des questions binaires :

  • À chaque nœud : une question du type "Feature < seuil ?"
  • Les données sont orientées vers la branche gauche ou droite
  • Les feuilles contiennent la prédiction finale

En régression : la feuille prédit la moyenne des valeurs cibles des observations qu'elle contient.

En classification : la feuille prédit la classe majoritaire.


Exemple : prédiction du prix immobilier

Appartement à prédire : 95 m², 4 chambres

  1. Surface < 80 m² ? Non (95 ≥ 80) → branche droite
  2. Surface < 120 m² ? Oui (95 < 120) → Feuille
  3. Prédiction : 450k (moyenne des appartements 80-120 m²)

Le chemin suivi est mis en évidence en orange dans le diagramme.


Pourquoi l'arbre est asymétrique ?

Les arbres sont des algorithmes gloutons (greedy) :

  • À chaque nœud, ils choisissent la meilleure feature pour réduire l'erreur
  • Ce choix dépend uniquement des données qui arrivent à ce nœud
  • Il n'y a aucune contrainte de symétrie

> La branche gauche peut utiliser "Chambres" tandis que la droite n'utilise que "Surface" — c'est normal !


Comparaison avec les modèles linéaires

AspectModèle LinéaireArbre de Décision
PrédictionÉquation : y = aX + bConstante par région
RelationsLinéaires uniquementNon-linéaires possibles
InterprétabilitéCoefficientsRègles if/else
Risque principalSous-apprentissageSur-apprentissage

Structure d'un arbre de décision

flowchart TD A["🌳 Surface < 80 m2 ?"] -->|Oui| B["❓ Chambres < 3 ?"] A ==>|"Non (95m2)"| C["❓ Surface < 120 m2 ?"] B -->|Oui| D["🍃 250k"] B -->|Non| E["🍃 320k"] C ==>|"Oui (95 < 120)"| F["🍃 450k"] C -->|Non| G["🍃 680k"] class A ml-node-main class B ml-node-secondary class C ml-node-path class D ml-node-success class E ml-node-success class F ml-node-path-end class G ml-node-success

Légende : 🌳 Racine | ❓ Noeud de décision | 🍃 Feuille (prédiction)


Forces et faiblesses

Avantages :

  • Très interprétable (règles explicites)
  • Capture les non-linéarités
  • Pas besoin de normaliser les features
  • Gère naturellement les variables catégorielles

⚠️ Inconvénients :

  • Tendance à l'overfitting (arbre trop profond)
  • Sensible aux petites variations des données
  • Frontières de décision "en escalier"

> Solution : Les méthodes d'ensemble (onglet suivant) combinent plusieurs arbres pour réduire ces problèmes.

Les méthodes d'ensemble combinent plusieurs modèles (généralement des arbres) pour obtenir de meilleures performances. Elles résolvent les faiblesses des arbres seuls : l'overfitting et l'instabilité.


Le problème avec un seul arbre

Un arbre de décision seul présente un compromis biais/variance défavorable :

  • Arbre peu profond → sous-apprentissage (biais élevé)
  • Arbre très profond → sur-apprentissage (variance élevée)

Solution : Combiner plusieurs arbres !


Bagging : réduire la variance (Random Forest)

Le bagging entraîne plusieurs arbres en parallèle sur des échantillons différents :

  1. Créer N échantillons bootstrap (tirage avec remise)
  2. Entraîner un arbre sur chaque échantillon
  3. Agréger les prédictions (moyenne en régression, vote en classification)

Random Forest ajoute une astuce : à chaque nœud, seul un sous-ensemble aléatoire de features est considéré. Cela décorrèle les arbres.

> Résultat : Chaque arbre peut overfitter, mais leurs erreurs se compensent !


Boosting : réduire le biais (Gradient Boosting)

Le boosting entraîne des arbres séquentiellement, chacun corrigeant les erreurs du précédent :

  1. Entraîner un premier arbre (souvent simple)
  2. Calculer les résidus (erreurs)
  3. Entraîner un nouvel arbre sur ces résidus
  4. Répéter et sommer les prédictions

Implémentations populaires : XGBoost, LightGBM, CatBoost

> Résultat : Le modèle final capture des patterns de plus en plus subtils.


Comparaison

AspectBagging (Random Forest)Boosting (Gradient Boosting)
EntraînementParallèleSéquentiel
ObjectifRéduire la varianceRéduire le biais
ArbresProfonds, indépendantsPeu profonds, dépendants
RisquePeu d'overfittingOverfitting si trop d'itérations
VitesseParallélisablePlus lent

Bagging vs Boosting

flowchart LR subgraph Bagging["Bagging (Random Forest)"] D1[Dataset] --> B1[Arbre 1] D1 --> B2[Arbre 2] D1 --> B3[Arbre 3] B1 --> P1[Moyenne] B2 --> P1 B3 --> P1 end subgraph Boosting["Boosting (Gradient Boosting)"] D2[Dataset] --> M1[Arbre 1] M1 --> R1[Residus 1] R1 --> M2[Arbre 2] M2 --> R2[Residus 2] R2 --> M3[Arbre 3] M1 --> S[Somme ponderee] M2 --> S M3 --> S end class D1 ml-node-main class D2 ml-node-main class P1 ml-node-success class S ml-node-success

Feature Importance vs SHAP values

MéthodeNiveauPrincipeCalcul
FeatureImportanceGlobalImpact moyen sur la lossGain cumulé aux nœuds
SHAP valuesLocal & GlobalContribution marginale exacteValeurs de Shapley (coalitions)

Feature Importance (gain-based)

  • À chaque nœud de l'arbre, une feature est choisie pour séparer les données
  • Le gain mesure la réduction de la loss obtenue grâce à ce nœud
  • L'importance d'une feature = somme des gains de tous les nœuds où elle apparaît
  • ⚠️ Biais : favorise les features à haute cardinalité
  • ⚠️ Ne tient pas compte des interactions entre features

SHAP values (Shapley-based)

Issues de la théorie des jeux coopératifs :

  • Les features = joueurs
  • La prédiction = gain
  • Répartition équitable du gain

> Avantages : Additivité, prise en compte des interactions, interprétation locale et globale.

Séquence correcte :

  1. Entraînement du modèle (arbres fixés)
  2. Calcul des SHAP values
  3. Aucun réentraînement du modèle

En résumé

AspectFeature ImportanceSHAP
Question posée"Quel gain aux nœuds ?""Quel impact sur la prédiction ?"
MéthodeCumul des réductions de lossComparaison avec/sans feature
Interactions❌ Ignorées✅ Prises en compte
NiveauGlobal uniquementLocal et global

En production :

  • FeatureImportance → monitoring rapide, sélection de features
  • SHAP → audit, explicabilité, régulation, debugging de prédictions individuelles

Feature Importance vs SHAP

flowchart TD subgraph FI["Feature Importance"] A1[Arbre 1] -->|Noeud Surface| G1[Gain: 0.3] A2[Arbre 2] -->|Noeud Surface| G2[Gain: 0.2] A3[Arbre N] -->|Noeud Surface| G3[Gain: 0.1] G1 --> IMP[Importance = 0.6] G2 --> IMP G3 --> IMP end subgraph SHAP["SHAP Values"] Q[Impact de Surface ?] Q --> T1[Prediction SANS Surface] Q --> T2[Prediction AVEC Surface] T1 --> DIFF[Difference = contribution] T2 --> DIFF DIFF --> R[Toutes les coalitions] R --> M[SHAP value] end class IMP ml-node-warning class M ml-node-success
Apprentissage supervisé - Régression
Débutant

Régression linéaire

Une droite ajustée par moindres carrés sur des prix immobiliers, et ce que MSE et R² en disent.

30 min 13 sections
Apprentissage supervisé - Classification
Débutant

Régression logistique

La sigmoïde transforme un score en probabilité ; la matrice de confusion dit ce que coûte le seuil.

35 min 14 sections
Apprentissage supervisé - Classification
Débutant

Arbre de décision

Des questions oui/non en cascade, choisies pour faire baisser l'impureté, et qui se lisent sans décoder de coefficients.

30 min 14 sections
Apprentissage non supervisé
Débutant

K-Means Clustering

Sans étiquettes, des centroïdes se déplacent jusqu'à stabilisation, et la méthode du coude tranche le nombre de groupes.

30 min 14 sections
Deep learning
Intermédiaire

Réseau de neurones from scratch

Forward, perte, rétropropagation et descente de gradient écrits en NumPy pur, sans framework pour cacher le calcul.

50 min 17 sections
Apprentissage supervisé - Régression
Intermédiaire

Random Forest Regressor

Cent arbres entraînés sur des échantillons et features tirés au sort, dont la moyenne bat un arbre seul.

40 min 14 sections
Apprentissage supervisé - Régression
Intermédiaire

Gradient Boosting

Chaque arbre apprend l'erreur que les précédents ont laissée, séquentiellement, là où la forêt aléatoire les moyenne.

45 min 12 sections
Apprentissage supervisé - Classification
Intermédiaire

Support Vector Machine (SVM)

Parmi une infinité de frontières, celle qui maximise la marge ; le kernel trick prend le relais sinon.

45 min 13 sections
Apprentissage supervisé - Classification Statistiques bayésiennes
Débutant

Naive Bayes

L'hypothèse d'indépendance des features est fausse presque partout, et pourtant elle classe vite et bien.

35 min 13 sections
Apprentissage supervisé - Classification
Débutant

K-Nearest Neighbors (KNN)

Aucun entraînement : la classe se décide au vote des k voisins, à condition d'avoir normalisé les échelles.

30 min 13 sections
Apprentissage non supervisé
Intermédiaire

PCA (analyse en composantes principales)

Dix dimensions ramenées à deux en gardant les directions de variance maximale, et ce que le reste emporte.

40 min 13 sections
Apprentissage non supervisé
Intermédiaire

DBSCAN

La densité remplace le nombre de groupes à fixer d'avance, et ce qui reste isolé est étiqueté bruit.

40 min 13 sections
Apprentissage non supervisé
Débutant

Clustering hiérarchique

Les points fusionnent deux à deux jusqu'au dernier ; la hauteur de coupe fixe le nombre de groupes.

35 min 13 sections
Deep learning
Intermédiaire

CNN (réseaux convolutifs)

Un filtre glisse sur l'image et apprend lui-même ce qu'il faut regarder, couche après couche, jusqu'aux dix classes.

50 min 13 sections
Deep learning
Avancé

RNN et LSTM

L'état caché porte la mémoire d'un pas au suivant ; trois portes la sauvent du gradient évanescent.

55 min 13 sections
Apprentissage non supervisé Deep learning
Intermédiaire

Autoencoders

Ce que le réseau reconstruit mal est ce qu'il n'a jamais vu : la fraude se détecte ainsi.

45 min 13 sections
Statistiques bayésiennes
Intermédiaire

Inférence bayésienne

Le paramètre cesse d'être un nombre pour devenir une distribution, mise à jour à chaque nouvelle donnée.

45 min 13 sections
Apprentissage supervisé - Régression Statistiques bayésiennes
Intermédiaire

Régression linéaire bayésienne

Les coefficients deviennent des distributions, la prédiction une bande d'incertitude, et Ridge se révèle être un prior gaussien.

45 min 11 sections
Statistiques bayésiennes
Avancé

MCMC et PyMC

Quand le posterior n'a plus de formule, on l'échantillonne : Metropolis-Hastings à la main, puis NUTS et ArviZ.

60 min 13 sections

Console Python

Raccourcis clavier
Ctrl/Cmd+Enter Exécuter
Ctrl/Cmd+Shift+/ Commenter
Tab Indenter
Shift+Tab Désindenter
Ctrl/Cmd+Z Annuler
Ctrl/Cmd+Y Rétablir
Ctrl+Entrée pour exécuter
Cliquez sur "Exécuter" pour voir le résultat