Categorie:
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 Regression
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 Supervise"] UNSUP["Apprentissage Non Supervise"] DL["Deep Learning"] REG["Regression"] CLASSIF["Classification"] CLUSTER["Clustering"] REDUC["Reduction de dimensions"] NN["Reseaux de Neurones"] LR["Regression Lineaire"] RF_R["Random Forest"] GB["Gradient Boosting"] LOG["Reg. Logistique"] TREE["Arbre de Decision"] SVM["SVM"] NB["Naive Bayes"] KNN["KNN"] KM["K-Means"] DBSCAN["DBSCAN"] HC["Hierarchique"] 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 style ML fill:#9B7AC4,color:#fff style SUP fill:#E5D7F5,color:#1A1A1A style UNSUP fill:#E5D7F5,color:#1A1A1A style DL fill:#E5D7F5,color:#1A1A1A style REG fill:#d4edda,color:#1A1A1A style CLASSIF fill:#d4edda,color:#1A1A1A style CLUSTER fill:#fff3cd,color:#1A1A1A style REDUC fill:#fff3cd,color:#1A1A1A style NN fill:#f8d7da,color:#1A1A1A

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 style X1 fill:#E5D7F5,color:#1A1A1A style X2 fill:#E5D7F5,color:#1A1A1A style EQ1 fill:#9B7AC4,color:#fff style EQ2 fill:#9B7AC4,color:#fff style SIG fill:#F7E64D,color:#1A1A1A style Y1 fill:#d4edda,color:#1A1A1A style Y2 fill:#fff3cd,color:#1A1A1A style C1 fill:#d4edda,color:#1A1A1A style C0 fill:#f8d7da,color:#1A1A1A

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 noeud : 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 noeud, ils choisissent la meilleure feature pour réduire l'erreur
  • Ce choix dépend uniquement des données qui arrivent à ce noeud
  • 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"] style A fill:#9B7AC4,color:#fff style B fill:#E5D7F5,color:#1A1A1A style C fill:#F7A54D,color:#1A1A1A style D fill:#d4edda,color:#1A1A1A style E fill:#d4edda,color:#1A1A1A style F fill:#F7A54D,color:#fff,stroke:#E5851D,stroke-width:3px style G fill:#d4edda,color:#1A1A1A

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 noeud, 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 style D1 fill:#9B7AC4,color:#fff style D2 fill:#9B7AC4,color:#fff style P1 fill:#d4edda,color:#1A1A1A style S fill:#d4edda,color:#1A1A1A

Feature Importance vs SHAP values

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

Feature Importance (gain-based)

  • À chaque noeud 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 noeud
  • L'importance d'une feature = somme des gains de tous les noeuds 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 noeuds ?""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 style IMP fill:#fff3cd,color:#1A1A1A style M fill:#d4edda,color:#1A1A1A
Supervised Regression Debutant

Regression Lineaire

Apprenez les fondamentaux de la regression lineaire pour predire des valeurs continues a partir de variables explicatives.

30 min 13 sections
Supervised Classification Debutant

Regression Logistique

Decouvrez la classification binaire avec la regression logistique, un algorithme fondamental du machine learning.

35 min 14 sections
Supervised Classification Debutant

Arbre de Decision

Decouvrez les arbres de decision, un algorithme intuitif et interpretable pour la classification et la regression.

30 min 14 sections
Unsupervised Debutant

K-Means Clustering

Apprenez a regrouper des donnees automatiquement avec l'algorithme K-Means, une technique fondamentale d'apprentissage non supervise.

30 min 14 sections
Deep Learning Intermediaire

Reseau de Neurones from Scratch

Implementez un reseau de neurones de A a Z avec NumPy. Comprenez chaque etape: forward pass, fonctions d'activation, backpropagation et descente de gradient.

50 min 17 sections
Supervised Regression Intermediaire

Random Forest Regressor

Maitrisez les forets aleatoires pour la regression, un algorithme d'ensemble puissant combinant plusieurs arbres de decision.

40 min 14 sections
Supervised Regression Intermediaire

Gradient Boosting

Decouvrez le Gradient Boosting, une technique d'ensemble qui construit des modeles sequentiellement pour corriger les erreurs des precedents.

45 min 12 sections
Supervised Classification Intermediaire

Support Vector Machine (SVM)

Maitrisez les SVM, un algorithme puissant pour la classification qui trouve la frontiere optimale entre les classes.

45 min 13 sections
Supervised Classification Debutant

Naive Bayes

Apprenez Naive Bayes, un algorithme de classification probabiliste simple, rapide et etonnamment efficace.

35 min 13 sections
Supervised Classification Debutant

K-Nearest Neighbors (KNN)

Decouvrez KNN, un algorithme intuitif qui classe les points selon leurs k plus proches voisins.

30 min 13 sections
Unsupervised Intermediaire

PCA (Analyse en Composantes Principales)

Maitrisez la PCA pour reduire la dimensionnalite de vos donnees tout en preservant l'information essentielle.

40 min 13 sections
Unsupervised Intermediaire

DBSCAN

Maitrisez DBSCAN, un algorithme de clustering base sur la densite qui detecte automatiquement les anomalies.

40 min 13 sections
Unsupervised Debutant

Clustering Hierarchique

Decouvrez le clustering hierarchique et les dendrogrammes pour comprendre la structure de vos donnees a differents niveaux.

35 min 13 sections
Deep Learning Intermediaire

CNN (Reseaux Convolutifs)

Decouvrez les reseaux de neurones convolutifs, l'architecture de reference pour la classification d'images.

50 min 13 sections
Deep Learning Avance

RNN et LSTM

Maitrisez les reseaux recurrents et LSTM pour traiter des donnees sequentielles comme les series temporelles.

55 min 13 sections
Deep Learning Intermediaire

Autoencoders

Decouvrez les autoencoders pour la compression de donnees, la reduction de dimensionnalite et la detection d'anomalies.

45 min 13 sections

Console Python

Raccourcis clavier
Ctrl/Cmd+Enter Executer
Ctrl/Cmd+Shift+/ Commenter
Tab Indenter
Shift+Tab Desindenter
Ctrl/Cmd+Z Annuler
Ctrl/Cmd+Y Retablir
Ctrl+Enter pour executer
Cliquez sur "Executer" pour voir le resultat