0% ont trouvé ce document utile (0 vote)
3 vues1 058 pages

Cours Machine Learning

Ce document présente une introduction au Machine Learning (ML), en expliquant son utilité, ses types d'apprentissage et les différences avec la programmation classique. Il souligne que le ML permet d'apprendre à partir d'exemples plutôt que de coder des règles manuelles, ce qui est essentiel pour résoudre des problèmes complexes. Enfin, il fournit une définition formelle de l'apprentissage selon Tom Mitchell, illustrée par des exemples pratiques.

Transféré par

ZedineEch
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues1 058 pages

Cours Machine Learning

Ce document présente une introduction au Machine Learning (ML), en expliquant son utilité, ses types d'apprentissage et les différences avec la programmation classique. Il souligne que le ML permet d'apprendre à partir d'exemples plutôt que de coder des règles manuelles, ce qui est essentiel pour résoudre des problèmes complexes. Enfin, il fournit une définition formelle de l'apprentissage selon Tom Mitchell, illustrée par des exemples pratiques.

Transféré par

ZedineEch
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module : Machine Learning

Séance 1  Partie 1 : Introduction complète au ML

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  Séance 1  Partie 1 1/38


Ce que vous allez apprendre dans cette partie

1 Pourquoi le Machine Learning existe-t-il ? Quel problème résout-il ?


2 Dénition formelle : quand dit-on qu'un programme apprend ?
3 3 types d'apprentissage : supervisé, non supervisé, renforcement
4 Classication vs Régression : comment les distinguer ?
5 Model-Based vs Instance-Based : deux philosophies opposées
6 Shallow vs Deep Learning : où se situe ce cours ?
7 Training vs Scoring : les deux phases de tout système ML
8 Quand utiliser le ML et quand ne pas l'utiliser

Pr. ADDOU ML  Séance 1  Partie 1 2/38


Introduction

★ Rééchissez 30 secondes

Comment écririez-vous un programme qui reconnaît un chat dans une photo ? Quelles
règles coderiez-vous ?

Pr. ADDOU ML  Séance 1  Partie 1 3/38


Introduction

★ Rééchissez 30 secondes

Comment écririez-vous un programme qui reconnaît un chat dans une photo ? Quelles
règles coderiez-vous ?

Vos tentatives probables :

if oreilles_pointues AND moustaches AND fourrure then CHAT


Mais : un chat de dos ? Un chat noir dans une pièce sombre ?

Un chaton (qui ne ressemble pas à un adulte) ? Un dessin ? Une peluche ?

Il faudrait des millions de règles... et elles ne couvriraient jamais tous les cas !

Pr. ADDOU ML  Séance 1  Partie 1 3/38


Introduction

★ Rééchissez 30 secondes

Comment écririez-vous un programme qui reconnaît un chat dans une photo ? Quelles
règles coderiez-vous ?

Vos tentatives probables :

if oreilles_pointues AND moustaches AND fourrure then CHAT


Mais : un chat de dos ? Un chat noir dans une pièce sombre ?

Un chaton (qui ne ressemble pas à un adulte) ? Un dessin ? Une peluche ?

Il faudrait des millions de règles... et elles ne couvriraient jamais tous les cas !

☞ À retenir
Certains problèmes sont trop complexes pour être résolus par des règles manuelles. C'est exactement
le type de problème pour lequel le ML a été inventé.

Pr. ADDOU ML  Séance 1  Partie 1 3/38


La solution : apprendre à partir d'exemples

Au lieu de coder les règles, on montre des exemples :


1 On rassemble 100 000 photos étiquetées : 50k chat, 50k pas chat

2 On donne ces photos à un algorithme d'apprentissage

3 L'algorithme découvre par lui-même les caractéristiques d'un chat

4 Résultat : un modèle capable de reconnaître des chats sur des données qu'il n'a jamais vues

Pr. ADDOU ML  Séance 1  Partie 1 4/38


La solution : apprendre à partir d'exemples

Au lieu de coder les règles, on montre des exemples :


1 On rassemble 100 000 photos étiquetées : 50k chat, 50k pas chat

2 On donne ces photos à un algorithme d'apprentissage

3 L'algorithme découvre par lui-même les caractéristiques d'un chat

4 Résultat : un modèle capable de reconnaître des chats sur des données qu'il n'a jamais vues

Machine Learning  idée centrale

Au lieu de programmer les règles, on programme la capacité d'apprendre les règles à partir
de données. L'humain fournit les exemples, l'algorithme découvre les patterns.

Pr. ADDOU ML  Séance 1  Partie 1 4/38


Programmation classique vs Machine Learning
Programmation classique

Données

Règles (humain)

Résultats

L'humain écrit les règles, le programme les


applique.

Ex :
Calcul TVA : prix × 20%
Calcul salaire net
Conversion de devises (MAD → EUR)
Tri d'un tableau
Pr. ADDOU ML  Séance 1  Partie 1 5/38
Programmation classique vs Machine Learning
Programmation classique Machine Learning

Données Données + Réponses

Règles (humain) Algorithme ML

Résultats Modèle (règles apprises)

L'humain écrit les règles, le programme les L'humain fournit les exemples, l'algo décou-
applique. vre les règles.
Ex :
Ex : Détecter la fraude bancaire
Calcul TVA : prix × 20%
Diagnostic médical
Calcul salaire net
Prédire le prix immobilier à Oujda
Conversion de devises (MAD → EUR)
Reconnaissance d'images.
Tri d'un tableau
Pr. ADDOU ML  Séance 1  Partie 1 5/38
Retenez cette inversion fondamentale

☞ À retenir

Programmation classique : données + règles −→ résultats.

Machine Learning : données + résultats −→ règles (le modèle).

C'est une inversion du paradigme. En classique, vous codez comment résoudre. En ML,
vous montrez quoi résoudre et l'algo découvre le comment.

Pr. ADDOU ML  Séance 1  Partie 1 6/38


Retenez cette inversion fondamentale

☞ À retenir

Programmation classique : données + règles −→ résultats.

Machine Learning : données + résultats −→ règles (le modèle).

C'est une inversion du paradigme. En classique, vous codez comment résoudre. En ML,
vous montrez quoi résoudre et l'algo découvre le comment.

★ Question

Donnez un exemple de votre quotidien où le ML est utilisé sans que vous le sachiez.

Pr. ADDOU ML  Séance 1  Partie 1 6/38


Retenez cette inversion fondamentale

☞ À retenir

Programmation classique : données + règles −→ résultats.

Machine Learning : données + résultats −→ règles (le modèle).

C'est une inversion du paradigme. En classique, vous codez comment résoudre. En ML,
vous montrez quoi résoudre et l'algo découvre le comment.

★ Question

Donnez un exemple de votre quotidien où le ML est utilisé sans que vous le sachiez.

Réponses possibles :
Le ltre anti-spam de votre email (Gmail, Outlook)
Les recommandations YouTube / Netix / Spotify
La correction automatique de votre téléphone (clavier prédictif)
La reconnaissance faciale pour déverrouiller votre smartphone
Pr. ADDOU ML  Séance 1  Partie 1 6/38
Le ML est utilisé dans votre quotidien

Finance NLP
Détection fraude ChatGPT, Claude
scoring crédit traduction auto
Médecine trading algo correction clavier Vision
Diagnostic IRM Reconnaissance
détection tumeurs faciale, OCR
analyse ECG voitures autonomes

ML

Commerce Sécurité
Amazon, Netix Cybersécurité
Spotify
publicité ciblée Transport Jeux détection malware
vidéosurveillance

Google Maps AlphaGo


Waze, Uber Chess AI
trac routier jeux vidéo

Pr. ADDOU ML  Séance 1  Partie 1 7/38


Dénition formelle (Tom Mitchell, 1997)

Dénition  à connaître par c÷ur

Un programme informatique apprend d'une expérience E par rapport à une tâche T et une
mesure de performance P, si sa performance sur T, mesurée par P, s'améliore avec E.

Pr. ADDOU ML  Séance 1  Partie 1 8/38


Dénition formelle (Tom Mitchell, 1997)

Dénition  à connaître par c÷ur

Un programme informatique apprend d'une expérience E par rapport à une tâche T et une
mesure de performance P, si sa performance sur T, mesurée par P, s'améliore avec E.

Décortiquons chaque lettre avec un exemple :

Exemple : Filtre anti-spam

T (tâche) = classer un email en {spam, non-spam}


P (performance) = pourcentage d'emails correctement classés
E (expérience) = 50 000 emails étiquetés par des humains
Dénition formelle (Tom Mitchell, 1997)

Dénition  à connaître par c÷ur

Un programme informatique apprend d'une expérience E par rapport à une tâche T et une
mesure de performance P, si sa performance sur T, mesurée par P, s'améliore avec E.

Décortiquons chaque lettre avec un exemple :

Exemple : Filtre anti-spam

T (tâche) = classer un email en {spam, non-spam}


P (performance) = pourcentage d'emails correctement classés
E (expérience) = 50 000 emails étiquetés par des humains
Vérication : avec 1 000 emails, le ltre a 85% de précision. Avec 50 000, il atteint 99.5%. La
s'améliore avec plus d'expérience E.
performance P
⇒ Le programme a appris.

Pr. ADDOU ML  Séance 1  Partie 1 8/38


Dénition Mitchell  2 autres exemples

Exemple : Diagnostic médical du diabète

T = prédire si un patient est diabétique ou sain


P = pourcentage de diagnostics corrects
E = 5 000 dossiers patients (glucose, HbA1c, âge, IMC + diagnostic du médecin)
Avec 500 dossiers : 72%. Avec 5 000 : 91%. ⇒ Le programme a appris.

Pr. ADDOU ML  Séance 1  Partie 1 9/38


Dénition Mitchell  2 autres exemples

Exemple : Diagnostic médical du diabète

T = prédire si un patient est diabétique ou sain


P = pourcentage de diagnostics corrects
E = 5 000 dossiers patients (glucose, HbA1c, âge, IMC + diagnostic du médecin)
Avec 500 dossiers : 72%. Avec 5 000 : 91%. ⇒ Le programme a appris.

Exemple : Prix immobilier

T = prédire le prix d'un appartement


P = erreur moyenne de prédiction (en euros ou MAD)
E = 10 000 ventes récentes (surface, quartier, étage, année → prix)
Avec 500 ventes : erreur de 40 000MAD. Avec 10 000 : erreur de 8 000MAD. ⇒ Appris.

Pr. ADDOU ML  Séance 1  Partie 1 9/38


Formulation mathématique  ce que le ML cherche à faire

Objectif : trouver une fonction f :X →Y qui minimise le risque empirique :

n
1 X 
R̂(f ) = L f (xi ), yi
n
i=1

Pr. ADDOU ML  Séance 1  Partie 1 10/38


Formulation mathématique  ce que le ML cherche à faire

Objectif : trouver une fonction f :X →Y qui minimise le risque empirique :

n
1 X 
R̂(f ) = L f (xi ), yi
n
i=1

Chaque symbole expliqué :

Symbole Signication Exemple (diagnostic diabète)


X Espace d'entrée R4 (glucose, pression, âge, IMC)

Y Espace de sortie {0, 1} (sain, diabétique)


f Modèle à trouver La règle qui prédit le diagnostic

(xi , yi ) i -ème exemple Patient 3 : x3 = (180, 90, 58, 31), y3 =


1

L(ŷ , y ) Perte (erreur) (1 − 0.87)2 = 0.017


n Nb d'exemples 5 000 patients
Pr. ADDOU ML  Séance 1  Partie 1 10/38
Formulation math.  intuition et piège

Intuition : on cherche f qui commet le moins d'erreurs possible sur nos n exemples. C'est
comme un étudiant qui s'entraîne sur des exercices pour minimiser ses fautes.

Pr. ADDOU ML  Séance 1  Partie 1 11/38


Formulation math.  intuition et piège

Intuition : on cherche f qui commet le moins d'erreurs possible sur nos n exemples. C'est
comme un étudiant qui s'entraîne sur des exercices pour minimiser ses fautes.

★ Question

Si on trouve f avec R̂(f ) = 0 (zéro erreur sur les 5 000 patients), est-ce que f est parfait ?

Pr. ADDOU ML  Séance 1  Partie 1 11/38


Formulation math.  intuition et piège

Intuition : on cherche f qui commet le moins d'erreurs possible sur nos n exemples. C'est
comme un étudiant qui s'entraîne sur des exercices pour minimiser ses fautes.

★ Question

Si on trouve f avec R̂(f ) = 0 (zéro erreur sur les 5 000 patients), est-ce que f est parfait ?

Réponse : NON ! R̂(f ) = 0 signie que le modèle ne fait aucune erreur sur les 5 000 patients
d'entraînement. Mais cela ne garantit rien sur un nouveau patient jamais vu.
Un modèle avec zéro erreur sur l'entraînement peut être catastrophique sur de nouvelles
données. Pourquoi ? Parce qu'il a peut-être mémorisé les réponses au lieu de comprendre les
patterns.

Pr. ADDOU ML  Séance 1  Partie 1 11/38


Formulation math.  intuition et piège

★ Question

Si on trouve f avec R̂(f ) = 0 (zéro erreur sur les 5 000 patients), est-ce que f est parfait ?

Pr. ADDOU ML  Séance 1  Partie 1 12/38


Formulation math.  intuition et piège

★ Question

Si on trouve f avec R̂(f ) = 0 (zéro erreur sur les 5 000 patients), est-ce que f est parfait ?

Exemple : Analogie  l'étudiant qui mémorise

Un étudiant qui mémorise les réponses des annales a R̂ = 0 sur les annales. Mais à l'examen
(nouvelles questions), il échoue car il n'a rien compris.
C'est exactement l'overtting : le modèle mémorise au lieu de comprendre.
⇒ On étudiera ce phénomène en détail dans la Partie 3 (biais-variance).

Pr. ADDOU ML  Séance 1  Partie 1 12/38


Formulation math.  intuition et piège

★ Question

Si on trouve f avec R̂(f ) = 0 (zéro erreur sur les 5 000 patients), est-ce que f est parfait ?

Exemple : Analogie  l'étudiant qui mémorise

Un étudiant qui mémorise les réponses des annales a R̂ = 0 sur les annales. Mais à l'examen
(nouvelles questions), il échoue car il n'a rien compris.
C'est exactement l'overtting : le modèle mémorise au lieu de comprendre.
⇒ On étudiera ce phénomène en détail dans la Partie 3 (biais-variance).

☞ À retenir
L'objectif n'est pas de minimiser l'erreur sur les données d'entraînement, mais de généraliser : bien
prédire sur des données jamais vues.

Pr. ADDOU ML  Séance 1  Partie 1 12/38


Les 3 types d'apprentissage  vue d'ensemble

Supervisé Non supervisé Renforcement


(xi , yi ) (xi ) seuls agent + env.
labels connus pas de labels récompenses

Pr. ADDOU ML  Séance 1  Partie 1 13/38


Les 3 types d'apprentissage  vue d'ensemble

Supervisé Non supervisé Renforcement


(xi , yi ) (xi ) seuls agent + env.
labels connus pas de labels récompenses

Exemple : Analogie  3 façons d'apprendre

Supervisé = le prof donne un TD avec corrigé. Vous comparez vos réponses au corrigé et apprenez
de vos erreurs. Objectif : réussir à l'examen (= nouvelles données).
Non supervisé = on vous donne 200 articles scientiques et on dit :  regroupez-les par thème.
Personne ne vous dit quels thèmes existent. Vous découvrez la structure.
Renforcement = vous apprenez un jeu vidéo sans lire les règles. Vous essayez des actions : +1 si
bien, -1 si mal. Par essai-erreur, vous découvrez la stratégie optimale.

Pr. ADDOU ML  Séance 1  Partie 1 13/38


Type 1 : Apprentissage supervisé

Dénition

On dispose d'un ensemble {(x1 , y1 ), . . . , (xn , yn )} où chaque xi est un vecteur de features et


yi est le label (la bonne réponse). L'algo apprend f telle que f (x) ≈ y pour de nouvelles
données.

Pr. ADDOU ML  Séance 1  Partie 1 14/38


Type 1 : Apprentissage supervisé

Dénition

On dispose d'un ensemble {(x1 , y1 ), . . . , (xn , yn )} où chaque xi est un vecteur de features et


yi est le label (la bonne réponse). L'algo apprend f telle que f (x) ≈ y pour de nouvelles
données.

Pourquoi supervisé ? Parce qu'un superviseur (humain expert) a fourni les bonnes
réponses yi .

Pr. ADDOU ML  Séance 1  Partie 1 14/38


Type 1 : Apprentissage supervisé

Dénition

On dispose d'un ensemble {(x1 , y1 ), . . . , (xn , yn )} où chaque xi est un vecteur de features et


yi est le label (la bonne réponse). L'algo apprend f telle que f (x) ≈ y pour de nouvelles
données.

Pourquoi supervisé ? Parce qu'un superviseur (humain expert) a fourni les bonnes
réponses yi . Processus étape par étape (diagnostic diabète) :
1 Collecte : 5 000 patients avec mesures (glucose, HbA1c, âge, IMC) et diagnostic du médecin
(yi ∈ {0, 1})
2 Entraînement : l'algo cherche f qui minimise l'erreur sur ces 5 000 cas
3 Test : on évalue f sur 1 000 nouveaux patients (jamais vus pendant le training !)
4 Prédiction : nouveau patient glucose=155, IMC=32 → ŷ = f (155, . . . , 32) = diabétique

Pr. ADDOU ML  Séance 1  Partie 1 14/38


Type 1 : Apprentissage supervisé

Dénition

On dispose d'un ensemble {(x1 , y1 ), . . . , (xn , yn )} où chaque xi est un vecteur de features et


yi est le label (la bonne réponse). L'algo apprend f telle que f (x) ≈ y pour de nouvelles
données.

Pourquoi supervisé ? Parce qu'un superviseur (humain expert) a fourni les bonnes
réponses yi . Processus étape par étape (diagnostic diabète) :
1 Collecte : 5 000 patients avec mesures (glucose, HbA1c, âge, IMC) et diagnostic du médecin
(yi ∈ {0, 1})
2 Entraînement : l'algo cherche f qui minimise l'erreur sur ces 5 000 cas
3 Test : on évalue f sur 1 000 nouveaux patients (jamais vus pendant le training !)
4 Prédiction : nouveau patient glucose=155, IMC=32 → ŷ = f (155, . . . , 32) = diabétique

Le point clé : le modèle doit fonctionner sur des données qu'il n'a jamais vues. S'il ne fonctionne
que sur les données d'entraînement, c'est de l'overtting (mémorisation).

Pr. ADDOU ML  Séance 1  Partie 1 14/38


Supervisé : Régression vs Classication

Régression : y ∈R (nombre continu)


·105

4
Prix

0
50 100 150 200
Surface (m2 )

y peut valoir 120 000, 253 478.50. . .

Exemples :
Prix d'une maison
Température demain
Chire d'aaires mensuel
Durée d'un trajet

Pr. ADDOU ML  Séance 1  Partie 1 15/38


Supervisé : Régression vs Classication

Régression : y ∈R (nombre continu) Classication : y ∈ {c1 , . . . , cK }


·105
(catégorie)
4
6
Classe 0
Prix

2 4 Classe 1

Feature 2
2
0
50 100 150 200
0
Surface (m2 )
0 2 4 6
Feature 1

y peut valoir 120 000, 253 478.50. . .

Exemples : y∈ {chat, chien}, {spam, non-spam}. . .

Exemples :
Prix d'une maison
Spam / non-spam
Température demain
Diabétique / sain
Chire d'aaires mensuel
Chat / chien / oiseau
Durée d'un trajet
Chire manuscrit 09

Pr. ADDOU ML  Séance 1  Partie 1 15/38


Comment distinguer régression et classication ?

☞ À retenir

Test simple : la sortie y a des valeurs intermédiaires (120k, 120.5k, 121k. . . ) ? →


Régression.
y est une étiquette discrète sans intermédiaire (chat ̸= 1.5 × chien) ? → Classication.

Pr. ADDOU ML  Séance 1  Partie 1 16/38


Comment distinguer régression et classication ?
★ Question  testez-vous !

Pour chaque cas, répondez Régression ou Classication (puis vériez ci-dessous).

Pr. ADDOU ML  Séance 1  Partie 1 17/38


Comment distinguer régression et classication ?
★ Question  testez-vous !

Pour chaque cas, répondez Régression ou Classication (puis vériez ci-dessous).

Problème Type Justication


Prix d'une maison en euros

Spam ou non-spam ?

Note exacte d'un étudiant /20

Mention (TB/B/AB/P)

Nombre de visiteurs d'un site web

Client résilie ou reste ? (churn)

Consommation électrique (kWh)

Type de tumeur (bénigne/maligne)

Nb d'étoiles d'un avis (15)

Pr. ADDOU ML  Séance 1  Partie 1 17/38


Comment distinguer régression et classication ?
★ Question  testez-vous !

Pour chaque cas, répondez Régression ou Classication (puis vériez ci-dessous).

Pr. ADDOU ML  Séance 1  Partie 1 18/38


Comment distinguer régression et classication ?
★ Question  testez-vous !

Pour chaque cas, répondez Régression ou Classication (puis vériez ci-dessous).

Problème Type Justication


Prix d'une maison en euros Rég. Prix = nombre continu

Spam ou non-spam ? Classif. 2 catégories discrètes

Note exacte d'un étudiant /20 Rég. 14.5, 16.75 = continu

Mention (TB/B/AB/P) Classif. 4 catégories discrètes

Nombre de visiteurs d'un site web Rég. Variable discrète mais traitée
comme continue

Client résilie ou reste ? (churn) Classif. 2 catégories

Consommation électrique (kWh) Rég. Nombre continu

Type de tumeur (bénigne/maligne) Classif. 2 catégories

Nb d'étoiles d'un avis (15) Les deux ! Rég. si valeur continue possible,
classif. si valeurs discrètes

Pr. ADDOU ML  Séance 1  Partie 1 18/38


Type 2 : Apprentissage non supervisé

Dénition

On a des données {x1 , . . . , xn } sans labels. Personne ne nous dit la bonne réponse. L'algo
découvre des structures cachées par lui-même.

Pr. ADDOU ML  Séance 1  Partie 1 19/38


Type 2 : Apprentissage non supervisé

Dénition

On a des données {x1 , . . . , xn } sans labels. Personne ne nous dit la bonne réponse. L'algo
découvre des structures cachées par lui-même.

Les 4 grandes tâches :


1 Clustering : regrouper les données similaires
Ex : Netix regroupe les utilisateurs en prols (amateurs de SF, de comédie, de drame. . . )
sans savoir à l'avance combien de groupes existent
2 Réduction de dimensionnalité : simplier sans perdre l'essentiel
Ex : réduire 100 analyses médicales à 10 composantes clefs (PCA)
3 Détection d'anomalies : identier les points anormaux
Ex : détecter des transactions bancaires suspectes parmi des millions/jour (sans exemples de
fraude !)
4 Règles d'association : découvrir des co-occurrences
Ex : les clients qui achètent une imprimante achètent souvent des cartouches d'encre

Pr. ADDOU ML  Séance 1  Partie 1 19/38


Type 3 : Renforcement

Apprentissage par renforcement (hors programme de ce cours)

Un agent interagit avec un environnement. À chaque étape, il observe un état, choisit


une action, et reçoit une récompense (positive ou négative). L'objectif est d'apprendre une
stratégie optimale maximisant la récompense cumulée, par un processus d'essai-erreur.
Ex : AlphaGo (jeu de Go), robot marcheur, voiture autonome, trading algorithmique.

Pr. ADDOU ML  Séance 1  Partie 1 20/38


Tableau récapitulatif

Supervisé (S) Non supervisé (NS) Renforcement


Critère
(xi , yi ) (xi ) seuls états, actions, ré-
Données compenses

✓ Oui ✗ Non ✗ Non


Labels
Prédire y Découvrir des struc- Maximiser la récom-
Objectif tures pense

S : Rég. lin/log, KNN, NB, Arbres, SVM, RF, XGBoost, MLP


Algos
NS : K-Means, DBSCAN, PCA, LOF, Isolation Forest, Apriori

Pr. ADDOU ML  Séance 1  Partie 1 21/38


Deux philosophies d'apprentissage

★ Rééchissez

Imaginez que vous préparez un examen. Deux stratégies :

Stratégie A : comprendre les formules et les méthodes. À l'examen, vous appliquez la


formule.

Stratégie B : photocopier tous les corrigés. À l'examen, vous cherchez le corrigé le plus
similaire et vous adaptez.
Quelle stratégie est model-based ? Quelle stratégie est instance-based ?

Pr. ADDOU ML  Séance 1  Partie 1 22/38


Deux philosophies d'apprentissage

★ Rééchissez

Imaginez que vous préparez un examen. Deux stratégies :

Stratégie A : comprendre les formules et les méthodes. À l'examen, vous appliquez la


formule.

Stratégie B : photocopier tous les corrigés. À l'examen, vous cherchez le corrigé le plus
similaire et vous adaptez.
Quelle stratégie est model-based ? Quelle stratégie est instance-based ?

Réponse :

Stratégie A = Model-Based : vous avez appris un modèle (la formule). Les corrigés
ne sont plus nécessaires.

Stratégie B = Instance-Based : vous gardez toutes les instances (corrigés) et


comparez.

Pr. ADDOU ML  Séance 1  Partie 1 22/38


Deux philosophies d'apprentissage

★ Rééchissez

Imaginez que vous préparez un examen. Deux stratégies :

Stratégie A : comprendre les formules et les méthodes. À l'examen, vous appliquez la


formule.

Stratégie B : photocopier tous les corrigés. À l'examen, vous cherchez le corrigé le plus
similaire et vous adaptez.
Quelle stratégie est model-based ? Quelle stratégie est instance-based ?

Réponse :

Stratégie A = Model-Based : vous avez appris un modèle (la formule). Les corrigés
ne sont plus nécessaires.

Stratégie B = Instance-Based : vous gardez toutes les instances (corrigés) et


comparez.

⇒ Ce sont exactement les deux philosophies des algorithmes ML.


Pr. ADDOU ML  Séance 1  Partie 1 22/38
Model-Based Learning  exemple numérique
Model-Based

L'algorithme utilise les données pour apprendre un modèle (une formule, des poids). Après
l'entraînement, les données d'entraînement ne sont plus nécessaires pour la prédiction : la
formule sut.

Pr. ADDOU ML  Séance 1  Partie 1 23/38


Model-Based Learning  exemple numérique
Model-Based

L'algorithme utilise les données pour apprendre un modèle (une formule, des poids). Après
l'entraînement, les données d'entraînement ne sont plus nécessaires pour la prédiction : la
formule sut.

Exemple : Régression linéaire  prix d'appartements

Surface (m2 ) Étage Prix (MAD)


50 2 95 000
70 3 135 000
90 1 160 000
110 4 195 000
130 2 230 000

Training : l'algo trouve la formule : prix


ˆ = 1700 × surface + 5000 × étage + 5000
Après le training : les données ne sont plus nécessaires pour la prédiction. La formule sut.
Prédiction : appart 85m2 , 3e étage → 1700 × 85 + 5000 × 3 + 5000 = 164 500MAD
Stockage : 3 nombres seulement (w1 = 1700, w2 = 5000, b = 5000).
Pr. ADDOU ML  Séance 1  Partie 1 23/38
Instance-Based Learning  exemple numérique
Instance-Based

L'algorithme mémorise toutes les données. Pour prédire, il compare le nouveau cas aux
plus proches voisins stockés en mémoire.

Pr. ADDOU ML  Séance 1  Partie 1 24/38


Instance-Based Learning  exemple numérique
Instance-Based

L'algorithme mémorise toutes les données. Pour prédire, il compare le nouveau cas aux
plus proches voisins stockés en mémoire.

Exemple : KNN (k = 3)  diagnostic médical

6 patients mémorisés :
Glucose HbA1c IMC Diabétique ?

88 5.2 22 Non
92 5.5 24 Non
155 7.1 31 Oui
165 7.8 33 Oui
98 5.8 25 Non
145 6.9 29 Oui

Nouveau patient : glucose=150, HbA1c=7.0, IMC=30.


Étape 1 : calculer la distance à chacun des 6 patients en mémoire.
Étape 2 : les 3 plus proches : (155,7.1,31,Oui), (145,6.9,29,Oui), (165,7.8,33,Oui).
Étape 3 : vote majoritaire : 3/3 Oui → Diabétique. Stockage : les 6 patients entiers.
Pr. ADDOU ML  Séance 1  Partie 1 24/38
Model-Based vs Instance-Based  comparaison complète

Model-Based Instance-Based
Apprend un modèle (fonc- Mémorise les données
Principe tion/règle) d'entraînement

Souvent coûteux (optimisa- Très rapide (lazy learning,


Entraînement tion) simple stockage)

Très rapide (évaluation du Lente (comparaison aux exem-


Prédiction modèle) ples)

Faible (paramètres du modèle) Élevée (toutes les données)


Mémoire
Données souvent non néces- Données indispensables
Après training saires
Dépend du modèle choisi Très exible (peu
Flexibilité d'hypothèses)

Rég., SVM, Arbres, RF, XG- KNN


Ce cours Boost, MLP, K-Means, PCA
Pr. ADDOU ML  Séance 1  Partie 1 25/38
Model-Based vs Instance-Based  comparaison complète

☞ À retenir
La quasi-totalité des algorithmes de ce cours sont model-based. L'exception notable est KNN, qui
est un algorithme instance-based.

Pr. ADDOU ML  Séance 1  Partie 1 26/38


Shallow Learning vs Deep Learning

Shallow Learning = ce cours


0 ou 1 couche cachée (modèles simples)

Features choisies manuellement (glucose,


âge, IMC. . . )

Adapté aux données tabulaires


Peu de données susent (quelques milliers)

Ex : rég. lin., SVM, arbres, RF, KNN

Pr. ADDOU ML  Séance 1  Partie 1 27/38


Shallow Learning vs Deep Learning

Shallow Learning = ce cours Deep Learning


0 ou 1 couche cachée (modèles simples) Plusieurs couches (souvent profondes)

Features choisies manuellement (glucose, Apprentissage automatique des


âge, IMC. . . ) représentations (features)
Adapté aux données tabulaires Adapté aux images, texte, son

Peu de données susent (quelques milliers) Nécessite beaucoup de données (100k+) et


du calcul (GPU)
Ex : rég. lin., SVM, arbres, RF, KNN
Ex : CNN (images), Transformers (LLM)

Pr. ADDOU ML  Séance 1  Partie 1 27/38


Shallow Learning vs Deep Learning

Shallow Learning = ce cours Deep Learning


0 ou 1 couche cachée (modèles simples) Plusieurs couches (souvent profondes)

Features choisies manuellement (glucose, Apprentissage automatique des


âge, IMC. . . ) représentations (features)
Adapté aux données tabulaires Adapté aux images, texte, son

Peu de données susent (quelques milliers) Nécessite beaucoup de données (100k+) et


du calcul (GPU)
Ex : rég. lin., SVM, arbres, RF, KNN
Ex : CNN (images), Transformers (LLM)

Rég. KNN SVM XGBoost MLP Transf.


Complexité

Shallow (ce cours) Deep

Pr. ADDOU ML  Séance 1  Partie 1 27/38


Shallow Learning vs Deep Learning

Shallow Learning = ce cours Deep Learning


0 ou 1 couche cachée (modèles simples) Plusieurs couches (souvent profondes)

Features choisies manuellement (glucose, Apprentissage automatique des


âge, IMC. . . ) représentations (features)
Adapté aux données tabulaires Adapté aux images, texte, son

Peu de données susent (quelques milliers) Nécessite beaucoup de données (100k+) et


du calcul (GPU)
Ex : rég. lin., SVM, arbres, RF, KNN
Ex : CNN (images), Transformers (LLM)

Rég. KNN SVM XGBoost MLP Transf.


Complexité

Shallow (ce cours) Deep

Idée clé : Shallow = features humaines vs Deep = features apprises automatiquement

Pr. ADDOU ML  Séance 1  Partie 1 27/38


Shallow vs Deep  pourquoi pas toujours du Deep ?

★ Question fréquente

Le Deep Learning est plus puissant, pourquoi ne pas toujours l'utiliser ?

Pr. ADDOU ML  Séance 1  Partie 1 28/38


Shallow vs Deep  pourquoi pas toujours du Deep ?

★ Question fréquente

Le Deep Learning est plus puissant, pourquoi ne pas toujours l'utiliser ?

3 raisons pour lesquelles le Shallow domine encore de nombreux problèmes :


1 Données insusantes : un hôpital peut avoir 5 000 dossiers patients, alors que le Deep
Learning nécessite souvent des volumes bien plus importants (ex : ≥ 100 000 exemples).
Le Shallow fonctionne mieux avec peu de données.

2 Interprétabilité : un arbre de décision explique pourquoi il prédit diabétique (ex : si


glucose > 140 ET IMC > 30). Un réseau profond est souvent une boîte noire.

3 Coût de calcul : les modèles profonds nécessitent beaucoup de ressources (GPU, temps).
Un Random Forest peut s'entraîner rapidement sur un ordinateur standard.

Pr. ADDOU ML  Séance 1  Partie 1 28/38


Shallow vs Deep  pourquoi pas toujours du Deep ?

★ Question fréquente

Le Deep Learning est plus puissant, pourquoi ne pas toujours l'utiliser ?

Pr. ADDOU ML  Séance 1  Partie 1 29/38


Shallow vs Deep  pourquoi pas toujours du Deep ?

★ Question fréquente

Le Deep Learning est plus puissant, pourquoi ne pas toujours l'utiliser ?

☞ À retenir

Pour les donnéestabulaires (très fréquentes en entreprise), les méthodes Shallow (RF, XGBoost)
sont souventaussi performantes voire meilleures que le Deep. Le Deep excelle sur les données
non structurées (images, texte, audio, vidéo).

Pr. ADDOU ML  Séance 1  Partie 1 29/38


Shallow vs Deep  pourquoi pas toujours du Deep ?

★ Question fréquente

Le Deep Learning est plus puissant, pourquoi ne pas toujours l'utiliser ?

☞ À retenir

Pour les donnéestabulaires (très fréquentes en entreprise), les méthodes Shallow (RF, XGBoost)
sont souventaussi performantes voire meilleures que le Deep. Le Deep excelle sur les données
non structurées (images, texte, audio, vidéo).

Bon modèle = bon problème, pas le modèle le plus complexe

Pr. ADDOU ML  Séance 1  Partie 1 29/38


Les 2 phases de tout système ML
Deux phases bien séparées

Phase 1  Training : le modèle apprend à partir des données d'entraînement en ajustant


ses paramètres θ.
Phase 2  Scoring : le modèle prédit sur de nouvelles données.

Pr. ADDOU ML  Séance 1  Partie 1 30/38


Les 2 phases de tout système ML
Deux phases bien séparées

Phase 1  Training : le modèle apprend à partir des données d'entraînement en ajustant


ses paramètres θ.
Phase 2  Scoring : le modèle prédit sur de nouvelles données.

Nouveau x
Données train Algorithme Modèle fθ


TRAINING (1 fois, coûteux)
SCORING (répété, rapide)

Pr. ADDOU ML  Séance 1  Partie 1 30/38


Les 2 phases de tout système ML
Deux phases bien séparées

Phase 1  Training : le modèle apprend à partir des données d'entraînement en ajustant


ses paramètres θ.
Phase 2  Scoring : le modèle prédit sur de nouvelles données.

Nouveau x
Données train Algorithme Modèle fθ


TRAINING (1 fois, coûteux)
SCORING (répété, rapide)

Training Scoring
Quand 1 fois (ou périodiquement) En continu, en production, 24h/24
Durée Minutes à heures Millisecondes
Ce qui se passe Ajuste les paramètres θ Applique ŷ = fθ (xnew )
Coût Élevé (CPU/GPU, stockage) Très faible (calcul rapide)
Pr. ADDOU ML  Séance 1  Partie 1 30/38
Training vs Scoring  exemples concrets
Exemple : Gmail  ltre anti-spam

Training (périodique) : Google entraîne des modèles sur des volumes massifs d'emails étiquetés.
Durée : de l'ordre de plusieurs heures sur des infrastructures distribuées.
Scoring (en continu) : à chaque nouvel email, le modèle le classe en quelques millisecondes. Le
modèle est xe entre deux phases d'entraînement.

Pr. ADDOU ML  Séance 1  Partie 1 31/38


Training vs Scoring  exemples concrets
Exemple : Gmail  ltre anti-spam

Training (périodique) : Google entraîne des modèles sur des volumes massifs d'emails étiquetés.
Durée : de l'ordre de plusieurs heures sur des infrastructures distribuées.
Scoring (en continu) : à chaque nouvel email, le modèle le classe en quelques millisecondes. Le
modèle est xe entre deux phases d'entraînement.

Exemple : Waze / Google Maps  temps de trajet

Training (périodique) : modèle entraîné sur de grandes quantités de données (trajets, trac, météo,
horaires).
Scoring (en continu) : lors d'une requête, le modèle prédit le temps de trajet en temps réel en
combinant les données actuelles avec le modèle pré-entraîné.

Pr. ADDOU ML  Séance 1  Partie 1 31/38


Training vs Scoring  exemples concrets
Exemple : Gmail  ltre anti-spam

Training (périodique) : Google entraîne des modèles sur des volumes massifs d'emails étiquetés.
Durée : de l'ordre de plusieurs heures sur des infrastructures distribuées.
Scoring (en continu) : à chaque nouvel email, le modèle le classe en quelques millisecondes. Le
modèle est xe entre deux phases d'entraînement.

Exemple : Waze / Google Maps  temps de trajet

Training (périodique) : modèle entraîné sur de grandes quantités de données (trajets, trac, météo,
horaires).
Scoring (en continu) : lors d'une requête, le modèle prédit le temps de trajet en temps réel en
combinant les données actuelles avec le modèle pré-entraîné.

Exemple : Netix  recommandation

Training : modèles entraînés sur les historiques de visionnage des utilisateurs.


Scoring : à l'ouverture de l'application, le système recommande des contenus en une fraction de
seconde.
Pr. ADDOU ML  Séance 1  Partie 1 31/38
5 raisons d'utiliser le ML

1 Problème trop complexe à programmer explicitement


Reconnaissance faciale (très grande variabilité), traduction automatique, conduite autonome
2 Problème perceptif
Vision (images), audition (reconnaissance vocale), langage (traitement du texte). Ces tâches
sont naturelles pour l'humain mais diciles à formaliser par des règles.
3 Phénomène mal modélisé
Exemple : prédire la résiliation d'un client (churn). Pas de modèle théorique simple, mais des
motifs exploitables dans les données.
4 Objectif clair et mesurable
Maximiser un indicateur (taux de clic, précision), minimiser une erreur ou un coût
5 Gain d'ecacité
Exemple : aide au diagnostic médical (pré-tri automatique, assistance à la décision)

Pr. ADDOU ML  Séance 1  Partie 1 32/38


5 raisons d'utiliser le ML

1 Problème trop complexe à programmer explicitement


Reconnaissance faciale (très grande variabilité), traduction automatique, conduite autonome
2 Problème perceptif
Vision (images), audition (reconnaissance vocale), langage (traitement du texte). Ces tâches
sont naturelles pour l'humain mais diciles à formaliser par des règles.
3 Phénomène mal modélisé
Exemple : prédire la résiliation d'un client (churn). Pas de modèle théorique simple, mais des
motifs exploitables dans les données.
4 Objectif clair et mesurable
Maximiser un indicateur (taux de clic, précision), minimiser une erreur ou un coût
5 Gain d'ecacité
Exemple : aide au diagnostic médical (pré-tri automatique, assistance à la décision)

Le ML est utile lorsque la procédure de résolution n'est pas connue explicitement

Pr. ADDOU ML  Séance 1  Partie 1 32/38


4 raisons de NE PAS utiliser le ML
1 Règles simples et connues
Calcul de TVA (prix × 20%), conversion Celsius→Fahrenheit (F = 1.8C + 32), tri d'un
tableau. Une solution algorithmique classique (if/else, formules) sut.
2 Données insusantes
Exemple : maladie très rare avec très peu de cas disponibles. Le ML nécessite en général un
nombre susant d'exemples pour apprendre correctement.
3 Explicabilité critique
Décisions médicales ou juridiques à fort enjeu. Le système doit pouvoir justier ses
prédictions.
4 Tolérance à l'erreur très faible
Exemples : contrôle aérien, systèmes de sécurité. Ces systèmes exigent des garanties fortes et
des méthodes formelles.

Pr. ADDOU ML  Séance 1  Partie 1 33/38


4 raisons de NE PAS utiliser le ML
1 Règles simples et connues
Calcul de TVA (prix × 20%), conversion Celsius→Fahrenheit (F = 1.8C + 32), tri d'un
tableau. Une solution algorithmique classique (if/else, formules) sut.
2 Données insusantes
Exemple : maladie très rare avec très peu de cas disponibles. Le ML nécessite en général un
nombre susant d'exemples pour apprendre correctement.
3 Explicabilité critique
Décisions médicales ou juridiques à fort enjeu. Le système doit pouvoir justier ses
prédictions.
4 Tolérance à l'erreur très faible
Exemples : contrôle aérien, systèmes de sécurité. Ces systèmes exigent des garanties fortes et
des méthodes formelles.

☞ À retenir

3 questions avant tout projet ML : (1) Ai-je assez de données ? (2) Une solution simple sut-elle
? (3) Le ML apporte-t-il un gain réel ?

Pr. ADDOU ML  Séance 1  Partie 1 33/38


4 raisons de NE PAS utiliser le ML
1 Règles simples et connues
Calcul de TVA (prix × 20%), conversion Celsius→Fahrenheit (F = 1.8C + 32), tri d'un
tableau. Une solution algorithmique classique (if/else, formules) sut.
2 Données insusantes
Exemple : maladie très rare avec très peu de cas disponibles. Le ML nécessite en général un
nombre susant d'exemples pour apprendre correctement.
3 Explicabilité critique
Décisions médicales ou juridiques à fort enjeu. Le système doit pouvoir justier ses
prédictions.
4 Tolérance à l'erreur très faible
Exemples : contrôle aérien, systèmes de sécurité. Ces systèmes exigent des garanties fortes et
des méthodes formelles.

☞ À retenir

3 questions avant tout projet ML : (1) Ai-je assez de données ? (2) Une solution simple sut-elle
? (3) Le ML apporte-t-il un gain réel ?

Le ML est puissant, mais pas toujours nécessaire


Pr. ADDOU ML  Séance 1  Partie 1 33/38
ML ou pas ?  10 situations (Quiz)
★ Rééchissez : ML ou pas ?

Situation ML ? Raison clé


Calculer la paie
Détecter des tumeurs
Décider de la libération d'un détenu
Recommander des lms
Convertir des devises
Prédire la consommation électrique
Maladie très rare
OCR (écriture manuscrite)
Système critique (aérien)
Détecter faux avis

À retenir
Règle simple : ML si complexe + données + objectif mesurable
Pr. ADDOU ML  Séance 1  Partie 1 34/38
ML ou pas ?  10 situations (Quiz)
★ Rééchissez : ML ou pas ?

Situation ML ? Raison clé


Calculer la paie ✗ Règles déterministes
Détecter des tumeurs ✓ Perceptif + données
Décider de la libération d'un détenu ✗ Explicabilité critique
Recommander des lms ✓ Complexe + mesurable
Convertir des devises ✗ Formule connue
Prédire la consommation électrique ✓ Série temporelle
Maladie très rare ✗ Données insusantes
OCR (écriture manuscrite) ✓ Perceptif
Système critique (aérien) ✗ Tolérance faible à l'erreur
Détecter faux avis ✓ NLP + motifs

À retenir
Règle simple : ML si complexe + données + objectif mesurable
Pr. ADDOU ML  Séance 1  Partie 1 34/38
Récapitulatif de la Partie 1

☞ À retenir

Dénition en 1 phrase
Concept
Apprendre les règles à partir de données, pas les coder
Machine Learning
Performance P sur la tâche T s'améliore avec l'expérience
Dénition Mitchell E

Données avec labels (xi , yi ). Ex : spam, diagnostic


Supervisé
Données sans labels. Ex : clustering clients, anomalies
Non supervisé
y ∈R continu. Ex : prix, température, durée
Régression
y ∈ {ck } catégorie. Ex : spam/non-spam, tumeur
Classication
Pr. ADDOU ML  Séance 1  Partie 1 35/38
Récapitulatif de la Partie 1

☞ À retenir

Dénition en 1 phrase
Concept
Apprend une formule, jette les données. Ex : rég. lin.
Model-Based
Mémorise tout, compare. KNN = seul du cours
Instance-Based
Shallow = tabulaire (ce cours). Deep = images/texte
Shallow vs Deep
Apprendre θ (1 fois, lent, coûteux)
Training
Prédire ŷ = fθ (x) (continu, rapide, ms)
Scoring

Pr. ADDOU ML  Séance 1  Partie 1 36/38


Fin Partie 1
Suite : Partie 2  Données, Pipeline et Cycle de vie

Pause 10 minutes

Pr. ADDOU ML  Séance 1  Partie 1 37/38


Module : Machine Learning
Séance 1  Partie 2 : Données, Pipeline et Cycle de vie

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  Séance 1  Partie 2 1/35


Ce que vous allez apprendre dans cette partie

1 Structures de données : quels types de données le ML peut-il traiter ?


2 Notations : le vocabulaire mathématique du cours (X , y , ŷ , θ, L)
3 Raw vs Tidy Data : pourquoi les données réelles sont sales et comment les nettoyer
4 Données directes vs indirectes : ce qui entre dans le modèle et ce qui ne doit pas
5 Prétraitement : valeurs manquantes, encodage, normalisation (rappel détaillé)
6 Pipeline ML : les 5 étapes d'un projet ML
7 Train / Validation / Test : pourquoi séparer les données en 3
8 Baseline : le plancher de performance à battre absolument
9 Paramètres vs Hyperparamètres : quelle diérence ?

Pr. ADDOU ML  Séance 1  Partie 2 2/35


Les 6 familles de données que le ML peut traiter

Tous les types de données ne se ressemblent pas

Un algorithme de ML ne reçoit pas directement une photo ou un texte. Il manipule


des représentations numériques (vecteurs, matrices, tenseurs). La structure des données
détermine quels algorithmes sont adaptés.

Pr. ADDOU ML  Séance 1  Partie 2 3/35


Les 6 familles de données que le ML peut traiter

Forme Exemple concret Algos typiques


Type
Matrice n×d Dossiers patients, ventes immobil- Rég., SVM, arbres,
Tabulaire ières, données clients KNN (ce cours)
Tenseur H ×W ×C IRM, photos satellite, visages CNN (Deep Learning)
Images
Séquence de tokens Emails, tweets, articles Transformers (Deep
Texte Learning)

x1 , . . . , x T Cours boursiers, ECG, météo LSTM, ARIMA


Séries temp.
N÷uds + arêtes Réseaux sociaux, molécules GNN
Graphes
Signal 1D Voix, musique CNN 1D, Transformers
Audio

Pr. ADDOU ML  Séance 1  Partie 2 4/35


Données tabulaires  ce avec quoi on travaille dans ce cours
★ Qu'est-ce qu'un dataset tabulaire concrètement ?

Pensez à un tableau Excel. Chaque ligne est un exemple. Chaque colonne est une mesure.

Pr. ADDOU ML  Séance 1  Partie 2 5/35


Données tabulaires  ce avec quoi on travaille dans ce cours
★ Qu'est-ce qu'un dataset tabulaire concrètement ?

Pensez à un tableau Excel. Chaque ligne est un exemple. Chaque colonne est une mesure.

Exemple : Dataset Diagnostic diabète (Pima Indians, UCI)

Glucose Pression Âge IMC Diabétique ?


Patient 1 148 72 50 33.6 1 (Oui)
Patient 2 85 66 31 26.6 0 (Non)
Patient 3 183 64 32 23.3 1 (Oui)
Patient 4 89 66 21 28.1 0 (Non)
. . . . . .
. . . . . .
. . . . . .
Patient 768 101 76 57 32.9 1 (Oui)

n = 768 lignes = 768 patients (les instances)


d =4 colonnes de mesures = 4 features (attributs)

Dernière colonne = le label y (ce qu'on veut prédire)

Pr. ADDOU ML  Séance 1  Partie 2 5/35


Types de features  numérique, catégoriel, ordinal

Pourquoi distinguer les types ?

Les algorithmes ML travaillent avec des nombres. Si une colonne contient du texte (Rabat,
Oujda), il faut d'abord la convertir en nombres. Le type de feature détermine comment
la convertir.

Pr. ADDOU ML  Séance 1  Partie 2 6/35


Types de features  numérique, catégoriel, ordinal

Pourquoi distinguer les types ?

Les algorithmes ML travaillent avec des nombres. Si une colonne contient du texte (Rabat,
Oujda), il faut d'abord la convertir en nombres. Le type de feature détermine comment
la convertir.

Dénition Exemples Conversion


Type
Nombre (continu ou dis- Âge, glucose, prix, nb chambres, Aucune (déjà
Numérique cret) température numérique)
Catégorie sans ordre Ville, couleur, sexe, type de voiture One-Hot Encoding
Catégoriel
Catégorie avec ordre Diplôme (Bac < Licence < Mas- Encodage ordinal
Ordinal ter), taille (S < M < L) (0,1,2)

Pr. ADDOU ML  Séance 1  Partie 2 6/35


Notations  le vocabulaire mathématique du ML

★ Pourquoi ces notations ?

Elles sont universelles : utilisées dans les livres, articles et bibliothèques (scikit-learn, Ten-
sorFlow). Les maîtriser permet de lire n'importe quelle ressource ML.

Symbole Nom Signication + Exemple (diabète)


n Nb d'instances 768 patients dans le dataset
d Nb de features 4 (glucose, pression, âge, IMC)
X ∈ Rn×d Matrice de données 768 × 4. Ligne = patient, colonne = fea-
ture
xi ∈ Rd Vecteur du i -ème x3 = (183, 64, 32, 23.3)T
exemple
yi Label (réponse) y3 = 1 (diabétique)
ŷi Prédiction du mod- ŷ3 = fθ (x3 ) = 0.87
èle
θ Paramètres appris Poids w = (w1 , w2 , w3 , w4 ), biais b
L(ŷ , y ) Fonction de perte Mesure l'erreur : (1 − 0.87)2 = 0.017
Pr. ADDOU ML  Séance 1  Partie 2 7/35
Notations  représentation matricielle concrète

Exemple : 3 patients, 4 features  visualisation complète


   
148 72 50 33.6 1
X =  85 66 31 26.6 , y = 0
183 64 32 23.3 1

Lecture : Le patient 1 a glucose = 148, pression = 72, âge = 50, IMC = 33.6, et est diabétique
(y1 = 1).

Le modèle cherche une fonction fθ telle que :

fθ (148, 72, 50, 33.6) ≈ 1


fθ (85, 66, 31, 26.6) ≈ 0
fθ (183, 64, 32, 23.3) ≈ 1

La diérence entre ŷi = fθ (xi ) et yi est mesurée par une fonction de perte L.

Pr. ADDOU ML  Séance 1  Partie 2 8/35


Notations  représentation matricielle concrète

Objectif du Machine Learning

θ = (w1 , . . . , wd )

θ ∗ = arg min L fθ (X ), y

θ

Pr. ADDOU ML  Séance 1  Partie 2 9/35


Notations  représentation matricielle concrète

Objectif du Machine Learning

θ = (w1 , . . . , wd )

θ ∗ = arg min L fθ (X ), y

θ

À retenir

X = entrées (features) y = vraies valeurs ŷ = prédictions L = erreur θ = paramètres appris

Pr. ADDOU ML  Séance 1  Partie 2 9/35


Raw Data  la réalité des données du terrain

Les données réelles sont souvent sales


Dans un cours, les datasets sont propres. En entreprise ou en hôpital, les données brutes
(raw) contiennent des erreurs, incohérences et valeurs manquantes.

Pr. ADDOU ML  Séance 1  Partie 2 10/35


Raw Data  la réalité des données du terrain

Les données réelles sont souvent sales


Dans un cours, les datasets sont propres. En entreprise ou en hôpital, les données brutes
(raw) contiennent des erreurs, incohérences et valeurs manquantes.

Exemple : Un dataset réel avant nettoyage

ID Nom Âge Glucose Ville Diab.


P001 Ahmed 52 148 Rabat 1
P002 Samir 85 Oujda 0
P003 Sara 67 999 Rabat oui
P001 Amina 52 148 Rabat 1
P004 Ibrahim 41 OUJDA non

Pr. ADDOU ML  Séance 1  Partie 2 10/35


Raw Data  la réalité des données du terrain

Les données réelles sont souvent sales


Dans un cours, les datasets sont propres. En entreprise ou en hôpital, les données brutes
(raw) contiennent des erreurs, incohérences et valeurs manquantes.

Exemple : Un dataset réel avant nettoyage

ID Nom Âge Glucose Ville Diab.


P001 Ahmed 52 148 Rabat 1
P002 Samir 85 Oujda 0
P003 Sara 67 999 Rabat oui
P001 Amina 52 148 Rabat 1
P004 Ibrahim 41 OUJDA non

★ Combien de problèmes voyez-vous ?

Cherchez-en au moins 7 : valeurs manquantes, incohérences, doublons...

Pr. ADDOU ML  Séance 1  Partie 2 10/35


Raw Data  les 7 problèmes identiés

1 Colonnes inutiles : ID et Nom sont des identiants, pas des features prédictives. Le
nom d'un patient ne prédit pas le diabète ! → Supprimer.
2 Valeur manquante (NaN) : l'âge de Samir est vide → Imputer (ex : médiane).
3 Valeur manquante : le glucose de Ibrahim est vide → Imputer.
4 Valeur aberrante (outlier) : glucose de Sara = 999. Le glucose humain ne dépasse pas
∼ 500 mg/dL. C'est probablement une erreur de saisie. → Remplacer par NaN puis
imputer.

5 Incohérence de format : Oujda, OUJDA, Oujda pour la même ville → Normaliser


(ex : Oujda).

6 Incohérence du label : oui/non vs 1/0 → Standardiser (ex : 0/1).


7 Doublon : les lignes P001 apparaissent 2 fois → Supprimer la duplication.

Pr. ADDOU ML  Séance 1  Partie 2 11/35


Tidy Data  le résultat après nettoyage
Principes du Tidy Data (Hadley Wickham, 2014)

1 Chaque variable = une colonne


2 Chaque observation = une ligne

3 Chaque valeur = une cellule

4 Tout est numérique et complet (aucun NaN)

Pr. ADDOU ML  Séance 1  Partie 2 12/35


Tidy Data  le résultat après nettoyage
Principes du Tidy Data (Hadley Wickham, 2014)

1 Chaque variable = une colonne


2 Chaque observation = une ligne

3 Chaque valeur = une cellule

4 Tout est numérique et complet (aucun NaN)

Exemple : Le même dataset, après nettoyage

Âge_z Glucose_z V_Rabat V_Oujda Diab.


0.35 1.12 1 0 1
−0.42 −0.95 0 1 0
1.51 0.45 1 0 1
−0.73 −0.28 0 1 0

ID et Nom supprimés. NaN imputés. Outlier corrigé. Doublon supprimé. Ville → One-Hot (2 colonnes).
Label → 0/1. Âge et Glucose → Z-score.

Résultat : X ∈ R4×4 , aucun NaN, tout numérique. Prêt pour le ML !


Pr. ADDOU ML  Séance 1  Partie 2 12/35
Données utilisées directement vs indirectement

Directement  entrées du modèle


Les colonnes de X (features)

Le label y (pendant l'entraînement)

Les features dérivées (interactions,


polynômes)

Exemple : Prédiction de prix

Surface, quartier, étage, année de construc-


tion → ces variables sont les entrées de fθ .

Pr. ADDOU ML  Séance 1  Partie 2 13/35


Données utilisées directement vs indirectement

Directement  entrées du modèle Indirectement  informations de contexte


Les colonnes de X (features) Métadonnées (date de collecte, source)

Le label y (pendant l'entraînement) Contexte (les prix ont augmenté en 2023)

Les features dérivées (interactions, Données de test (pour l'évaluation uniquement)


polynômes) Expertise du domaine

Exemple : Prédiction de prix Exemple : Contexte


Surface, quartier, étage, année de construc- Le fait que les prix ont ambé en 2023 est une infor-
tion → ces variables sont les entrées de fθ . mation de contexte, mais ce n'est pas une feature du
modèle.

Pr. ADDOU ML  Séance 1  Partie 2 13/35


Étape 1 : Gérer les valeurs manquantes (NaN)
Pourquoi c'est un problème ?

La plupart des algorithmes ML ne peuvent pas traiter des valeurs manquantes.


f (148, NaN, 50, 33.6) est indéni. Il faut traiter les NaN avant l'entraînement.

Pr. ADDOU ML  Séance 1  Partie 2 14/35


Étape 1 : Gérer les valeurs manquantes (NaN)
Pourquoi c'est un problème ?

La plupart des algorithmes ML ne peuvent pas traiter des valeurs manquantes.


f (148, NaN, 50, 33.6) est indéni. Il faut traiter les NaN avant l'entraînement.

Quand l'utiliser Exemple


Stratégie
Très peu de NaN (<5% des 30 patients sur 768 ont un NaN → sup-
Supprimer la ligne lignes) pression
Feature numérique sans outliers Âge NaN → moyenne des âges = 48 ans
Imputer (moyenne)
Feature avec outliers (plus ro- Revenu NaN → médiane (robuste aux
Imputer (médiane) buste) valeurs extrêmes)

Pr. ADDOU ML  Séance 1  Partie 2 14/35


Étape 1 : Gérer les valeurs manquantes (NaN)
Pourquoi c'est un problème ?

La plupart des algorithmes ML ne peuvent pas traiter des valeurs manquantes.


f (148, NaN, 50, 33.6) est indéni. Il faut traiter les NaN avant l'entraînement.

Quand l'utiliser Exemple


Stratégie
Très peu de NaN (<5% des 30 patients sur 768 ont un NaN → sup-
Supprimer la ligne lignes) pression
Feature numérique sans outliers Âge NaN → moyenne des âges = 48 ans
Imputer (moyenne)
Feature avec outliers (plus ro- Revenu NaN → médiane (robuste aux
Imputer (médiane) buste) valeurs extrêmes)

Attention

Règle critique : calculer la moyenne/médiane sur le train uniquement, puis appliquer la même
transformation au test. Sinon ⇒ data leakage (les statistiques du test inuencent le modèle).

Pr. ADDOU ML  Séance 1  Partie 2 14/35


Étape 2 : Encodage des catégories
★ Pourquoi encoder ?

L'algorithme manipule des représentations numériques. Rabat doit être converti en


nombres.

Pr. ADDOU ML  Séance 1  Partie 2 15/35


Étape 2 : Encodage des catégories
★ Pourquoi encoder ?

L'algorithme manipule des représentations numériques. Rabat doit être converti en


nombres.

One-Hot Encoding
Chaque catégorie → une colonne binaire.

Ville V_Rabat V_Oujda V_Tanger

Rabat 1 0 0
Oujda 0 1 0
Tanger 0 0 1

✓ Aucun ordre articiel


✗ K catégories → K colonnes (coût mémoire si
K grand)
Utiliser pour : ville, couleur, type de véhicule

Pr. ADDOU ML  Séance 1  Partie 2 15/35


Étape 2 : Encodage des catégories
★ Pourquoi encoder ?

L'algorithme manipule des représentations numériques. Rabat doit être converti en


nombres.

One-Hot Encoding Encodage ordinal (Label Encoding)


Chaque catégorie → une colonne binaire. Chaque catégorie → un entier.

Ville V_Rabat V_Oujda V_Tanger Diplôme Code

Rabat 1 0 0 Bac 0
Oujda 0 1 0 Licence 1
Tanger 0 0 1 Master 2
Doctorat 3
✓ Aucun ordre articiel
✗ K catégories → K colonnes (coût mémoire si ✓ Compact (1 colonne)
K grand) ✗ Introduit un ordre numérique (interprété par
Utiliser pour : ville, couleur, type de véhicule certains modèles)
Utiliser uniquement pour : variables ordinales
(Bac < Licence < Master)
Pr. ADDOU ML  Séance 1  Partie 2 15/35
Étape 2 : Encodage des catégories
One-Hot Encoding Encodage ordinal (Label Encoding)
Chaque catégorie → une colonne binaire. Chaque catégorie → un entier.

Ville V_Rabat V_Oujda V_Tanger Diplôme Code

Rabat 1 0 0 Bac 0
Oujda 0 1 0 Licence 1
Tanger 0 0 1 Master 2
Doctorat 3

Attention

Si vous appliquez cet encodage à ville : Rabat=0, Oujda=1, Tanger=2. Certains modèles interprètent
cela comme Tanger > Oujda > Rabat, ce qui est incorrect.
Cas dicile : catégorie non ordinale avec grand K
⇒ One-Hot trop grand, Label incorrect
⇒ utiliser Target Encoding ou Embeddings

Pr. ADDOU ML  Séance 1  Partie 2 16/35


Étape 3 : Normalisation  pourquoi c'est crucial

Le problème des échelles diérentes

Si une feature varie de 0 à 100 (âge) et une autre de 0 à 200 000 (revenu), les algorithmes
basés sur des distances seront dominés par les variables de grande échelle.

Pr. ADDOU ML  Séance 1  Partie 2 17/35


Étape 3 : Normalisation  pourquoi c'est crucial

Le problème des échelles diérentes

Si une feature varie de 0 à 100 (âge) et une autre de 0 à 200 000 (revenu), les algorithmes
basés sur des distances seront dominés par les variables de grande échelle.

Exemple : KNN sans normalisation : le revenu domine l'âge

Distance
s entre Patient A et Patient B : √
d= (50 − 45)2 + (80000 − 20000)2 = 25 + 3.6 × 109 ≈ 60 000
| {z } | {z }
âge revenu
L'âge contribue 25, le revenu contribue 3.6 × 109 . L'âge est négligeable !
Après
pZ-score (features centrées-réduites) :√
d= (0.5 − (−0.3))2 + (1.2 − (−0.8))2 = 0.64 + 4 = 2.15
Les deux features contribuent de manière comparable.

Pr. ADDOU ML  Séance 1  Partie 2 17/35


Normalisation vs Standardisation

Normalisation (Min-Max) Standardisation (Z-score)


x − xmin x −µ
Formule x′ = z=
xmax − xmin σ
Intervalle [0, 1] (ou [−1, 1]) Non borné

Sensibilité aux out- Forte (dépend de min/max) Forte (dépend de µ, σ )


liers
Interprétation Position relative dans l'intervalle Distance à la moyenne (en σ)
Quand utiliser Réseaux de neurones, données KNN, SVM, régression, PCA
bornées

Pr. ADDOU ML  Séance 1  Partie 2 18/35


Quels algorithmes nécessitent la mise à l'échelle ?
★ Règle simple

Si l'algo utilise des distances ou des gradients → mettre à l'échelle.


S'il utilise des seuils → généralement pas nécessaire.

Pr. ADDOU ML  Séance 1  Partie 2 19/35


Quels algorithmes nécessitent la mise à l'échelle ?
★ Règle simple

Si l'algo utilise des distances ou des gradients → mettre à l'échelle.


S'il utilise des seuils → généralement pas nécessaire.

Algorithme Normaliser ? Pourquoi


KNN ✓ Fortement recommandé Utilise des distances (euclidienne, Man-
hattan)

SVM ✓ Fortement recommandé Marges et noyaux sensibles à l'échelle

Réseaux (MLP) ✓ Fortement recommandé Améliore la stabilité et la convergence

Rég. lin./log. ✓ Recommandé Convergence du gradient plus rapide

Arbre de décision ✗ Pas nécessaire Basé sur des seuils, invariant à l'échelle

Random Forest ✗ Pas nécessaire Ensemble d'arbres

XGBoost ✗ Pas nécessaire Basé sur des arbres

Naïve Bayes ✗ Pas nécessaire Dépend des distributions, pas des dis-
Pr. ADDOU tances
ML  Séance 1  Partie 2 19/35
ML Pipeline  les 5 étapes d'un projet

1. Collecte 2. Prétraitement 3. Modélisation 4. Évaluation 5. Déploiement

Itération si résultats insusants

Pr. ADDOU ML  Séance 1  Partie 2 20/35


ML Pipeline  les 5 étapes d'un projet

1. Collecte 2. Prétraitement 3. Modélisation 4. Évaluation 5. Déploiement

Itération si résultats insusants

1 Collecte : CSV, API, bases de données, web scraping, capteurs IoT

2 Prétraitement : nettoyage, encodage, normalisation, gestion des NaN

3 Modélisation : choisir un algorithme, entraîner ([Link](X,y))  c÷ur de ce cours


4 Évaluation : métriques (accuracy, F1, MSE), validation croisée (cross-validation)

5 Déploiement : API REST, application web/mobile, monitoring et mise à jour du modèle

Pr. ADDOU ML  Séance 1  Partie 2 20/35


Pipeline  exemple concret déroulé

Exemple : Détection de churn (résiliation) chez un opérateur télécom

1. Collecte : extraire les données de 200 000 clients (durée d'abonnement, consommation data/appels,
nombre de réclamations, type de forfait, 15 features au total).
2. Prétraitement : séparation train/test, 3% de NaN imputés (médiane sur le train), forfait → One-Hot (3
colonnes), consommation → Z-score, suppression de la colonne nom du client.
3. Modélisation : tester 3 algorithmes  Régression Logistique, Random Forest, XGBoost. Comparer avec la
baseline jamais de churn (accuracy = 92%, rappel churn = 0%).
4. Évaluation : XGBoost gagne avec F1_churn = 0.61 (vs 0.52 RF, 0.45 LogReg) sur le jeu de validation.
Test nal : F1 = 0.58 (cohérent, pas d'overtting).
5. Déploiement : API interne. Chaque semaine, le modèle identie les clients à plus haut risque. Les
commerciaux les contactent avec une ore de rétention.
Résultat : churn réduit de 8% à 5.5% en 6 mois ⇒ ∼5 000 clients retenus.

Pr. ADDOU ML  Séance 1  Partie 2 21/35


ML Project Life Cycle  vision complète (7 étapes)
Prédire le churn  objectif clair, mesurable et
1. Dénir le problème
utile

Extraire 200k clients, 15 features. Analyse ex-


2. Collecter les données ploratoire (EDA) : distributions, corrélations

Nettoyage, encodage, mise à l'échelle, sépara-


3. Préparer les données
tion train/val/test

LogReg, RF, XGBoost. Comparer avec une


4. Modéliser
baseline
Réentraîner Ajuster les hyperparamètres
F1-score, validation croisée (5-fold), test nal
5. Évaluer (une seule fois !)

6. Déployer API interne, scoring hebdomadaire

Data drift ? Changement de comportement ?


7. Monitorer
→ réentraîner

Pr. ADDOU ML  Séance 1  Partie 2 22/35


Pourquoi séparer les données en 3 ensembles ?
★ Rééchissez

Si vous évaluez votre modèle sur les mêmes données qu'il a utilisées pour apprendre, que
se passe-t-il ? (Pensez à l'analogie de l'examen.)

Pr. ADDOU ML  Séance 1  Partie 2 23/35


Pourquoi séparer les données en 3 ensembles ?
★ Rééchissez

Si vous évaluez votre modèle sur les mêmes données qu'il a utilisées pour apprendre, que
se passe-t-il ? (Pensez à l'analogie de l'examen.)

Réponse : c'est comme passer un examen en ayant les réponses sous les yeux. Même un
modèle qui a mémorisé (sans généraliser) peut obtenir 100%.

Pr. ADDOU ML  Séance 1  Partie 2 23/35


Pourquoi séparer les données en 3 ensembles ?
★ Rééchissez

Si vous évaluez votre modèle sur les mêmes données qu'il a utilisées pour apprendre, que
se passe-t-il ? (Pensez à l'analogie de l'examen.)

Réponse : c'est comme passer un examen en ayant les réponses sous les yeux. Même un
modèle qui a mémorisé (sans généraliser) peut obtenir 100%.

Train (60%) Valid. (20%) Test (20%)

Pr. ADDOU ML  Séance 1  Partie 2 23/35


Pourquoi séparer les données en 3 ensembles ?
★ Rééchissez

Si vous évaluez votre modèle sur les mêmes données qu'il a utilisées pour apprendre, que
se passe-t-il ? (Pensez à l'analogie de l'examen.)

Réponse : c'est comme passer un examen en ayant les réponses sous les yeux. Même un
modèle qui a mémorisé (sans généraliser) peut obtenir 100%.

Train (60%) Valid. (20%) Test (20%)

Ensemble Rôle Exemple (768 patients)


Train (60%) Apprendre les paramètres θ 461 patients → le modèle apprend
Validation (20%) Choisir les hyperparamètres 154 patients → comparer k = 3 vs
k = 5 vs k = 7
Test (20%) Évaluation nale (une seule fois) 153 patients → estimation de la per-
formance en généralisation

Pr. ADDOU ML  Séance 1  Partie 2 23/35


Règles fondamentales du split

☞ À retenir
1 Le test set ne sert qu'une seule fois, à la toute n. Si vous l'utilisez pour ajuster quoi
que ce soit, il devient un 2ème validation set et l'estimation est biaisée.

2 Séparer avant tout prétraitement. Sinon les statistiques du test fuient dans le train
(data leakage).

3 Pour les classes déséquilibrées (ex : 8% de churn), utiliser un split stratié : conserver
la même proportion (8/92%) dans chaque ensemble.

Pr. ADDOU ML  Séance 1  Partie 2 24/35


Règles fondamentales du split

☞ À retenir
1 Le test set ne sert qu'une seule fois, à la toute n. Si vous l'utilisez pour ajuster quoi
que ce soit, il devient un 2ème validation set et l'estimation est biaisée.

2 Séparer avant tout prétraitement. Sinon les statistiques du test fuient dans le train
(data leakage).

3 Pour les classes déséquilibrées (ex : 8% de churn), utiliser un split stratié : conserver
la même proportion (8/92%) dans chaque ensemble.

Exemple : Pourquoi la stratication est cruciale

200k clients, 8% churn (16k). Si le split est aléatoire, le test set pourrait contenir, par hasard, 2%
de churn au lieu de 8%. Les résultats seraient non représentatifs.
≈ 8% de churn.
Avec stratication : chaque ensemble contient
En Python : train_test_split(X, y, test_size=0.2, stratify=y)

Pr. ADDOU ML  Séance 1  Partie 2 24/35


Baseline  dénition et rôle en ML

Baseline (modèle de référence)

En machine learning, une baseline est un algorithme simple utilisé comme point de compara-
ison. Elle peut être basée sur :

des heuristiques simples,

des statistiques (moyenne, classe majoritaire),

du hasard (random),

ou un modèle ML très basique.

Pr. ADDOU ML  Séance 1  Partie 2 25/35


Baseline  dénition et rôle en ML

Baseline (modèle de référence)

En machine learning, une baseline est un algorithme simple utilisé comme point de compara-
ison. Elle peut être basée sur :

des heuristiques simples,

des statistiques (moyenne, classe majoritaire),

du hasard (random),

ou un modèle ML très basique.

★ Pourquoi est-ce indispensable ?

La baseline fournit une référence minimale. Tout modèle plus avancé doit faire mieux que
cette performance.
Sans baseline, vous ne savez pas si votre modèle est bon ou mauvais. 90% d'accuracy
semble bien... mais si la baseline fait déjà 95%, votre modèle est moins performant.

Pr. ADDOU ML  Séance 1  Partie 2 25/35


Baseline pour une variante de KNN
Objectif : proposer une amélioration du KNN standard.

Baseline : KNN standard

Conguration :
Distance standard (euclidienne)

Nombre de voisins k xe

Performance :
Accuracy = 82%

F1-score = 0.78

Pr. ADDOU ML  Séance 1  Partie 2 26/35


Baseline pour une variante de KNN
Objectif : proposer une amélioration du KNN standard.

Baseline : KNN standard Modèle proposé : XKNN

Conguration : Principe :
Distance standard (euclidienne) Variante du KNN

Nombre de voisins k xe Adaptation dynamique de k


Performance : Performance :
Accuracy = 82% Accuracy = 86%

F1-score = 0.78 F1-score = 0.83

Pr. ADDOU ML  Séance 1  Partie 2 26/35


Baseline pour une variante de KNN
Objectif : proposer une amélioration du KNN standard.

Baseline : KNN standard Modèle proposé : XKNN

Conguration : Principe :
Distance standard (euclidienne) Variante du KNN

Nombre de voisins k xe Adaptation dynamique de k


Performance : Performance :
Accuracy = 82% Accuracy = 86%

F1-score = 0.78 F1-score = 0.83

Conclusion

XKNN améliore la baseline KNN ⇒ contribution valide.

Pr. ADDOU ML  Séance 1  Partie 2 26/35


Baseline pour une variante de KNN
Objectif : proposer une amélioration du KNN standard.

Baseline : KNN standard Modèle proposé : XKNN

Conguration : Principe :
Distance standard (euclidienne) Variante du KNN

Nombre de voisins k xe Adaptation dynamique de k


Performance : Performance :
Accuracy = 82% Accuracy = 86%

F1-score = 0.78 F1-score = 0.83

Conclusion

XKNN améliore la baseline KNN ⇒ contribution valide.


À retenir

Une baseline peut être simple, mais elle est indispensable : elle dénit le niveau minimum à battre
pour justier un modèle plus complexe.

Pr. ADDOU ML  Séance 1  Partie 2 26/35


Le piège de la baseline  l'accuracy est trompeuse

Exemple : Détection de fraude bancaire

10 millions de transactions par an. 0.01% sont des fraudes = 1 000 fraudes.

Baseline : prédire légitime pour toutes les transactions → accuracy = 99.99%.


Mais : détecte 0 fraude sur les 1 000 en circulation ⇒ modèle inutile.
Votre modèle ML : accuracy = 99.95% (plus faible) mais détecte 850 fraudes sur 1 000.
→ La banque préfère le second modèle.

Pr. ADDOU ML  Séance 1  Partie 2 27/35


Le piège de la baseline  l'accuracy est trompeuse

Exemple : Détection de fraude bancaire

10 millions de transactions par an. 0.01% sont des fraudes = 1 000 fraudes.

Baseline : prédire légitime pour toutes les transactions → accuracy = 99.99%.


Mais : détecte 0 fraude sur les 1 000 en circulation ⇒ modèle inutile.
Votre modèle ML : accuracy = 99.95% (plus faible) mais détecte 850 fraudes sur 1 000.
→ La banque préfère le second modèle.

À retenir

L'accuracyseule est trompeuse lorsque les classes sont déséquilibrées. Toujours analyser le rappel, le
F1-score et l'AUC-ROC.

Pr. ADDOU ML  Séance 1  Partie 2 27/35


Paramètres vs Hyperparamètres  la diérence cruciale
★ Question

Dans une régression linéaire ŷ = w1 x1 + w2 x2 + b, les poids w1 , w2 , b sont-ils choisis par vous
ou par l'algorithme ?

Pr. ADDOU ML  Séance 1  Partie 2 28/35


Paramètres vs Hyperparamètres  la diérence cruciale
★ Question

Dans une régression linéaire ŷ = w1 x1 + w2 x2 + b, les poids w1 , w2 , b sont-ils choisis par vous
ou par l'algorithme ?

Paramètres θ (appris par l'algo)

Déterminés automatiquement pendant


l'entraînement

Dépendent des données


L'utilisateur ne les choisit pas
Exemples concrets :
Poids w et biais b (régression lin/log)

Centroïdes µk (K-Means)

Seuils de split (arbres de décision)

Poids des neurones (MLP)

Pr. ADDOU ML  Séance 1  Partie 2 28/35


Paramètres vs Hyperparamètres  la diérence cruciale
★ Question

Dans une régression linéaire ŷ = w1 x1 + w2 x2 + b, les poids w1 , w2 , b sont-ils choisis par vous
ou par l'algorithme ?

Paramètres θ (appris par l'algo) Hyperparamètres (choisis par l'utilisateur)

Déterminés automatiquement pendant Fixés avant l'entraînement


l'entraînement Choisis par expérimentation (validation,
Dépendent des données cross-validation)

L'utilisateur ne les choisit pas Contrôlent le comportement de l'algorithme


Exemples concrets : Exemples concrets :
Poids w et biais b (régression lin/log) Learning rate α = 0.01
Centroïdes µk (K-Means) Nombre de voisins k=5 (KNN)

Seuils de split (arbres de décision) Régularisation λ = 0.1


Poids des neurones (MLP) Profondeur maximale d'un arbre

Nombre de clusters K =3 (K-Means)


Pr. ADDOU ML  Séance 1  Partie 2 28/35
Paramètres vs Hyperparamètres

☞ À retenir

Paramètres θ Hyperparamètres
Qui décide ? algorithme (automatique)
L' L'utilisateur
Quand ? Pendant l'entraînement Avant l'entraînement
Comment les choisir ? Par optimisation (minimisation de Par recherche (Grid Search, CV)
la perte)

Pr. ADDOU ML  Séance 1  Partie 2 29/35


Paramètres vs Hyperparamètres  pour chaque algo du cours
Algorithme Paramètre (appris) Hyperparamètre (xé par vous)
Rég. linéaire Poids w1 , . . . , wd et biais b Learning rate α, régularisation λ
Rég. logistique Poids w et biais b λ (Ridge, Lasso)

KNN Aucun paramètre appris (instance- Nombre de voisins k , type de distance


based)

Naïve Bayes Probabilités P(x|c) estimées Type de distribution (Gaussien,


Multinomial)

Arbre de décision Seuils de split à chaque n÷ud Profondeur max, min samples

SVM Vecteurs supports et coecients du mod- C, kernel, γ


èle

Random Forest Paramètres des arbres (seuils, structures) Nombre d'arbres, profondeur max

K-Means Centroïdes µ1 , . . . , µ K Nombre de clusters K

Pr. ADDOU ML  Séance 1  Partie 2 30/35


Paramètres vs Hyperparamètres  pour chaque algo du cours
Algorithme Paramètre (appris) Hyperparamètre (xé par vous)
Rég. linéaire Poids w1 , . . . , wd et biais b Learning rate α, régularisation λ
Rég. logistique Poids w et biais b λ (Ridge, Lasso)

KNN Aucun paramètre appris (instance- Nombre de voisins k , type de distance


based)

Naïve Bayes Probabilités P(x|c) estimées Type de distribution (Gaussien,


Multinomial)

Arbre de décision Seuils de split à chaque n÷ud Profondeur max, min samples

SVM Vecteurs supports et coecients du mod- C, kernel, γ


èle

Random Forest Paramètres des arbres (seuils, structures) Nombre d'arbres, profondeur max

K-Means Centroïdes µ1 , . . . , µ K Nombre de clusters K

☞ À retenir
Cas spécial KNN : c'est le seul algo du cours qui n'apprend aucun paramètre. Il stocke les données
(instance-based). Son hyperparamètre principal est k.
Pr. ADDOU ML  Séance 1  Partie 2 30/35
Récapitulatif de la Partie 2

☞ À retenir

Dénition en 1 phrase
Concept
Tableau : lignes = exemples, colonnes = features (utilisées
Données tabulaires dans ce cours)

Num = nombre (direct). Cat = sans ordre → One-Hot.


Num/Cat/Ordinal Ord = avec ordre → Label

Données brutes : NaN, doublons, outliers, incohérences


Raw Data
Données propres : numériques, complètes, cohérentes,
Tidy Data prêtes pour le ML

Mettre les features à la même échelle (important pour


Normalisation / Stan- KNN, SVM, MLP)
dardisation

Pr. ADDOU ML  Séance 1  Partie 2 31/35


Récapitulatif de la Partie 2

☞ À retenir

Dénition en 1 phrase
Concept
Collecte → Prétraitement → Modélisation → Évaluation
Pipeline → Déploiement

Split typique (ex : 60/20/20). Train = apprendre. Valid


Train/Valid/Test = choisir hyperparamètres. Test = évaluation nale

Modèle simple de référence à battre


Baseline
Appris automatiquement (w , b, seuils, centroïdes)
Paramètre
Fixé par l'utilisateur avant l'entraînement (k , α, λ, pro-
Hyperparamètre fondeur)

Pr. ADDOU ML  Séance 1  Partie 2 32/35


Fin Partie 2
Suite : Partie 3  Cadre théorique de l'apprentissage
(Biais-Variance, Overtting, Compromis, NFL)

Pause 10 minutes

Pr. ADDOU ML  Séance 1  Partie 2 33/35


Module : Machine Learning
Séance 1  Partie 3 : Cadre théorique de l'apprentissage

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  Séance 1  Partie 3 1/32


Ce que vous allez apprendre dans cette partie

1 Pourquoi cette partie théorique est la plus importante du cours


2 Risque empirique vs risque réel : la diérence entre performance sur le train et dans la
réalité

3 Overtting vs Undertting : deux façons d'échouer, comment les reconnaître


4 Biais, Variance, Bruit : les 3 sources d'erreur (dénition intuitive + formelle)
5 Démonstration complète de la décomposition Err = Biais2 + Var + σ 2
6 Le compromis biais-variance : la courbe centrale du ML
7 Comment corriger un modèle qui échoue (tableau de remèdes)
8 Courbes d'apprentissage : votre outil de diagnostic visuel
9 No Free Lunch : pourquoi aucun algo n'est universel

Pr. ADDOU ML  Séance 1  Partie 3 2/32


L'intérêt concret dans votre future carrière

Exemple : Scénario réel  vous êtes data scientist en entreprise


Votre modèle de détection de churn a une performance insusante sur les données de test. Le
manager dit : Améliorez-le !. Que faites-vous ?
L'intérêt concret dans votre future carrière

Exemple : Scénario réel  vous êtes data scientist en entreprise


Votre modèle de détection de churn a une performance insusante sur les données de test. Le
manager dit : Améliorez-le !. Que faites-vous ?
Sans biais-variance (essai-erreur aveugle) :

✗ Ajouter plus de données ? → coûteux et peut-être inutile


✗ Modèle plus complexe ? → peut empirer le problème
✗ Régulariser ? → peut aussi empirer
L'intérêt concret dans votre future carrière

Exemple : Scénario réel  vous êtes data scientist en entreprise


Votre modèle de détection de churn a une performance insusante sur les données de test. Le
manager dit : Améliorez-le !. Que faites-vous ?
Sans biais-variance (essai-erreur aveugle) :

✗ Ajouter plus de données ? → coûteux et peut-être inutile


✗ Modèle plus complexe ? → peut empirer le problème
✗ Régulariser ? → peut aussi empirer

Avec biais-variance (diagnostic ciblé et rapide) :

✓ Err. train = 5%, err. test = 70% → variance → régulariser ou + données


✓ Err. train = 65%, err. test = 70% → biais → modèle + complexe ou variables plus informatives

Pr. ADDOU ML  Séance 1  Partie 3 3/32


L'intérêt concret dans votre future carrière

Exemple : Scénario réel  vous êtes data scientist en entreprise


Votre modèle de détection de churn a une performance insusante sur les données de test. Le
manager dit : Améliorez-le !. Que faites-vous ?
Sans biais-variance (essai-erreur aveugle) :

✗ Ajouter plus de données ? → coûteux et peut-être inutile


✗ Modèle plus complexe ? → peut empirer le problème
✗ Régulariser ? → peut aussi empirer

Avec biais-variance (diagnostic ciblé et rapide) :

✓ Err. train = 5%, err. test = 70% → variance → régulariser ou + données


✓ Err. train = 65%, err. test = 70% → biais → modèle + complexe ou variables plus informatives

Le biais-variance est votre stéthoscope. Un médecin n'essaie pas 10 médicaments au hasard : il


ausculte d'abord. Vous devez faire la même chose avec vos modèles.

Pr. ADDOU ML  Séance 1  Partie 3 3/32


Deux types d'erreur qu'il faut distinguer

Risque réel R(f )  ce qu'on veut


minimiser
 
R(f ) = E(x,y )∼D L(f (x), y )
L'erreur sur toutes les données possibles
(passées, présentes et futures).

Problème : on ne connaît pas la distribution D,


donc R(f ) est impossible à calculer
directement.

Pr. ADDOU ML  Séance 1  Partie 3 4/32


Deux types d'erreur qu'il faut distinguer

Risque réel R(f )  ce qu'on veut Risque empirique R̂(f )  ce qu'on peut
minimiser calculer
  n
R(f ) = E(x,y )∼D L(f (x), y ) 1 X
R̂(f ) = L(f (xi ), yi )
L'erreur sur toutes les données possibles n
i=1
(passées, présentes et futures).
L'erreur moyenne sur nos n exemples
Problème : on ne connaît pas la distribution D, d'entraînement.
donc R(f ) est impossible à calculer
directement.
Avantage : on le calcule facilement. C'est en
général ce que l'apprentissage cherche à
minimiser.

Pr. ADDOU ML  Séance 1  Partie 3 4/32


Deux types d'erreur qu'il faut distinguer

Risque réel R(f )  ce qu'on veut Risque empirique R̂(f )  ce qu'on peut
minimiser calculer
  n
R(f ) = E(x,y )∼D L(f (x), y ) 1 X
R̂(f ) = L(f (xi ), yi )
L'erreur sur toutes les données possibles n
i=1
(passées, présentes et futures).
L'erreur moyenne sur nos n exemples
Problème : on ne connaît pas la distribution D, d'entraînement.
donc R(f ) est impossible à calculer
directement.
Avantage : on le calcule facilement. C'est en
général ce que l'apprentissage cherche à
minimiser.

Le piège : minimiser R̂ (erreur sur le train) ne garantit pas de minimiser R (erreur réelle). Un
modèle peut avoir R̂ ≈ 0 mais R très élevé. C'est l'overtting.

Pr. ADDOU ML  Séance 1  Partie 3 4/32


Risque empirique vs réel  l'analogie de l'examen

Exemple : L'étudiant et les annales


Un étudiant prépare un examen de mathématiques. Les annales = données d'entraînement.
L'examen = données de test (nouvelles questions jamais vues).
Risque empirique vs réel  l'analogie de l'examen

Exemple : L'étudiant et les annales


Un étudiant prépare un examen de mathématiques. Les annales = données d'entraînement.
examen = données de test (nouvelles questions jamais vues).
L'

Cas 1  Comprend (R ≈ R̂ ) : l'étudiant comprend les méthodes. Il réussit les annales (R̂ faible)
ET l'examen (R faible). Il généralise.
Risque empirique vs réel  l'analogie de l'examen

Exemple : L'étudiant et les annales


Un étudiant prépare un examen de mathématiques. Les annales = données d'entraînement.
L'examen = données de test (nouvelles questions jamais vues).
Cas 1  Comprend (R ≈ R̂ ) : l'étudiant comprend les méthodes. Il réussit les annales (R̂ faible)
ET l'examen (R faible). Il généralise.
Cas 2  Mémorise (R ≫ R̂ ) : l'étudiant mémorise les réponses des annales mot à mot. Il a 20/20
sur les annales (R̂ = 0) mais 5/20 à l'examen (R élevé). C'est l'overtting : il a mémorisé au lieu
de comprendre.
Risque empirique vs réel  l'analogie de l'examen

Exemple : L'étudiant et les annales


Un étudiant prépare un examen de mathématiques. Les annales = données d'entraînement.
L'examen = données de test (nouvelles questions jamais vues).
Cas 1  Comprend (R ≈ R̂ ) : l'étudiant comprend les méthodes. Il réussit les annales (R̂ faible)
ET l'examen (R faible). Il généralise.
Cas 2  Mémorise (R ≫ R̂ ) : l'étudiant mémorise les réponses des annales mot à mot. Il a 20/20
sur les annales (R̂ = 0) mais 5/20 à l'examen (R élevé). C'est l'overtting : il a mémorisé au lieu
de comprendre.

Cas 3  N'étudie pas (R̂ et R élevés) : l'étudiant n'a même pas regardé les annales. Il échoue
partout. C'est l'undertting.

☞ À retenir
L'objectif du ML n'est pas zéro erreur sur le train, mais de généraliser : bien prédire sur des données
jamais vues.

Pr. ADDOU ML  Séance 1  Partie 3 5/32


Overtting vs Undertting  illustration visuelle

Situation : on a 10 points bruités (y = tendance linéaire + bruit). On ajuste des modèles de


complexité croissante.
Overtting vs Undertting  illustration visuelle

Situation : on a 10 points bruités (y = tendance linéaire + bruit). On ajuste des modèles de


complexité croissante.

Degré 0  Trop simple

Ligne horizontale
Overtting vs Undertting  illustration visuelle

Situation : on a 10 points bruités (y = tendance linéaire + bruit). On ajuste des modèles de


complexité croissante.

Degré 0  Trop simple Degré 1  Juste bien

Ligne horizontale Droite ajustée


Overtting vs Undertting  illustration visuelle

Situation : on a 10 points bruités (y = tendance linéaire + bruit). On ajuste des modèles de


complexité croissante.

Degré 0  Trop simple Degré 1  Juste bien Degré élevé  Trop complexe

Ligne horizontale Droite ajustée Passe par tous les points

Pr. ADDOU ML  Séance 1  Partie 3 6/32


Overtting vs Undertting  comment les reconnaître

★ Règle de diagnostic
Un premier diagnostic consiste à comparer l'erreur sur le train et l'erreur sur le test.

Situation Err. train Err. test Explication


Undertting Élevée Élevée Le modèle est trop simple. Il ne cap-
ture même pas la tendance générale.

Bon ajustement Faible Faible Le modèle capture la tendance et ig-


nore le bruit. C'est l'idéal.

Overtting Très faible Élevée Le modèle est trop complexe. Il a


mémorisé le bruit.

Pr. ADDOU ML  Séance 1  Partie 3 7/32


Overtting vs Undertting  comment les reconnaître
Situation Err. train Err. test Explication
Undertting Élevée Élevée Le modèle est trop simple. Il ne cap-
ture même pas la tendance générale.

Bon ajustement Faible Faible Le modèle capture la tendance et ig-


nore le bruit. C'est l'idéal.

Overtting Très faible Élevée Le modèle est trop complexe. Il a


mémorisé le bruit.

Exemple : Numérique  diagnostic du diabète

Modèle Err. train Err. test Diagnostic


Rég. logistique (glucose seul) 55% 60% Undertting  1 feature ne sut pas
Random Forest (5 features) 6% 10% Bon  généralise bien
Arbre profondeur innie (200 ex.) 0% 35% Overtting  mémorise

Pr. ADDOU ML  Séance 1  Partie 3 8/32


Les 3 sources d'erreur  intuition
L'erreur totale d'un modèle se décompose en 3 termes
2
Erreur totale = |Biais
{z } + |Variance
{z } + σ2
|{z}
erreur instabilité bruit
systématique du modèle irréductible

Pr. ADDOU ML  Séance 1  Partie 3 9/32


Les 3 sources d'erreur  intuition
L'erreur totale d'un modèle se décompose en 3 termes
2
Erreur totale = |Biais
{z } + |Variance
{z } + σ2
|{z}
erreur instabilité bruit
systématique du modèle irréductible

★ Avant la dénition formelle, comprenons chaque terme intuitivement

Pr. ADDOU ML  Séance 1  Partie 3 9/32


Les 3 sources d'erreur  intuition
L'erreur totale d'un modèle se décompose en 3 termes
2
Erreur totale = |Biais
{z } + |Variance
{z } + σ2
|{z}
erreur instabilité bruit
systématique du modèle irréductible

★ Avant la dénition formelle, comprenons chaque terme intuitivement

Biais = le modèle se trompe systématiquement, même avec des données innies.


→ Ex : utiliser une droite pour modéliser des données en forme de parabole. La droite ne pourra
jamais épouser la parabole, peu importe le nombre de points.

Pr. ADDOU ML  Séance 1  Partie 3 9/32


Les 3 sources d'erreur  intuition
L'erreur totale d'un modèle se décompose en 3 termes
2
Erreur totale = |Biais
{z } + |Variance
{z } + σ2
|{z}
erreur instabilité bruit
systématique du modèle irréductible

★ Avant la dénition formelle, comprenons chaque terme intuitivement

Biais = le modèle se trompe systématiquement, même avec des données innies.


→ Ex : utiliser une droite pour modéliser des données en forme de parabole. La droite ne pourra
jamais épouser la parabole, peu importe le nombre de points.
Variance = le modèle change beaucoup quand on change l'échantillon d'entraînement.
→ Ex : un polynôme de degré très élevé sur peu de points. Si on change 2 points, la courbe change
complètement.

Pr. ADDOU ML  Séance 1  Partie 3 9/32


Les 3 sources d'erreur  intuition
L'erreur totale d'un modèle se décompose en 3 termes
2
Erreur totale = |Biais
{z } + |Variance
{z } + σ2
|{z}
erreur instabilité bruit
systématique du modèle irréductible

★ Avant la dénition formelle, comprenons chaque terme intuitivement

Biais = le modèle se trompe systématiquement, même avec des données innies.


→ Ex : utiliser une droite pour modéliser des données en forme de parabole. La droite ne pourra
jamais épouser la parabole, peu importe le nombre de points.
Variance = le modèle change beaucoup quand on change l'échantillon d'entraînement.
→ Ex : un polynôme de degré très élevé sur peu de points. Si on change 2 points, la courbe change
complètement.
Bruit σ 2 = la part aléatoire non expliquée par les variables observées. Irréductible.
→ Ex : 2 patients identiques (même âge, glucose, IMC) mais l'un est diabétique et l'autre non, à cause
de facteurs qu'on n'a pas mesurés (génétique, stress. . . ).

Pr. ADDOU ML  Séance 1  Partie 3 9/32


Biais  dénition formelle et exemple

Biais = erreur systématique du modèle

Biais[fˆ(x)] = E[fˆ(x)] − f (x)


où f (x) vraie fonction à approximer.
désigne la

C'est l'écart entre la prédiction moyenne du modèle (sur tous les échantillons possibles) et
la vraie valeur. Si le biais est élevé, le modèle se trompe systématiquement.

Pr. ADDOU ML  Séance 1  Partie 3 10/32


Biais  dénition formelle et exemple

Biais = erreur systématique du modèle

Biais[fˆ(x)] = E[fˆ(x)] − f (x)


où f (x) vraie fonction à approximer.
désigne la

C'est l'écart entre la prédiction moyenne du modèle (sur tous les échantillons possibles) et
la vraie valeur. Si le biais est élevé, le modèle se trompe systématiquement.

Exemple : Le thermostat déréglé


Un thermostat ache toujours 2 degrés de plus que la température réelle. Peu importe combien
de fois vous le lisez, l'erreur est la même : +2°C. C'est un biais : une erreur systématique qui ne
disparaît pas avec plus de mesures.
En ML : un modèle trop simple (ex : une droite pour des données courbes) a un biais élevé. Même
avec 1 million de points, la droite ne peut pas épouser la courbe.

Pr. ADDOU ML  Séance 1  Partie 3 10/32


Variance  dénition formelle et exemple

Variance = instabilité du modèle


Var[fˆ(x)] = E (fˆ(x) − E[fˆ(x)])2
 

C'est la dispersion des prédictions quand on change l'échantillon d'entraînement. Si la


variance est élevée, le modèle donne des résultats très diérents d'un échantillon à l'autre.

Pr. ADDOU ML  Séance 1  Partie 3 11/32


Variance  dénition formelle et exemple

Variance = instabilité du modèle


Var[fˆ(x)] = E (fˆ(x) − E[fˆ(x)])2
 

C'est la dispersion des prédictions quand on change l'échantillon d'entraînement. Si la


variance est élevée, le modèle donne des résultats très diérents d'un échantillon à l'autre.

Exemple : Le sondage sur un petit échantillon


Vous sondez 10 personnes pour prédire le résultat d'une élection. Un jour vous obtenez 60% pour le
candidat A, le lendemain (10 autres personnes) vous obtenez 40%. Les résultats varient énormément
car les estimations sont très sensibles à l'échantillon observé.
En ML : un modèle très complexe (arbre profond, polynôme de degré très élevé) sur peu de données a
une variance élevée. Si on change quelques exemples du train, les prédictions changent drastiquement.

Pr. ADDOU ML  Séance 1  Partie 3 11/32


Bruit σ 2  la limite infranchissable
Bruit = aléa irréductible dans les données
y = f (x) + ε, E[ε] = 0, Var(ε) = σ2
Le bruit ε représente tout ce qu'on ne peut pas prédire : erreurs de mesure, facteurs cachés
non mesurés, variabilité naturelle. Même le modèle parfait (fˆ = f) ne peut pas l'éliminer.

Pr. ADDOU ML  Séance 1  Partie 3 12/32


Bruit σ 2  la limite infranchissable
Bruit = aléa irréductible dans les données
y = f (x) + ε, E[ε] = 0, Var(ε) = σ2
Le bruit ε représente tout ce qu'on ne peut pas prédire : erreurs de mesure, facteurs cachés
non mesurés, variabilité naturelle. Même le modèle parfait (fˆ = f) ne peut pas l'éliminer.

Exemple : Les jumeaux diérents


Deux patients strictement identiques : même âge (52), même glucose (130), même pression (82),
même IMC (27). L'un est diabétique, l'autre non. Pourquoi ? Parce que des facteurs que nous
n'avons pas mesurés (génétique, microbiome, stress chronique) jouent un rôle. Aucun modèle basé
sur ces 4 features ne peut distinguer ces 2 patients. Cette erreur correspond au bruit σ2 .

Pr. ADDOU ML  Séance 1  Partie 3 12/32


Bruit σ 2  la limite infranchissable
Bruit = aléa irréductible dans les données
y = f (x) + ε, E[ε] = 0, Var(ε) = σ2
Le bruit ε représente tout ce qu'on ne peut pas prédire : erreurs de mesure, facteurs cachés
non mesurés, variabilité naturelle. Même le modèle parfait (fˆ = f) ne peut pas l'éliminer.

Exemple : Les jumeaux diérents


Deux patients strictement identiques : même âge (52), même glucose (130), même pression (82),
même IMC (27). L'un est diabétique, l'autre non. Pourquoi ? Parce que des facteurs que nous
n'avons pas mesurés (génétique, microbiome, stress chronique) jouent un rôle. Aucun modèle basé
sur ces 4 features ne peut distinguer ces 2 patients. Cette erreur correspond au bruit σ2 .

☞ À retenir
On ne peut pas réduire σ 2 simplement en changeant d'algorithme. Pour le diminuer, il faut surtout
améliorer l'information disponible : meilleures variables, meilleures mesures, moins d'erreurs de
mesure. C'est le plancher de l'erreur.

Pr. ADDOU ML  Séance 1  Partie 3 12/32


Démo  Cadre et théorème à prouver

Hypothèses
On xe un point x et les données suivent : y = f (x) + ε où f est la vraie fonction (inconnue)

Le bruit vérie : E[ε] = 0 (centré), Var(ε)


= σ2
Le bruit est indépendant du modèle : ˆ
ε⊥f
fˆ(x) = notre modèle (qui dépend de l'échantillon aléatoire d'entraînement)

E[·] = espérance sur tous les échantillons d'entraînement possibles

Théorème à démontrer :
2
E (y − fˆ(x))2 = f (x) − E[fˆ(x)] + E (fˆ(x) − E[fˆ(x)])2 + |{z}
σ2
   

Bruit
| {z } | {z }
Biais2 Variance

Pr. ADDOU ML  Séance 1  Partie 3 13/32


Rappel  Propriétés fondamentales de l'espérance

1) Linéarité de l'espérance
Pour toutes constantes a, b, c ∈ R :

E (aX + b) = aE (X ) + b

Plus généralement :
E (aX + bY + c) = aE (X ) + bE (Y ) + c
Cas particuliers :

E (X + Y ) = E (X ) + E (Y ), E (X − Y ) = E (X ) − E (Y )

E (c) = c, E (cX ) = cE (X )

Pr. ADDOU ML  Séance 1  Partie 3 14/32


Rappel  Propriétés fondamentales de l'espérance

2) Produit de variables aléatoires


En général :
E (XY ) ̸= E (X )E (Y )
Si X et Y sont indépendantes :
E (XY ) = E (X )E (Y )
Plus généralement, si X 1 , . . . , Xn sont indépendantes :

E (X1 X2 · · · Xn ) = E (X1 )E (X2 ) · · · E (Xn )

3) Lien entre espérance et variance


Var(X ) = E (X 2 ) − [E (X )]2
Donc aussi :
E (X 2 ) = Var(X ) + [E (X )]2

Pr. ADDOU ML  Séance 1  Partie 3 15/32


Démo  Étape 1 : remplacer y et développer

On part de : E[(y − fˆ(x))2 ]. Pour alléger les notations, on écrira simplement fˆ au lieu de
fˆ(x) et f au lieu de f (x).
Remplaçons y par f +ε :
E[(y − fˆ)2 ] = E[(f + ε − fˆ)2 ]
Réorganisons en regroupant (f − fˆ) ensemble :

ε )2
− f}ˆ + |{z}
 
= E (f| {z
a b

Développons (a + b)2 = a2 + 2ab + b 2 :

= E[(f − fˆ)2 ] + 2 E[(f − fˆ) ε] + E[ε2 ]

Nous avons maintenant 3 termes à simplier. Traitons-les un par un.

Pr. ADDOU ML  Séance 1  Partie 3 16/32


Démo  Étape 2 : le terme croisé s'annule
Montrons que E[(f − fˆ) ε] = 0 :

f (x) est une constante déterministe (la vraie fonction, xée)


fˆ dépend de l'échantillon d'entraînement
ε est le bruit sur le point x où on évalue
Par hypothèse, le bruit ε est indépendant du modèle appris fˆ

Donc :
E[(f − fˆ) ε] = E[f − fˆ] · E[ε] =0
|{z}
=0 (hypothèse)

Et le dernier terme :
E[ε2 ] = Var(ε) + (E[ε])2 = σ 2 + 0 = σ 2

Résultat après l'étape 2 :

E[(y − fˆ)2 ] = E[(f − fˆ)2 ] + σ 2

Pr. ADDOU ML  Séance 1  Partie 3 17/32


Démo  Étape 3 : séparer biais et variance
Il reste à décomposer E[(f − fˆ)2 ].
Posons µ = E[fˆ(x)] (la prédiction moyenne du modèle). Astuce : ajouter et retrancher µ :

f − fˆ = (f − µ) + (µ − fˆ)
| {z } | {z }
terme déterministe terme aléatoire

Développons le carré :
E[(f − fˆ)2 ] = E ((f − µ) + (µ − fˆ))2
 

= (f − µ)2 + 2(f − µ) E[µ − fˆ] +E[(µ − fˆ)2 ]


| {z }
=µ−E[fˆ]=µ−µ=0

Le terme croisé s'annule car E[µ − fˆ] = 0 par dénition de µ.

E[(f − fˆ)2 ] = (f − E[fˆ])2 + E[(fˆ − E[fˆ])2 ]


| {z } | {z }
Biais2 Variance

Pr. ADDOU ML  Séance 1  Partie 3 18/32


Démo  Résultat nal
En combinant les étapes 2 et 3 :

E[(y − fˆ(x))2 ] = E[(f − fˆ(x))2 ] +σ 2


| {z }
Biais2 +Var

Théorème démontré :

E (y − fˆ(x))2 = Biais[fˆ(x)]2 + Var[fˆ(x)] + σ 2


 

Terme Signication Grand quand. . . Réductible ?


Biais
2 Erreur systématique Modèle trop simple ✓ Oui

Variance Instabilité Modèle trop complexe ✓ Oui

σ2 Bruit dans les données Données bruitées ✗ Non (pas via le modèle seul)

Pr. ADDOU ML  Séance 1  Partie 3 19/32


La courbe centrale du Machine Learning

Lecture de la courbe :
Biais
2
À gauche (modèle simple) : le biais
domine →
Variance
Undertting Overtting
Erreur totale
undertting
σ2 À droite (modèle complexe) : la
Erreur

variance domine → overtting

L'erreur totale = somme des 3 termes

Le minimum de l'erreur totale = le


point optimal
Optimal
Complexité du modèle
σ2 = le plancher qu'on ne peut pas
franchir

Pr. ADDOU ML  Séance 1  Partie 3 20/32


Le compromis biais-variance  l'idée centrale

Undertting Overtting

Erreur
Zone optimale
Complexité du modèle

☞ À retenir
À retenir :
Modèle trop simple → biais élevé → undertting

Modèle trop complexe → variance élevée → overtting

Il faut trouver un bon compromis


Pr. ADDOU ML  Séance 1  Partie 3 21/32
Comment corriger  tableau de remèdes

★ La question pratique
Mon modèle ne marche pas. J'ai diagnostiqué le problème (biais ou variance). Comment
corriger concrètement ?

Action Si biais élevé Si variance élevée


Complexité Augmenter (+ couches, + degré) Réduire (- couches, modèle
plus simple)
Features Ajouter des variables pertinentes Sélectionner / réduire les
variables inutiles ou bruitées
Régularisation Réduire λ (moins de contrainte) Augmenter λ (plus de con-
trainte)
Données Eet souvent limité Ajouter des données (aide
beaucoup !)
Méthode d'ensemble Boosting (souvent utile) Bagging (souvent utile)

Pr. ADDOU ML  Séance 1  Partie 3 22/32


Comment corriger  tableau de remèdes

Action Si biais élevé Si variance élevée


Complexité Augmenter (+ couches, + degré) Réduire (- couches, modèle
plus simple)
Features Ajouter des variables pertinentes Sélectionner / réduire les
variables inutiles ou bruitées
Régularisation Réduire λ (moins de contrainte) Augmenter λ (plus de con-
trainte)
Données Eet souvent limité Ajouter des données (aide
beaucoup !)
Méthode d'ensemble Boosting (souvent utile) Bagging (souvent utile)

☞ À retenir
Workow de diagnostic en 3 étapes :
1. Calculer erreur train et erreur test.
2. Grand écart train/test → variance → colonne droite du tableau.
3. Erreur train élevée en absolu → biais → colonne gauche du tableau.

Pr. ADDOU ML  Séance 1  Partie 3 23/32


Tableau de diagnostic  5 cas concrets
★ Exercice interactif  diagnostiquez chaque cas avant de lire la solution

Situation Err. train Err. test

Diabète (1 feature) 28% 30%

Prix immo (arbre ∞, 0% 35%


200 ex.)

Churn (RF bien réglé) 5% 9%

Spam (LogReg, peu de 22% 24%


features)
Fraude (XGBoost, 50k 1% 3%
ex.)

Pr. ADDOU ML  Séance 1  Partie 3 24/32


Tableau de diagnostic  5 cas concrets
★ Exercice interactif  diagnostiquez chaque cas avant de lire la solution

Situation Err. train Err. test


Diag. Action
Diabète (1 feature) 28% 30%
Biais élevé Ajouter des features
Prix immo (arbre ∞, 0% 35%
Variance Limiter profondeur,
200 ex.)
élevée Random Forest
Churn (RF bien réglé) 5% 9%
Bon compro- Rien d'urgent /
mis éventuellement +
données
Spam (LogReg, peu de 22% 24%
Biais élevé + features
features)
Fraude (XGBoost, 50k 1% 3%
OK Valider davantage
ex.)

Pr. ADDOU ML  Séance 1  Partie 3 24/32


Courbes d'apprentissage  votre outil de diagnostic visuel

Qu'est-ce qu'une courbe d'apprentissage ?


erreur sur le train et l'erreur sur la validation en fonction du nombre
On trace l'
d'exemples d'entraînement. La forme de ces courbes donne un bon indice sur la source du
problème : biais ou variance.

Biais élevé (undertting) Variance élevée (overtting)


Train Train
Validation Validation
Erreur

Erreur
Nb exemples Nb exemples

Signe : les 2 courbes convergent haut. Signe : grand écart entre train et validation.
Ajouter des données aide peu. Ajouter des données peut aider.
→ Modèle + complexe ou + features. → Régularisation ou modèle + simple.
Pr. ADDOU ML  Séance 1  Partie 3 25/32
Courbes d'apprentissage  comment les lire en pratique

Exemple : Lire les courbes  3 scénarios


Scénario A : vous tracez les courbes et les 2 lignes convergent vers une erreur de 25%. Ajouter plus
de données ne change presque rien.
→ Biais. Le modèle est trop simple. Essayez un modèle plus exible ou de meilleures variables.
Scénario B : l'erreur train est à 2% mais l'erreur validation est à 30%. L'écart est énorme, mais il
tend à se réduire lorsque l'on ajoute davantage de données.
→ Variance / surapprentissage. Le modèle est trop complexe, pas assez régularisé, ou les données
sont insusantes.
Scénario C : l'erreur train est à 3% et l'erreur validation est à 5%. L'écart est petit et l'erreur
absolue est basse.
→ Bon modèle ! Il généralise bien.

☞ À retenir
En Python, vous pouvez tracer ces courbes avec sklearn.model_selection.learning_curve.
C'est l'un des premiers réexes à avoir quand un modèle ne marche pas.

Pr. ADDOU ML  Séance 1  Partie 3 26/32


✎ TD  Exercice 5C  QCM Vrai/Faux (8 min, individuel)
Répondez Vrai ou Faux. Justiez chaque réponse en une seule phrase.
1 Un modèle avec un biais élevé est généralement trop complexe.
2 Augmenter la quantité de données aide généralement à réduire l'overtting.
3 Si l'erreur train ET l'erreur test sont toutes les deux élevées, c'est de l'overtting.
4 Le bruit σ 2 peut être réduit en choisissant un meilleur algorithme.
5 La régularisation réduit la variance du modèle.
6 Plus un modèle est complexe, mieux il généralise.

Pr. ADDOU ML  Séance 1  Partie 3 27/32


✓ Solution  Exercice 5C  QCM (1/2)
1 ✗ Faux. Biais élevé = modèle trop simple (undertting). C'est le contraire : trop complexe = variance
élevée.
2 ✓ Vrai. Ajouter plus de données aide généralement à réduire l'overtting, car cela stabilise
l'apprentissage et réduit la variance du modèle.
3 ✗ Faux. Train ET test élevées = undertting (biais élevé). L'overtting, c'est train faible mais test
élevé.
4 ✗ Faux. σ 2 est le bruit dans les données. Le changer d'algorithme ne le réduit pas à lui seul.
5 ✓ Vrai. La régularisation pénalise la complexité du modèle, ce qui réduit la variance (au prix d'un
léger surcroît de biais).
6 ✗ Faux. Au-delà du point optimal, plus de complexité = plus de variance = moins de généralisation
(overtting).

Pr. ADDOU ML  Séance 1  Partie 3 28/32


Récapitulatif complet de la Séance 1 (Parties 1 + 2 + 3)
Partie 1  Introduction Partie 3  Théorie
✓ Dénition ML (Mitchell) + formulation ✓ Intérêt du biais-variance (stéthoscope)
math ✓ Risque empirique R̂ vs risque réel R
✓ 3 types : supervisé / non sup. / ✓ Overtting (variance) vs Undertting (biais)
renforcement
✓ 3 sources d'erreur (biais, variance, bruit)
✓ Classication vs Régression
✓ Démo : Err = Biais2 + Var + σ 2
✓ Model-Based vs Instance-Based
✓ Compromis + tableau de remèdes
✓ Shallow vs Deep Learning
✓ Courbes d'apprentissage
✓ Training vs Scoring
✓ No Free Lunch
✓ Quand utiliser le ML (5 oui, 4 non)

Partie 2  Données et Pipeline Séance prochaine

✓ 5 structures de données, notations


Régression Linéaire
Maths intégrées : gradient, calcul matriciel,
✓ Raw → Tidy, Direct vs Indirect
équation normale, descente de gradient, normes
✓ Prétraitement (NaN, encodage, L1/L2.
normalisation)
Pr. ADDOU ML  Séance 1  Partie 3 29/32
Formules clés de la Séance 1

1 Pn
Risque empirique R̂(f ) = n i=1 L(f (xi ), yi )

Risque réel R(f ) = E(x,y ) [L(f (x), y )]

Biais Biais[fˆ(x)]= E[fˆ(x)] − f (x)

Var[fˆ(x)] = E (fˆ(x) − E[fˆ(x)])


2
 
Variance

Décomposition B-V E[(y − fˆ(x))2 ] = Biais[fˆ(x)]2 + Var[fˆ(x)] + σ 2

Baseline (classif.) Accbase = proportion de la classe majoritaire

x−xmin
Min-Max x′ = xmax −xmin ∈ [0, 1]
x−µ
Z-score x′ = σ (moyenne=0, écart-type=1)

Pr. ADDOU ML  Séance 1  Partie 3 30/32


Concepts clés  référence rapide

☞ À retenir

Concept Dénition en 1 phrase


Overtting Train très faible, test nettement plus élevé. Le modèle
mémorise au lieu de comprendre
Undertting Train et test élevés et proches. Le modèle est trop simple
Biais Erreur systématique. Modèle trop simple → ne capture
pas la tendance
Variance Instabilité. Modèle trop complexe → change selon
l'échantillon
Bruit σ2 Aléa irréductible dans les données. Même le modèle parfait
ne peut l'éliminer
Compromis B-V En général, réduire l'un tend à augmenter l'autre. Il faut
trouver le sweet spot
Courbe d'appren. Train et valid convergent haut → biais. Grand écart →
variance
Pr. ADDOU ML  Séance 1  Partie 3 31/32
Merci !
Questions ?

Pr. ADDOU Mohammed


Master IASD  FSO Oujda

Séance prochaine : Régression Linéaire

Maths intégrées S2 : gradient, calcul matriciel, normes L1/L2

Pr. ADDOU ML  Séance 1  Partie 3 32/32


Module : Machine Learning
Séance 2  Partie 1/3 : Régression linéaire simple et fonction de coût

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  S2  Régression linéaire (1/3) 1/46


Plan de la séance 2 : Régression linéaire et optimisation

Objectif : comprendre le modèle de régression linéaire, sa fonction de coût, ses méthodes d'optimisation

et ses extensions.

▶ Partie 1/3 (ce chier) Partie 2/3


❖ Rappel : qu'est-ce que la régression ? Descente de gradient (batch, SGD, mini-batch)
❖ Le modèle de régression linéaire simple Taux d'apprentissage et convergence
ŷ = wx + b
Régression multiple (d variables explicatives)
❖ La fonction de coût MSE
Expansion polynomiale des variables
❖ Outils mathématiques : gradient et dérivées
partielles TD 2 + Solutions

❖ L'équation normale : solution analytique des Partie 3/3


paramètres Régularisation : Ridge (L2), Lasso (L1), Elastic
❖ Exemple numérique complet de régression Net
linéaire Métriques d'évaluation (R2 , MAE, RMSE)
✎ TD 1 + Solutions Récapitulatif, formules clés et devoir/TP
Pr. ADDOU ML  S2  Régression linéaire (1/3) 2/46
Rappel de la Séance 1 : régression vs classication

★ Petit test
Quelle est la diérence entre régression et classication ?

Cadre : apprentissage supervisé (x → y ).


On apprend à partir de données (xi , yi ) appelées données d'entraînement.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 3/46


Rappel de la Séance 1 : régression vs classication

★ Petit test
Quelle est la diérence entre régression et classication ?

Cadre : apprentissage supervisé (x → y ).


On apprend à partir de données (xi , yi ) appelées données d'entraînement.

Régression : y ∈ R (variable continue)


On cherche à prédire une variable continue.
Ex : prix (250 000), température (23.5°C),
durée (4.2h).
→ On estime une fonction fˆ : X → R.
→ Focus de cette séance : régression
linéaire

Pr. ADDOU ML  S2  Régression linéaire (1/3) 3/46


Rappel de la Séance 1 : régression vs classication

★ Petit test
Quelle est la diérence entre régression et classication ?

Cadre : apprentissage supervisé (x → y ).


On apprend à partir de données (xi , yi ) appelées données d'entraînement.

Régression : y ∈ R (variable continue) Classication : y ∈ {c1 , . . . , cK } (variable


On cherche à prédire une variable continue. discrète)
Ex : prix (250 000), température (23.5°C), On cherche à prédire une catégorie.
durée (4.2h). Ex : spam/non-spam, chat/chien.
→ On estime une fonction fˆ : X → R. → On estime une fonction
→ Focus de cette séance : régression fˆ : X → {c1 , . . . , cK }.
linéaire → Sera étudiée ultérieurement dans le
module.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 3/46


Rappel de la Séance 1 : régression vs classication

☞ À retenir
La régression linéaire est le modèle fondamental du Machine Learning supervisé :
elle introduit la notion de modèle paramétrique (w , b),
elle permet de comprendre la fonction de coût et l'optimisation,
elle constitue la base de nombreux modèles plus avancés.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 4/46


Problème de régression : prédire un prix à partir de la surface

★ Mise en situation
Vous êtes agent immobilier. Un client vous demande : Mon appartement fait 85 m2 .
Combien vaut-il ? Vous disposez des données de 5 ventes récentes. Comment estimer ce
prix ?

Ici :x = surface, y = prix


On cherche à apprendre une relation entre la variable explicative x et la variable cible y .
85 m2 ?
Surface Prix 300

(m2 ) (k$)
40 80

Prix (k$)
200

60 130
80 165
100 210 100
120 250
Objectif : estimer le prix correspondant à une 20 40 60 80 100 120 140

m2 .
2
Surface (m )
surface de 85

Pr. ADDOU ML  S2  Régression linéaire (1/3) 5/46


Problème de régression : prédire un prix à partir de la surface
Ici :x = surface, y = prix
On cherche à apprendre une relation entre la variable explicative x et la variable cible y .
85 m2 ?
Surface Prix 300

(m2 ) (k$)
40 80

Prix (k$)
200

60 130
80 165
100 210 100
120 250
Objectif : estimer le prix correspondant à une 20 40 60 80 100 120 140

2
surface de 85 m .
2
Surface (m )

☞ À retenir
La valeur cherchée pour x= 85 n'est pas observée dans les données : c'est une prédiction. Le but
de la régression est d'apprendre une fonction permettant de prédire une valeur numérique à partir
de données observées.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 6/46


L'idée de la régression linéaire : tracer la meilleure droite

Observation : les points semblent suivre une tendance linéaire (quand la surface augmente,
le prix augmente proportionnellement).
Idée : trouver la droite qui passe au plus près de tous les points. Ensuite, pour 85 m2 , on lit
simplement le prix sur cette droite.
300

Prix (k$)
200
≈ 180 k$

100

20 40 60 80 100 120 140


2
Surface (m )

Pr. ADDOU ML  S2  Régression linéaire (1/3) 7/46


L'idée de la régression linéaire : tracer la meilleure droite

Observation : les points semblent suivre une tendance linéaire (quand la surface augmente,
le prix augmente proportionnellement).
Idée : trouver la droite qui passe au plus près de tous les points. Ensuite, pour 85 m2 , on lit
simplement le prix sur cette droite.
300

Prix (k$)
200
≈ 180 k$

100

20 40 60 80 100 120 140


2
Surface (m )

☞ À retenir
La régression linéaire cherche la droite ŷ = wx + b qui passe au plus près de tous les points. Le plus
près sera déni mathématiquement par la fonction de coût.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 7/46
Le modèle : ŷ = wx + b

Régression linéaire simple

ŷ = wx + b
x : variable explicative (ex : surface en m2 )
ŷ : valeur prédite (ex : prix estimé)

w pente de la droite
: poids =

b : biais = ordonnée à l'origine

Pr. ADDOU ML  S2  Régression linéaire (1/3) 8/46


Le modèle : ŷ = wx + b

Régression linéaire simple

ŷ = wx + b
x : variable explicative (ex : surface en m2 )
ŷ : valeur prédite (ex : prix estimé)

w pente de la droite
: poids =

b : biais = ordonnée à l'origine

★ Interprétation intuitive
w mesure combien ŷ change quand x augmente de 1 unité.
Exemple : si w = 2.1, chaque m2 supplémentaire augmente le prix prédit de 2.1 k$.

b est la valeur prédite quand x = 0.


Exemple : si b = 2, alors le modèle prédit 2 k$ pour x = 0.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 8/46


Visualiser l'eet de w et de b

Pr. ADDOU ML  S2  Régression linéaire (1/3) 9/46


Visualiser l'eet de w et de b

Eet de w (pente) :
w = 0.5 (pente faible)
10 w = 2 (pente forte)
w = −1 (pente négative)

5

0 1 2 3 4 5
x

w > 0 ⇒ la droite monte,


w < 0 ⇒ la droite descend
Plus |w | est grand, plus la pente est forte.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 9/46


Visualiser l'eet de w et de b

Eet de w (pente) : Eet de b (ordonnée à l'origine) :


w = 0.5 (pente faible) b=0
10 w = 2 (pente forte) b=3
w = −1 (pente négative) 10 b=6

5


5

0 0

0 1 2 3 4 5 0 1 2 3 4 5
x x

w > 0 ⇒ la droite monte, Ici, la pente est xée (w = 1.5). Modier b


w < 0 ⇒ la droite descend revient à translater verticalement la droite sans
Plus |w | est grand, plus la pente est forte. changer son inclinaison.
b est la valeur de ŷ lorsque x = 0.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 9/46


Visualiser l'eet de w et de b

Eet de w (pente) : Eet de b (ordonnée à l'origine) :


w = 0.5 (pente faible) b=0
10 w = 2 (pente forte) b=3
w = −1 (pente négative) 10 b=6

5


5

0 0

0 1 2 3 4 5 0 1 2 3 4 5
x x

w > 0 ⇒ la droite monte, Ici, la pente est xée (w = 1.5). Modier b


w < 0 ⇒ la droite descend revient à translater verticalement la droite sans
Plus |w | est grand, plus la pente est forte. changer son inclinaison.
b est la valeur de ŷ lorsque x = 0.

☞ À retenir
Dans le modèle ŷ = wx + b , le paramètre w contrôle l'inclinaison de la droite, tandis que b contrôle
sa position verticale.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 9/46
w et b sont les paramètres du modèle

☞ À retenir
w et b sont les paramètres du modèle : ce sont les quantités que l'algorithme doit apprendre
automatiquement à partir des données.
L'objectif est de trouver les valeurs de w et b pour lesquelles la droite ŷ = wx + b approxime
au mieux les points observés.
La question centrale est donc : comment mesurer mathématiquement la qualité d'une
droite ?

Pr. ADDOU ML  S2  Régression linéaire (1/3) 10/46


w et b sont les paramètres du modèle

★ Rééchissez
Regardez ces deux droites. Laquelle semble meilleure ? Comment le quantier de manière
objective ?

Droite B

Prix (k$)
Droite A

2
Surface (m )

Pr. ADDOU ML  S2  Régression linéaire (1/3) 11/46


w et b sont les paramètres du modèle

★ Rééchissez
Regardez ces deux droites. Laquelle semble meilleure ? Comment le quantier de manière
objective ?

Droite B

Prix (k$)
Droite A

2
Surface (m )

☞ À retenir
Pour comparer plusieurs droites candidates, on a besoin d'une mesure quantitative de l'erreur. La
plus classique en régression linéaire est la somme des erreurs au carré, qui conduit à la fonction
de coût.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 11/46


L'erreur de prédiction pour un point

Résidu = erreur sur un exemple


Pour le i -ème exemple, le résidu (ou erreur de prédiction) est la diérence entre la vraie
valeur yi et la valeur prédite ŷi :

ei = yi − ŷi = yi − (wxi + b)

Un résidu est :

positif si le point est au-dessus de la droite,


e4 e5
200
Prix (k$)

négatif si le point est en dessous de la droite,


e3
e2
nul si le point est exactement sur la droite.
100
e1

20 40 60 80 100 120 140


2
Surface (m )
Les segments verts représentent les résidus ei , c'est-à-dire les écarts verticaux entre les points
observés et la droite de prédiction.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 12/46


Erreur de prédiction  cas 1 : droite très mauvaise

Résidu
Pour un point (xi , yi ), le résidu est : ei = yi − ŷi

200

Prix (k$)
e4 e5

e2 e3
100

e1

20 40 60 80 100 120 140


2
Surface (m )

☞ À retenir
Cette droite est très mauvaise : les résidus sont globalement très grands.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 13/46


Erreur de prédiction  cas 2 : droite moyenne

Résidu
Pour un point (xi , yi ), le résidu est : ei = yi − ŷi

e4 e5
200

Prix (k$) e3
e2

100
e1

20 40 60 80 100 120 140


2
Surface (m )

☞ À retenir
Cette droite est meilleure, mais plusieurs résidus restent encore importants.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 14/46


Erreur de prédiction  cas 3 : droite optimale

Résidu
Pour un point (xi , yi ), le résidu est : ei = yi − ŷi

e4 e5
200

Prix (k$)
e3
e2

100
e1

20 40 60 80 100 120 140


2
Surface (m )

☞ À retenir
meilleure droite possible pour ce nuage.
Cette droite est la Mais comme les données ne sont pas
parfaitement linéaires, les résidus restent encore visibles.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 15/46
L'erreur de prédiction pour un point

e4 e5
200

Prix (k$)
e3
e2

100
e1

20 40 60 80 100 120 140


2
Surface (m )

☞ À retenir
Une bonne droite de régression est une droite dont les résidus sont globalement petits. Il faut
maintenant dénir une manière de combiner toutes les erreurs en une seule quantité.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 16/46


Pourquoi ne pas simplement additionner les résidus ?

★ Question piège
P
Si on additionne tous les résidus i ei , peut-on obtenir 0 même si la droite est mauvaise ?

Réponse : oui. Les résidus positifs et négatifs peuvent se compenser même si les erreurs
sont importantes.

Exemple : piège de la somme simple Idée correcte : utiliser les carrés des résidus :
(− 2 2 (30)2 = 900
Considérons 3 points et une droite donnée : P330) 2= 900, 0 = 0,

Point 1 : y1 = 100, ŷ1 = 130 ⇒ e1 = −30 i=1 ei = 900 + 0 + 900 = 1800


Les erreurs ne s'annulent donc plus.
Point 2 : y2 = 200, ŷ2 = 200 ⇒ e2 = 0
Point 3 : y3 = 300, ŷ3 = 270 ⇒ e3 = +30 ☞ À retenir
3
P
X On ne minimise pas directement i ei , mais
ei = −30 + 0 + 30 = 0 plutôt une quantité basée sur les résidus au
i=1 carré. C'est l'idée de base de la fonction de
Pourtant, la droite commet une erreur de 30 sur coût quadratique utilisée en régression linéaire.
deux points.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 17/46


MSE : Mean Squared Error  fonction de coût de la régression linéaire

MSE (Mean Squared Error)  formule fondamentale


n n
1 1
J(w , b) = MSE(w , b) = (yi − ŷi )2 = (yi − (wxi + b))2
X X
n n
i=1 i=1

Interprétation des termes :


J(w , b) La fonction de coût mesure l'erreur du modèle. Plus J(w , b) est petit,
mieux la droite s'ajuste aux données.

(yi − ŷi )2 Le carré du résidu pour le point i . Cette quantité est toujours ≥ 0.
1 Pn
i=1 La moyenne des erreurs quadratiques sur l'ensemble des n exemples.
n

Pr. ADDOU ML  S2  Régression linéaire (1/3) 18/46


MSE : Mean Squared Error  fonction de coût de la régression linéaire

MSE (Mean Squared Error)  formule fondamentale


n n
1 1
J(w , b) = MSE(w , b) = (yi − ŷi )2 = (yi − (wxi + b))2
X X
n n
i=1 i=1

Interprétation des termes :


J(w , b) La fonction de coût mesure l'erreur du modèle. Plus J(w , b) est petit,
mieux la droite s'ajuste aux données.

(yi − ŷi )2 Le carré du résidu pour le point i . Cette quantité est toujours ≥ 0.
1 Pn
i=1 La moyenne des erreurs quadratiques sur l'ensemble des n exemples.
n

☞ À retenir
le carré des erreurs permet à la fois de mieux punir les grandes erreurs et de faciliter
l'optimisation.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 18/46
MSE : Mean Squared Error  fonction de coût de la régression linéaire

MSE (Mean Squared Error)  formule fondamentale


n n
1 1
J(w , b) = MSE(w , b) = 2
(yi − (wxi + b))2
X X
(yi − ŷi ) =
n n
i=1 i=1

Pr. ADDOU ML  S2  Régression linéaire (1/3) 19/46


MSE : Mean Squared Error  fonction de coût de la régression linéaire

MSE (Mean Squared Error)  formule fondamentale


n n
1 1
J(w , b) = MSE(w , b) = 2
(yi − (wxi + b))2
X X
(yi − ŷi ) =
n n
i=1 i=1

☞ À retenir
Objectif de la régression linéaire : trouver les paramètres optimaux w∗ et b∗ qui minimisent la
fonction de coût :

n
1
(yi − (wxi + b))2
X
(w ∗ , b ∗ ) = arg min J(w , b) = arg min
w ,b w ,b n
i=1

Pr. ADDOU ML  S2  Régression linéaire (1/3) 19/46


MSE  calcul numérique pas à pas

Exemple : Calcul de J(w , b) pour nos 5 appartements avec w = 2 et b = 5

i xi (surface) yi (prix réel) ŷi = 2xi + 5 (yi − ŷi )2


1 40 80 2 × 40 + 5 = 85 (80 − 85)2 = 25
2 60 130 2 × 60 + 5 = 125 (130 − 125)2 = 25
3 80 165 2 × 80 + 5 = 165 (165 − 165)2 = 0
4 100 210 2 × 100 + 5 = 205 (210 − 205)2 = 25
5 120 250 2 × 120 + 5 = 245 (250 − 245)2 = 25
Somme : 25 + 25 + 0 + 25 + 25 = 100
1
J(2, 5) = × 100 = 20
5
Ainsi, la droite ŷ = 2x + 5 produit une erreur quadratique moyenne de 20.
Attention : cette valeur seule ne permet pas encore de dire si la droite est bonne ou mauvaise. Pour

l'interpréter, il faut soit :

la comparer à d'autres droites candidates,


soit chercher directement la droite qui minimise J(w , b).
Pr. ADDOU ML  S2  Régression linéaire (1/3) 20/46
MSE  calcul numérique pas à pas

☞ À retenir
La fonction de coût transforme la qualité d'une droite en une valeur numérique unique. Le problème
d'apprentissage devient alors un problème d'optimisation.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 21/46


Visualiser la MSE comme une surface

J(w , b) est une fonction de deux variables : à


chaque couple (w , b) correspond une valeur de la
fonction de coût. On peut donc représenter J(w , b)
comme une surface en 3D.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 22/46


Visualiser la MSE comme une surface

J(w , b) est une fonction de deux variables : à


chaque couple (w , b) correspond une valeur de la
fonction de coût. On peut donc représenter J(w , b)
comme une surface en 3D.
Forme de la surface : dans le cas de la régression
linéaire avec MSE, la fonction de coût a la forme
d'un paraboloïde convexe (un bol).

Pr. ADDOU ML  S2  Régression linéaire (1/3) 22/46


Visualiser la MSE comme une surface

J(w , b) est une fonction de deux variables : à


chaque couple (w , b) correspond une valeur de la
fonction de coût. On peut donc représenter J(w , b)
comme une surface en 3D.
Forme de la surface : dans le cas de la régression
linéaire avec MSE, la fonction de coût a la forme
d'un paraboloïde convexe (un bol).
Pourquoi est-ce important ? Parce qu'une
fonction convexe possède un minimum global
unique. Autrement dit, il n'y a pas de minima
locaux piégeux dans ce problème.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 22/46


Visualiser la MSE comme une surface

J(w , b) est une fonction de deux variables : à


chaque couple (w , b) correspond une valeur de la
fonction de coût. On peut donc représenter J(w , b)
comme une surface en 3D. 15

Forme de la surface : dans

J(w , b)
le cas de la régression 10

linéaire avec MSE, la fonction de coût a la forme


d'un paraboloïde convexe (un bol). 5
−2
10
0
0
Pourquoi est-ce important ? Parce qu'une w
2
4 b

fonction convexe possède un minimum global


unique. Autrement dit, il n'y a pas de minima Le point le plus bas de la surface

locaux piégeux dans ce problème. correspond aux meilleurs paramètres w∗ et



b .
Interprétation : le fond du bol correspond aux
paramètres optimaux (w ∗ , b ∗ ) qui minimisent
J(w , b).
Pr. ADDOU ML  S2  Régression linéaire (1/3) 22/46
Visualiser la MSE comme une surface

☞ À retenir
En régression linéaire, minimiser la MSE revient à
15
chercher le point le plus bas d'une surface convexe.

J(w , b)
C'est cette propriété qui rend l'optimisation partic- 10

ulièrement simple et stable.


5
10
−2
0
2 0
4 b
w

Le point le plus bas de la surface


correspond aux meilleurs paramètres w∗ et

b .

Pr. ADDOU ML  S2  Régression linéaire (1/3) 23/46


Deux méthodes pour trouver le minimum

On a déni la fonction de coût J(w , b). Comment trouver les paramètres optimaux (w ∗ , b ∗ )
qui la minimisent ? Il existe deux grandes approches :

Pr. ADDOU ML  S2  Régression linéaire (1/3) 24/46


Deux méthodes pour trouver le minimum

On a déni la fonction de coût J(w , b). Comment trouver les paramètres optimaux (w ∗ , b ∗ )
qui la minimisent ? Il existe deux grandes approches :

Méthode 1 : équation normale


Solution analytique (formule fermée)
On obtient directement les paramètres
optimaux

Très utile pour comprendre la structure


mathématique du problème

Adaptée surtout aux problèmes de petite ou


moyenne taille

→ Cette partie (aujourd'hui)

Pr. ADDOU ML  S2  Régression linéaire (1/3) 24/46


Deux méthodes pour trouver le minimum

On a déni la fonction de coût J(w , b). Comment trouver les paramètres optimaux (w ∗ , b ∗ )
qui la minimisent ? Il existe deux grandes approches :

Méthode 1 : équation normale Méthode 2 : descente de gradient


Solution analytique (formule fermée) Solution itérative (pas à pas)
On obtient directement les paramètres On met progressivement à jour les
optimaux paramètres pour faire diminuer J
Très utile pour comprendre la structure Très adaptée aux problèmes de grande
mathématique du problème dimension

Adaptée surtout aux problèmes de petite ou Utilisée dans de nombreux modèles


moyenne taille modernes de Machine Learning

→ Cette partie (aujourd'hui) → Partie 2/3

Pr. ADDOU ML  S2  Régression linéaire (1/3) 24/46


Deux méthodes pour trouver le minimum

On a déni la fonction de coût J(w , b). Comment trouver les paramètres optimaux (w ∗ , b ∗ )
qui la minimisent ? Il existe deux grandes approches :

Exemple : Analogie  trouver le point le plus bas d'une vallée


Équation normale : vous disposez de la description mathématique complète du relief et vous calculez
directement le point le plus bas.
Descente de gradient : vous partez d'un point initial, puis vous avancez progressivement dans la
direction qui fait le plus diminuer l'altitude.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 25/46


Deux méthodes pour trouver le minimum

On a déni la fonction de coût J(w , b). Comment trouver les paramètres optimaux (w ∗ , b ∗ )
qui la minimisent ? Il existe deux grandes approches :

Exemple : Analogie  trouver le point le plus bas d'une vallée


Équation normale : vous disposez de la description mathématique complète du relief et vous calculez
directement le point le plus bas.
Descente de gradient : vous partez d'un point initial, puis vous avancez progressivement dans la
direction qui fait le plus diminuer l'altitude.

☞ À retenir
Ces deux approches poursuivent le même objectif : minimiser la fonction de coût. La diérence
est que l'une calcule directement la solution, tandis que l'autre l'approche progressivement.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 25/46


Rappel math : dérivées partielles

Math  Rappel nécessaire avant l'optimisation


P

Pour trouver le minimum de J(w , b), nous aurons besoin de calculer ses dérivées partielles,
puis d'étudier les points où elles s'annulent.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 26/46


Rappel math : dérivées partielles

Math  Rappel nécessaire avant l'optimisation


P

Pour trouver le minimum de J(w , b), nous aurons besoin de calculer ses dérivées partielles,
puis d'étudier les points où elles s'annulent.

Dérivée partielle  intuition


Sif (x, y ) = 3x 2 + 2xy + y 2 , alors la dérivée partielle par rapport à x, notée
∂f
∂x , mesure
comment f varie lorsque x change, en gardant y xe.

Règle : pour calculer


∂f
∂x , on traite y comme une constante.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 26/46


Rappel math : dérivées partielles

Exemple : Calcul concret


Soit f (x, y ) = 3x 2 + 2xy + y 2
Rappel math : dérivées partielles

Exemple : Calcul concret


Soit f (x, y ) = 3x 2 + 2xy + y 2
∂f
∂x
= 6x + 2y
car : 3x 2 7→ 6x, 2xy 7→ 2y , y 2 7→ 0
∂f
∂y
= 2x + 2y
car : 3x 2 7→ 0, 2xy 7→ 2x, y 2 7→ 2y
Rappel math : dérivées partielles

Exemple : Calcul concret


Soit f (x, y ) = 3x 2 + 2xy + y 2
∂f
∂x
= 6x + 2y
car : 3x 2 7→ 6x, 2xy 7→ 2y , y 2 7→ 0
∂f
∂y
= 2x + 2y
car : 3x 2 7→ 0, 2xy 7→ 2x, y 2 7→ 2y

Gradient :
∂f
! !
∂x 6x + 2y
∇f (x, y ) = ∂f
=
∂y 2x + 2y

Pr. ADDOU ML  S2  Régression linéaire (1/3) 27/46


Rappel math : dérivées partielles

Exemple : Calcul concret


Soit f (x, y ) = 3x 2 + 2xy + y 2 ☞ À retenir
∂f
∂x
= 6x + 2y Les dérivées partielles indiquent comment
car : 3x 2 7→ 6x, 2xy 7→ 2y , y 2 7→ 0 une fonction varie selon chaque variable.

∂f
= 2x + 2y
Le gradient regroupe toutes ces variations
∂y
et joue un rôle central dans les méthodes
car : 3x 2 7→ 0, 2xy 7→ 2x, y 2 7→ 2y d'optimisation.

Gradient :
∂f
! !
∂x 6x + 2y
∇f (x, y ) = ∂f
=
∂y 2x + 2y

Pr. ADDOU ML  S2  Régression linéaire (1/3) 27/46


Pourquoi ∇J = 0 permet de trouver le minimum ?

☞ À retenir
Idée fondamentale : pour une fonction diérentiable, un point critique est un point où toutes les
dérivées partielles s'annulent :
∂J ∂J
=0 et =0
∂w ∂b
Si, en plus, la fonction J est convexe, alors tout point critique est un minimum global.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 28/46


Pourquoi ∇J = 0 permet de trouver le minimum ?

☞ À retenir
Idée fondamentale : pour une fonction diérentiable, un point critique est un point où toutes les
dérivées partielles s'annulent :
∂J ∂J
=0 et =0
∂w ∂b
Si, en plus, la fonction J est convexe, alors tout point critique est un minimum global.

Dans le cas de la régression linéaire avec MSE, la fonction de coût est convexe. Ainsi, résoudre

∇J = ⃗0

permet bien de trouver le minimum global de J(w , b).

Pr. ADDOU ML  S2  Régression linéaire (1/3) 28/46


Calcul des dérivées partielles de J(w , b)
1 Pn
Rappel : J(w , b) = n i=1 (yi − wxi − b)2

Pr. ADDOU ML  S2  Régression linéaire (1/3) 29/46


Calcul des dérivées partielles de J(w , b)
1 Pn
Rappel : J(w , b) = n i=1 (yi − wxi − b)2
Dérivée partielle par rapport à w :
1
− wxi − b)(−xi ) = − n2
∂J Pn Pn
∂w = n i=1 2(yi i=1 xi (yi − wxi − b)

Pr. ADDOU ML  S2  Régression linéaire (1/3) 29/46


Calcul des dérivées partielles de J(w , b)
1 Pn
Rappel : J(w , b) = n i=1 (yi − wxi − b)2
Dérivée partielle par rapport à w :
1
− wxi − b)(−xi ) = − n2
∂J Pn Pn
∂w = n i=1 2(yi i=1 xi (yi − wxi − b)
Dérivée partielle par rapport à b :
1
− wxi − b)(−1) = − n2
∂J Pn Pn
∂b = n i=1 2(yi i=1 (yi − wxi − b)

Pr. ADDOU ML  S2  Régression linéaire (1/3) 29/46


Calcul des dérivées partielles de J(w , b)
1 Pn
Rappel : J(w , b) = n i=1 (yi − wxi − b)2
Dérivée partielle par rapport à w :
1
− wxi − b)(−xi ) = − n2
∂J Pn Pn
∂w = n i=1 2(yi i=1 xi (yi − wxi − b)
Dérivée partielle par rapport à b :
1
− wxi − b)(−1) = − n2
∂J Pn Pn
∂b = n i=1 2(yi i=1 (yi − wxi − b)

∂J ∂J
Pour chercher le minimum, on impose :
∂w =0 et
∂b =0
On obtient alors le système suivant :
Pn
i=1 xi (yi − wxi − b) = 0 (1)
Pn
i=1 (yi − wxi − b) = 0 (2)

Pr. ADDOU ML  S2  Régression linéaire (1/3) 29/46


Calcul des dérivées partielles de J(w , b)
1 Pn
Rappel : J(w , b) = n i=1 (yi − wxi − b)2
Dérivée partielle par rapport à w :
1
− wxi − b)(−xi ) = − n2
∂J Pn Pn
∂w = n i=1 2(yi i=1 xi (yi − wxi − b)
Dérivée partielle par rapport à b :
1
− wxi − b)(−1) = − n2
∂J Pn Pn
∂b = n i=1 2(yi i=1 (yi − wxi − b)

∂J ∂J
Pour chercher le minimum, on impose :
∂w =0 et
∂b =0
On obtient alors le système suivant :
Pn
i=1 xi (yi − wxi − b) = 0 (1)
Pn
i=1 (yi − wxi − b) = 0 (2)

☞ À retenir
La minimisation de la MSE se ramène à la résolution d'un système de deux équations à deux inconnues
: w et b.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 29/46
Résolution du système : trouver w∗ et b∗
À partir de l'équation (2) :
Pn Pn
i=1 yi −w i=1 xi − nb = 0

Pr. ADDOU ML  S2  Régression linéaire (1/3) 30/46


Résolution du système : trouver w∗ et b∗
À partir de l'équation (2) :
Pn Pn
i=1 yi −w i=1 xi − nb = 0 En divisant par n, on obtient :
b ∗ = ȳ − w ∗ x̄

Pr. ADDOU ML  S2  Régression linéaire (1/3) 30/46


Résolution du système : trouver w∗ et b∗
À partir de l'équation (2) :
Pn Pn
i=1 yi −w i=1 xi − nb = 0 En divisant par n, on obtient :
b ∗ = ȳ − w ∗ x̄
1 Pn 1 Pn
où x̄ = n i=1 xi et ȳ = n i=1 yi
sont les moyennes empiriques de x et de y.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 30/46


Résolution du système : trouver w∗ et b∗
À partir de l'équation (2) :
Pn Pn
i=1 yi −w i=1 xi − nb = 0 En divisant par n, on obtient :
b ∗ = ȳ − w ∗ x̄
1 Pn 1 Pn
où x̄ = n i=1 xi et ȳ = n i=1 yi
moyennes empiriques de x et de y .
sont les

En remplaçant b∗ dans l'équation (1), on obtient après simplication :


Pn
∗ i= 1 (xi − x̄)(yi − ȳ )
w = P n 2
i=1 (xi − x̄)

Pr. ADDOU ML  S2  Régression linéaire (1/3) 30/46


Résolution du système : trouver w∗ et b∗
À partir de l'équation (2) :
Pn Pn
i=1 yi −w i=1 xi − nb = 0 En divisant par n, on obtient :
b ∗ = ȳ − w ∗ x̄
1 Pn 1 Pn
où x̄ = n i=1 xi et ȳ = n i=1 yi
moyennes empiriques de x et de y .
sont les

En remplaçant b∗ dans l'équation (1), on obtient après simplication :


Pn
∗ i= 1 (xi − x̄)(yi − ȳ )
w = P n 2
i=1 (xi − x̄)

Solution analytique (régression linéaire simple) :


Pn
∗ 1 (xi − x̄)(yi − ȳ )
w = i=
P n 2
b ∗ = ȳ − w ∗ x̄
i=1 (xi − x̄)

Pr. ADDOU ML  S2  Régression linéaire (1/3) 30/46


Résolution du système : trouver w∗ et b∗
À partir de l'équation (2) :
Pn Pn
i=1 yi −w i=1 xi − nb = 0 En divisant par n, on obtient :
b ∗ = ȳ − w ∗ x̄
1 Pn 1 Pn
où x̄ = n i=1 xi et ȳ = n i=1 yi
moyennes empiriques de x et de y .
sont les

En remplaçant b∗ dans l'équation (1), on obtient après simplication :


Pn
∗ i= 1 (xi − x̄)(yi − ȳ )
w = P n 2
i=1 (xi − x̄)

Solution analytique (régression linéaire simple) :


Pn
∗ 1 (xi − x̄)(yi − ȳ )
w = i=
P n 2
b ∗ = ȳ − w ∗ x̄
i=1 (xi − x̄)

☞ À retenir
Ces formules donnent directement les paramètres optimaux du modèle de régression linéaire simple.
Aucune itération n'est nécessaire : la solution est obtenue par calcul direct.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 30/46
L'équation normale en notation matricielle

Math  Aperçu : cas de la régression multiple


P

Pour la régression linéaire multiple, le modèle peut s'écrire sous forme matricielle :

ŷ = Xθ

où θ contient les paramètres du modèle.

La solution analytique s'écrit alors :

θ ∗ = (X T X )−1 X T y

Remarque importante : si l'on inclut le biais b dans θ, alors la matrice X doit contenir une colonne
de 1.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 31/46


L'équation normale en notation matricielle

Avantages de l'équation normale :

Pr. ADDOU ML  S2  Régression linéaire (1/3) 32/46


L'équation normale en notation matricielle

Avantages de l'équation normale :


✓ Solution analytique (pas d'itération)

✓ Pas de taux d'apprentissage à choisir

✓ Très utile pour comprendre la structure mathématique du problème

Pr. ADDOU ML  S2  Régression linéaire (1/3) 32/46


L'équation normale en notation matricielle

Avantages de l'équation normale :


✓ Solution analytique (pas d'itération)

✓ Pas de taux d'apprentissage à choisir

✓ Très utile pour comprendre la structure mathématique du problème

Limites :

Pr. ADDOU ML  S2  Régression linéaire (1/3) 32/46


L'équation normale en notation matricielle

Avantages de l'équation normale :


✓ Solution analytique (pas d'itération)

✓ Pas de taux d'apprentissage à choisir

✓ Très utile pour comprendre la structure mathématique du problème

Limites :
✗ Le calcul de (X T X )−1 peut devenir coûteux lorsque le nombre de variables est grand
T
✗ La matrice X X peut être singulière (non inversible)

✗ Cette approche n'est pas adaptée aux grands problèmes ou à certains modèles plus complexes

Pr. ADDOU ML  S2  Régression linéaire (1/3) 32/46


L'équation normale en notation matricielle

Avantages de l'équation normale :


✓ Solution analytique (pas d'itération)

✓ Pas de taux d'apprentissage à choisir

✓ Très utile pour comprendre la structure mathématique du problème

Limites :
✗ Le calcul de (X T X )−1 peut devenir coûteux lorsque le nombre de variables est grand
T
✗ La matrice X X peut être singulière (non inversible)

✗ Cette approche n'est pas adaptée aux grands problèmes ou à certains modèles plus complexes

En pratique, l'équation normale est surtout utile pour des problèmes de taille modérée. Pour les
problèmes de grande dimension, on préfère souvent des méthodes itératives comme la descente de
gradient.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 32/46


Exemple complet  étape 1 : calculer les moyennes

Étape 1 : calculer les moyennes


Exemple : Nos 5 appartements  calcul empiriques
à la main
xi (surface) yi (prix, k$) 40 + 60 + 80 + 100 + 120 400
x̄ = = = 80
40 80 5 5
60 130
80 165
100 210 80 + 130 + 165 + 210 + 250 835
120 250 ȳ = = = 167
5 5

☞ À retenir
Le point (x̄, ȳ ) = (80, 167) est le centre de gravité empirique du nuage de points. Dans la
régression linéaire simple avec biais, la droite de régression passe toujours par ce point.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 33/46


Exemple complet  étape 2 : calculer w∗
Étape 2 : calculer le numérateur et le dénominateur de la formule de w ∗ ; (x̄, ȳ ) = (80, 167)
xi yi xi − x̄ yi − ȳ (xi − x̄)(yi − ȳ ) (xi − x̄)2

40 80 −40 −87 3480 1600


60 130 −20 −37 740 400
80 165 0 −2 0 0
100 210 20 43 860 400
120 250 40 83 3320 1600
Somme : = 8400 = 4000
P P

Pn
∗ 1 (xi − x̄)(yi − ȳ ) 8400
w = i=P n 2
= = 2.1
i=1 (xi − x̄) 4000

☞ À retenir
Le coecient w ∗ = 2.1 signie que, selon le modèle appris, une augmentation de 1 m2 est associée
à une augmentation moyenne prédite de 2.1 k$ du prix.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 34/46
Exemple complet  étape 3 : calculer b∗ et prédire

Étape 3 : calculer b∗
b ∗ = ȳ − w ∗ x̄ = 167 − 2.1 × 80 = 167 − 168 = −1
Le modèle nal obtenu est donc :
ŷ = 2.1x − 1
Étape 4 : prédire le prix pour 85 m2
ŷ (85) = 2.1 × 85 − 1 = 178.5 − 1 = 177.5 (k$)

Exemple : Interprétation de la prédiction


Selon ce modèle linéaire ajusté sur les 5 ventes observées, un appartement de 85 m2 est estimé à
environ 177.5 k$ = 177 500 $

☞ À retenir
Vérication importante : la droite de régression passe bien par le point moyen (x̄, ȳ ) = (80, 167)
En eet : ŷ (80) = 2.1 × 80 − 1 = 167
C'est une propriété fondamentale de la régression linéaire simple avec biais.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 35/46


Vérication : calculer le MSE du modèle optimal

Exemple : MSE de la droite ŷ = 2.1x −1


Rappel : avec la droite ŷ = 2x + 5, on avait
xi yi ŷi = 2.1xi − 1 (yi − ŷi )2
obtenu
40 80 83 9 J = 20
60 130 125 25
80 165 167 4 Le modèle appris par minimisation donne ici
100 210 209 1
120 250 251 1 J=8
Somme : 40
Il ajuste donc les données mieux selon le
40 critère MSE.
J(2.1, −1) = =8
5

Pr. ADDOU ML  S2  Régression linéaire (1/3) 36/46


Vérication : calculer le MSE du modèle optimal

Le fait que le MSE optimal soit non nul signie simplement que les données ne sont pas parfaitement
alignées sur une droite. Il reste donc une erreur de modélisation / approximation, qui peut provenir
:

de facteurs explicatifs non inclus dans le modèle,


d'une relation non parfaitement linéaire,
ou de variabilité intrinsèque dans les données.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 37/46


Vérication : calculer le MSE du modèle optimal

Le fait que le MSE optimal soit non nul signie simplement que les données ne sont pas parfaitement
alignées sur une droite. Il reste donc une erreur de modélisation / approximation, qui peut provenir
:

de facteurs explicatifs non inclus dans le modèle,


d'une relation non parfaitement linéaire,
ou de variabilité intrinsèque dans les données.

☞ À retenir
Minimiser le MSE ne signie pas rendre l'erreur nulle, mais trouver la meilleure droite possible
parmi toutes les droites candidates selon ce critère.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 37/46


✎ TD  Exercice 1  régression linéaire à la main
On observe les résultats de 4 étudiants : nombre d'heures d'étude (x ) et note à l'examen (y ).

Heures d'étude (x ) Note sur 20 (y )


2 6
4 10
6 13
8 17
1 Calculer les moyennes empiriques x̄ et ȳ .
Pn
2 Calculer w ∗ = (x −x̄)(yi −ȳ )
P1n i
i=
(x −x̄)2
en construisant le tableau de calcul.
i=1 i

3 Calculer b∗ = ȳ − w ∗ x̄.
4 Écrire le modèle de régression obtenu : ŷ = w ∗ x + b∗ .
5 Prédire la note d'un étudiant qui étudie 5 heures.
6 Calculer le MSE du modèle et interpréter sa valeur.
7 Selon le modèle, quelle serait la note prédite pour un étudiant qui n'étudie pas du tout (x = 0) ?
Cette prédiction a-t-elle un sens en pratique ?
Pr. ADDOU ML  S2  Régression linéaire (1/3) 38/46
✓ Solution  Exercice 1  solution (1/2)
1. Calcul des moyennes empiriques
2+4+6+8 6 + 10 + 13 + 17
x̄ = = 5, ȳ = = 11.5
4 4
2. Calcul de w ∗

xi yi xi − x̄ yi − ȳ (xi − x̄)(yi − ȳ )
2 6 −3 −5.5 16.5
4 10 −1 −1.5 1.5
6 13 1 1.5 1.5 Interprétation : selon le modèle, une heure d'étude
8 17 3 5.5 16.5 supplémentaire est associée à une augmentation
moyenne prédite de 1.8 point.
Somme : 36
3. Calcul de b∗
4 b ∗ = ȳ − w ∗ x̄ = 11.5 − 1.8 × 5 = 11.5 − 9 = 2.5
(xi − x̄)2 = 9 + 1 + 1 + 9 = 20
X

i=1 4. Modèle nal


36
Pn
1 (xi − x̄)(yi − ȳ )
ŷ = 1.8x + 2.5
w∗ = i=
= = 1.8
n 2 20
P
i=1 (xi − x̄)
Pr. ADDOU ML  S2  Régression linéaire (1/3) 39/46
✓ Solution  Exercice 1  solution (2/2)
5. Prédiction pour x = 5
ŷ (5) = 1.8 × 5 + 2.5 = 9 + 2.5 = 11.5 (/20)
Remarque : comme 5 = x̄ , on a toujours
ŷ (x̄) = ȳ .

6. Calcul du MSE

xi yi ŷi (yi − ŷi )2


2 6 6.1 0.01
4 10 9.7 0.09
6 13 13.3 0.09
8 17 16.9 0.01
Somme : 0.20

MSE = 0.420 = 0.05



Le modèle ajuste très bien les données : les résidus sont faibles. RMSE = 0.05 ≈ 0.22
Pr. ADDOU ML  S2  Régression linéaire (1/3) 40/46
✓ Solution  Exercice 1  solution (2/2)
7. Prédiction pour x = 0

ŷ (0) = 1.8 × 0 + 2.5 = 2.5 (/20)


Cette prédiction doit être interprétée avec prudence : le modèle est appris sur des données dans
l'intervalle x ∈ [2, 8]. Prédire en dehors de cet intervalle correspond à une extrapolation, poten-
tiellement peu able.

☞ À retenir
Un modèle de régression est able principalement dans le domaine des données d'entraînement.
L'extrapolation peut conduire à des prédictions peu réalistes.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 41/46


✎ TD  Exercice 2  questions conceptuelles (10 min, discussion)
Répondez par Vrai ou Faux. Justiez chaque réponse en une seule phrase.
1 Dans le modèle ŷ = wx + b, le paramètre w est un hyperparamètre xé par l'utilisateur.
2 La MSE peut prendre une valeur négative.
3 En régression linéaire simple avec biais, la droite de régression passe toujours par le point (x̄, ȳ ).
4 Si MSE = 0, alors le modèle est parfait et généralise forcément bien.
5 L'équation normale reste adaptée même lorsque le nombre de variables explicatives devient très grand
(par exemple d ≈ 106 ).
6 La MSE utilise le carré des résidus pour empêcher que les erreurs positives et négatives s'annulent
entre elles, donner plus de poids aux grandes erreurs, et faciliter l'optimisation.
7 La fonction de coût J(w , b) de la régression linéaire est convexe.
8 Si on multiplie toutes les valeurs cibles yi par 2, alors le coecient optimal w ∗ est lui aussi multiplié
par 2.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 42/46


✓ Solution  Exercice 2
1 ✗ Faux. w est un paramètre appris à partir des données. Un hyperparamètre est xé par l'utilisateur
(ex : taux d'apprentissage).
2 ✗ Faux. MSE = 1 2
i=1 (yi − ŷi ) ≥ 0 car il s'agit d'une somme de carrés.
Pn
n
3 ✓ Vrai. En régression linéaire simple avec biais, b ∗ = ȳ − w ∗ x̄ ⇒ ŷ (x̄) = ȳ .

4 ✗ Faux. Un MSE = 0 sur les données d'entraînement peut indiquer un surapprentissage. La


généralisation doit être évaluée sur des données de test.
5 ✗ Faux. L'équation normale implique le calcul de (X T X )−1 , ce qui devient coûteux lorsque le nombre
de variables est très grand.
6 ✓ Vrai. Le carré des résidus empêche que les erreurs positives et négatives s'annulent entre elles,
accentue l'eet des grandes erreurs, et rend la fonction de coût plus facile à optimiser.
7 ✓ Vrai. La fonction J(w , b) est une somme de carrés, donc une fonction convexe avec un minimum
global unique.
8 ✓ Vrai. Si yi est multiplié par 2, alors le numérateur de
P
(xi − x̄)(yi − ȳ )
w∗ =
(xi − x̄)2
P

est multiplié par 2, tandis que le dénominateur reste inchangé, donc w ∗ est multiplié par 2.
Pr. ADDOU ML  S2  Régression linéaire (1/3) 43/46
Récapitulatif de la Partie 1

☞ À retenir

Idée essentielle
Concept
ŷ = wx + b . Le modèle approxime la relation entre une
Modèle linéaire variable explicative x et une variable cible y.
Ce sont les paramètres appris à partir des données. w
w et b contrôle la pente, b la position verticale de la droite.

MSE 1
n
(yi − wxi − b)2
X
J(w , b) =
n
i=1

Fonction de coût qui mesure l'erreur moyenne quadratique


du modèle.

Pr. ADDOU ML  S2  Régression linéaire (1/3) 44/46


Récapitulatif de la Partie 1

☞ À retenir

Idée essentielle
Concept
Pour empêcher l'annulation entre résidus positifs et négat-
Pourquoi le carré ifs, et pénaliser davantage les grandes erreurs.

La fonction de coût est convexe : elle admet un minimum


Convexité global unique.

Solution analytique
P
∗ (xi − x̄)(yi − ȳ )
w = , b ∗ = ȳ − w ∗ x̄
(xi − x̄)2
P

Formules de la régression linéaire simple.

Forme matricielle θ ∗ = (X T X )−1 X T y


Solution matricielle pour la régression multiple (si XTX
est inversible).
Pr. ADDOU ML  S2  Régression linéaire (1/3) 45/46
Fin de la Partie 1/3
Suite : Partie 2  descente de gradient et régression multiple
Comment trouver ecacement les paramètres optimaux lorsque la solution analytique devient
coûteuse ?

Pause : 10 minutes

Pr. ADDOU ML  S2  Régression linéaire (1/3) 46/46


Module : Machine Learning
Séance 2  Partie 2.1 : La Descente de Gradient

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  S2  Descente de gradient 1/50


Ce que vous allez apprendre dans cette partie
1 Pourquoi on a besoin de la descente de gradient (limites de l'équation normale)
2 L'intuition de l'algorithme (analogie de la montagne)
3 Le calcul du gradient de la MSE (dérivation détaillée pas à pas)
4 L'algorithme formel avec pseudo-code
5 Exemple numérique complet : 5 itérations à la main
6 Le learning rate α : comment le choisir, qu'est-ce qui se passe s'il est trop grand ou trop
petit
7 Critères d'arrêt : quand stopper les itérations
8 3 variantes : Batch, Stochastique (SGD), Mini-Batch
9 Vocabulaire : Époque, itération, batch size

Pr. ADDOU ML  S2  Descente de gradient 2/50


Ce que vous allez apprendre dans cette partie
1 Pourquoi on a besoin de la descente de gradient (limites de l'équation normale)
2 L'intuition de l'algorithme (analogie de la montagne)
3 Le calcul du gradient de la MSE (dérivation détaillée pas à pas)
4 L'algorithme formel avec pseudo-code
5 Exemple numérique complet : 5 itérations à la main
6 Le learning rate α : comment le choisir, qu'est-ce qui se passe s'il est trop grand ou trop
petit
7 Critères d'arrêt : quand stopper les itérations
8 3 variantes : Batch, Stochastique (SGD), Mini-Batch
9 Vocabulaire : Époque, itération, batch size

La descente de gradient est une méthode centrale en apprentissage automatique moderne,


et elle est particulièrement importante en deep learning. Elle intervient dans l'entraînement
de modèles comme la régression logistique et les réseaux de neurones. Maîtriser ce concept
sera essentiel pour la suite du cours.

Pr. ADDOU ML  S2  Descente de gradient 2/50


Rappel : l'équation normale et ses limites

★ Rappel de la Partie 1
On a trouvé une formule exacte pour la régression linéaire.
Dans le cas simple (à une seule variable) :

P
∗ (xi − x̄)(yi − ȳ )
w = , b ∗ = ȳ − w ∗ x̄
(xi − x̄)2
P

En forme matricielle, dans le cas général :

θ ∗ = (X T X )−1 X T y

Si on dispose d'une formule exacte, pourquoi apprendre une autre méthode ?

Pr. ADDOU ML  S2  Descente de gradient 3/50


3 situations où l'équation normale devient limitée

Pr. ADDOU ML  S2  Descente de gradient 4/50


3 situations où l'équation normale devient limitée
1 Trop de features (d très grand)
L'inversion de XTX (taille d × d) coûte environ O(d 3 ) opérations
Ex : si d = 100 000, le calcul devient très coûteux en temps et en mémoire
En NLP, un vocabulaire de 100 000 mots peut produire 100 000 features (TF-IDF)

Pr. ADDOU ML  S2  Descente de gradient 4/50


3 situations où l'équation normale devient limitée
1 Trop de features (d très grand)
L'inversion de XTX (taille d × d) coûte environ O(d 3 ) opérations
Ex : si d = 100 000, le calcul devient très coûteux en temps et en mémoire
En NLP, un vocabulaire de 100 000 mots peut produire 100 000 features (TF-IDF)
2 XTX non inversible ou mal conditionnée
Si les colonnes de X sont linéairement dépendantes
Ex : surface en m2  et surface en pieds2  (pieds2 = 10.76 × m2 )
Alors XTX peut être singulière (pas d'inverse) ou numériquement instable

Pr. ADDOU ML  S2  Descente de gradient 4/50


3 situations où l'équation normale devient limitée
1 Trop de features (d très grand)
L'inversion de XTX (taille d × d) coûte environ O(d 3 ) opérations
Ex : si d = 100 000, le calcul devient très coûteux en temps et en mémoire
En NLP, un vocabulaire de 100 000 mots peut produire 100 000 features (TF-IDF)
2 XTX non inversible ou mal conditionnée
Si les colonnes de X sont linéairement dépendantes
Ex : surface en m2  et surface en pieds2  (pieds2 = 10.76 × m2 )
Alors XTXpeut être singulière (pas d'inverse) ou numériquement instable
3 Modèles sans solution analytique fermée
Pour la régression logistique, les réseaux de neurones et beaucoup d'autres modèles, il
n'existe généralement pas de solution analytique fermée comparable à celle de la régression
linéaire
On utilise alors des méthodes d'optimisation itératives, dont la descente de gradient

Pr. ADDOU ML  S2  Descente de gradient 4/50


3 situations où l'équation normale devient limitée
1 Trop de features (d très grand)
L'inversion de XTX (taille d × d) coûte environ O(d 3 ) opérations
Ex : si d = 100 000, le calcul devient très coûteux en temps et en mémoire
En NLP, un vocabulaire de 100 000 mots peut produire 100 000 features (TF-IDF)
2 XTX non inversible ou mal conditionnée
Si les colonnes de X sont linéairement dépendantes
Ex : surface en m2  et surface en pieds2  (pieds2 = 10.76 × m2 )
Alors XTXpeut être singulière (pas d'inverse) ou numériquement instable
3 Modèles sans solution analytique fermée
Pour la régression logistique, les réseaux de neurones et beaucoup d'autres modèles, il
n'existe généralement pas de solution analytique fermée comparable à celle de la régression
linéaire
On utilise alors des méthodes d'optimisation itératives, dont la descente de gradient
☞ À retenir
L'équation normale est surtout adaptée à la régression linéaire de petite ou moyenne taille. La
descente de gradient est une méthode d'optimisation très générale, particulièrement utile quand le
nombre de features est grand ou quand il n'existe pas de solution analytique fermée.

Pr. ADDOU ML  S2  Descente de gradient 4/50


Équation normale vs Descente de gradient  résumé

Équation normale Descente de gradient


Type Solution analytique (calcul di- Solution itérative
rect)

Quand l'utiliser Régression linéaire avec dimen- Quand la dimension est grande
sion modérée ou qu'il n'existe pas de solution
analytique fermée

Vitesse Inversion matricielle, souvent Coût par itération souvent de


coûteuse si d est grand l'ordre de O(n·d) en régression
linéaire

Learning rate Pas besoin À choisir (hyperparamètre)

Normalisation Pas indispensable Fortement recommandée


Champ d'application Principalement la régression Modèles formulés comme un
linéaire quadratique problème d'optimisation itéra-
tive (ex. régression logistique,
réseaux de neurones)
Pr. ADDOU ML  S2  Descente de gradient 5/50
L'analogie : descendre une montagne les yeux bandés

Descente de gradient  idée intuitive


Imaginez que vous êtes sur le anc d'une montagne, dans un brouillard épais, et que vous
voulez atteindre un point bas du relief. Que faites-vous ?

Pr. ADDOU ML  S2  Descente de gradient 6/50


L'analogie : descendre une montagne les yeux bandés

Descente de gradient  idée intuitive


Imaginez que vous êtes sur le anc d'une montagne, dans un brouillard épais, et que vous
voulez atteindre un point bas du relief. Que faites-vous ?

Stratégie intuitive, en 3 étapes répétées :


1 Sentir la pente locale pour repérer la direction de plus forte montée → c'est le gradient

2 Faire un pas dans la direction opposée → c'est la mise à jour

3 Répéter jusqu'à ce que la pente devienne très faible → c'est l'idée de la convergence

Pr. ADDOU ML  S2  Descente de gradient 6/50


L'analogie : descendre une montagne les yeux bandés

Descente de gradient  idée intuitive


Imaginez que vous êtes sur le anc d'une montagne, dans un brouillard épais, et que vous
voulez atteindre un point bas du relief. Que faites-vous ?

Stratégie intuitive, en 3 étapes répétées :


1 Sentir la pente locale pour repérer la direction de plus forte montée → c'est le gradient

2 Faire un pas dans la direction opposée → c'est la mise à jour

3 Répéter jusqu'à ce que la pente devienne très faible → c'est l'idée de la convergence

☞ À retenir
Le gradient ∇J pointe vers la direction de la plus forte augmentation locale de J. Pour faire
diminuer J, on avance dans la direction opposée, d'où la mise à jour :

θ ← θ − α∇J

Pr. ADDOU ML  S2  Descente de gradient 6/50


Question : comment a-t-on trouvé la règle de mise à jour ?

★ Idée centrale
On veut minimiser une fonction de coût J(θ).

min J(θ)
θ

La question est :si on est au point courant θ, dans quelle direction faut-il bouger
pour faire diminuer J ?

Pr. ADDOU ML  S2  Descente de gradient 7/50


Question : comment a-t-on trouvé la règle de mise à jour ?

★ Idée centrale
On veut minimiser une fonction de coût J(θ).

min J(θ)
θ

La question est :si on est au point courant θ, dans quelle direction faut-il bouger
pour faire diminuer J ?

☞ À retenir
La règle
θ ← θ − α∇J(θ)
n'est pas choisie au hasard : elle vient d'une approximation locale de la fonction J .

Pr. ADDOU ML  S2  Descente de gradient 7/50


Pourquoi cette formule ?

★ Question fondamentale
La règle de mise à jour
θ ← θ − α∇J(θ)
est au c÷ur de toute la descente de gradient.
Mais d'où vient-elle ?

Pr. ADDOU ML  S2  Descente de gradient 8/50


Pourquoi cette formule ?

★ Question fondamentale
La règle de mise à jour
θ ← θ − α∇J(θ)
est au c÷ur de toute la descente de gradient.
Mais d'où vient-elle ?

Pourquoi y a-t-il un signe moins ?


Pourquoi utilise-t-on le gradient ?

Pourquoi multiplie-t-on par un learning rate α ?

Pr. ADDOU ML  S2  Descente de gradient 8/50


Pourquoi cette formule ?

★ Question fondamentale
La règle de mise à jour
θ ← θ − α∇J(θ)
est au c÷ur de toute la descente de gradient.
Mais d'où vient-elle ?

Pourquoi y a-t-il un signe moins ?


Pourquoi utilise-t-on le gradient ?

Pourquoi multiplie-t-on par un learning rate α ?

☞ À retenir
Cette formule vient d'une idée simple : faire un petit déplacement local qui fait diminuer J le
plus possible.

Pr. ADDOU ML  S2  Descente de gradient 8/50


Idée 1 : faire un petit déplacement

Supposons qu'on soit au point courant θ.


On cherche une nouvelle valeur un peu meilleure :

θnouveau = θ + ∆

Pr. ADDOU ML  S2  Descente de gradient 9/50


Idée 1 : faire un petit déplacement

Supposons qu'on soit au point courant θ.


On cherche une nouvelle valeur un peu meilleure :

θnouveau = θ + ∆

Question
Comment choisir le petit déplacement ∆ pour que

J(θ + ∆) < J(θ) ?

Pr. ADDOU ML  S2  Descente de gradient 9/50


Idée 1 : faire un petit déplacement

Supposons qu'on soit au point courant θ.


On cherche une nouvelle valeur un peu meilleure :

θnouveau = θ + ∆

Question
Comment choisir le petit déplacement ∆ pour que

J(θ + ∆) < J(θ) ?

Exemple : Idée intuitive


On ne cherche pas encore directement le minimum global. On cherche d'abord : dans quelle
direction locale faut-il partir pour faire baisser la fonction ?

Pr. ADDOU ML  S2  Descente de gradient 9/50


Idée 2 : approximation locale de la fonction
Près du point courant θ, on peut approximer la fonction par son développement du premier
ordre :
J(θ + ∆) ≈ J(θ) + ∇J(θ)T ∆

Pr. ADDOU ML  S2  Descente de gradient 10/50


Idée 2 : approximation locale de la fonction
Près du point courant θ, on peut approximer la fonction par son développement du premier
ordre :
J(θ + ∆) ≈ J(θ) + ∇J(θ)T ∆

Math  Conséquence
P

La variation locale de la fonction est approximativement :

J(θ + ∆) − J(θ) ≈ ∇J(θ)T ∆

Donc pour faire diminuer J , on veut que :

∇J(θ)T ∆ < 0

Pr. ADDOU ML  S2  Descente de gradient 10/50


Idée 2 : approximation locale de la fonction
Près du point courant θ, on peut approximer la fonction par son développement du premier
ordre :
J(θ + ∆) ≈ J(θ) + ∇J(θ)T ∆

Math  Conséquence
P

La variation locale de la fonction est approximativement :

J(θ + ∆) − J(θ) ≈ ∇J(θ)T ∆

Donc pour faire diminuer J , on veut que :

∇J(θ)T ∆ < 0

☞ À retenir
Le gradient ∇J(θ) contient l'information locale sur la variation de J autour du point courant.

Pr. ADDOU ML  S2  Descente de gradient 10/50


Quelle direction fait baisser J le plus vite ?

On xe la taille du petit déplacement ∥∆∥ et on cherche la direction la plus favorable.

Pr. ADDOU ML  S2  Descente de gradient 11/50


Quelle direction fait baisser J le plus vite ?

On xe la taille du petit déplacement ∥∆∥ et on cherche la direction la plus favorable.

★ Résultat clé
Parmi tous les vecteurs ∆ de même norme, celui qui rend

∇J(θ)T ∆

le plus petit est celui qui pointe dans la direction opposée au gradient :

∆ ∝ −∇J(θ)

Pr. ADDOU ML  S2  Descente de gradient 11/50


Quelle direction fait baisser J le plus vite ?

On xe la taille du petit déplacement ∥∆∥ et on cherche la direction la plus favorable.

★ Résultat clé
Parmi tous les vecteurs ∆ de même norme, celui qui rend

∇J(θ)T ∆

le plus petit est celui qui pointe dans la direction opposée au gradient :

∆ ∝ −∇J(θ)

Conclusion :
∇J(θ) = direction de la plus forte augmentation locale
−∇J(θ) = direction de la plus forte diminution locale

Pr. ADDOU ML  S2  Descente de gradient 11/50


Pourquoi la direction opposée au gradient ?
On sait que : ∇J(θ)T ∆ = ∥∇J(θ)∥ ∥∆∥ cos ϕ
où ϕ est l'angle entre ∇J(θ) et ∆.

Pr. ADDOU ML  S2  Descente de gradient 12/50


Pourquoi la direction opposée au gradient ?
On sait que : ∇J(θ)T ∆ = ∥∇J(θ)∥ ∥∆∥ cos ϕ
où ϕ est l'angle entre ∇J(θ) et ∆.

★ Point clé
Si on xe la taille du déplacement ∥∆∥, alors le terme

∇J(θ)T ∆

est minimal quand cos ϕ = −1 ⇐⇒ ϕ = 180◦

Pr. ADDOU ML  S2  Descente de gradient 12/50


Pourquoi la direction opposée au gradient ?
On sait que : ∇J(θ)T ∆ = ∥∇J(θ)∥ ∥∆∥ cos ϕ
où ϕ est l'angle entre ∇J(θ) et ∆.

★ Point clé
Si on xe la taille du déplacement ∥∆∥, alors le terme

∇J(θ)T ∆

est minimal quand cos ϕ = −1 ⇐⇒ ϕ = 180◦

Donc le meilleur petit déplacement est dans la direction opposée au gradient :

∆ ∝ −∇J(θ)

Pr. ADDOU ML  S2  Descente de gradient 12/50


Pourquoi la direction opposée au gradient ?
On sait que : ∇J(θ)T ∆ = ∥∇J(θ)∥ ∥∆∥ cos ϕ
où ϕ est l'angle entre ∇J(θ) et ∆.

★ Point clé
Si on xe la taille du déplacement ∥∆∥, alors le terme

∇J(θ)T ∆

est minimal quand cos ϕ = −1 ⇐⇒ ϕ = 180◦

Donc le meilleur petit déplacement est dans la direction opposée au gradient :

∆ ∝ −∇J(θ)
☞ À retenir
Le gradient pointe vers la plus forte augmentation locale de J . La direction opposée donne la plus
forte diminution locale.
Pr. ADDOU ML  S2  Descente de gradient 12/50
Que signie ∆ ∝ −∇J(θ)?
Notation
∆ ∝ −∇J(θ)
signie que le vecteur ∆ a la même direction que −∇J(θ).

Pr. ADDOU ML  S2  Descente de gradient 13/50


Que signie ∆ ∝ −∇J(θ)?
Notation
∆ ∝ −∇J(θ)
signie que le vecteur ∆ a la même direction que −∇J(θ).

Autrement dit, il existe un scalaire α>0 tel que :

∆ = −α∇J(θ)

Pr. ADDOU ML  S2  Descente de gradient 13/50


Que signie ∆ ∝ −∇J(θ)?
Notation
∆ ∝ −∇J(θ)
signie que le vecteur ∆ a la même direction que −∇J(θ).

Autrement dit, il existe un scalaire α>0 tel que :

∆ = −α∇J(θ)
Exemple : Interprétation
−∇J(θ) donne la direction
α donne la taille du pas

Pr. ADDOU ML  S2  Descente de gradient 13/50


Que signie ∆ ∝ −∇J(θ)?
Notation
∆ ∝ −∇J(θ)
signie que le vecteur ∆ a la même direction que −∇J(θ).

Autrement dit, il existe un scalaire α>0 tel que :

∆ = −α∇J(θ)
Exemple : Interprétation
−∇J(θ) donne la direction
α donne la taille du pas

En remplaçant dans
θnouveau = θ + ∆
on obtient :
θnouveau = θ − α∇J(θ)
Pr. ADDOU ML  S2  Descente de gradient 13/50
Pourquoi le signe moins ?

Lecture :
10
∇J montée
pointe vers la

nous voulons faire baisser J


+∇J
J(w )

on avance donc dans la direction


5
opposée

−∇J
+∇J ⇒ monter
0
−1 0 1 2 3 4 5 6
−∇J ⇒ descendre
w

Pr. ADDOU ML  S2  Descente de gradient 14/50


Exemple 1 : cas en une dimension
Prenons :
J(w ) = (w − 3)2

Pr. ADDOU ML  S2  Descente de gradient 15/50


Exemple 1 : cas en une dimension
Prenons :
J(w ) = (w − 3)2
Alors :
J ′ (w ) = 2(w − 3)
La règle de mise à jour devient :
w ← w − αJ ′ (w )

Pr. ADDOU ML  S2  Descente de gradient 15/50


Exemple 1 : cas en une dimension
Prenons :
J(w ) = (w − 3)2
Alors :
J ′ (w ) = 2(w − 3)
La règle de mise à jour devient :
w ← w − αJ ′ (w )

Exemple : Si w = 0

J ′ (0) = 2(0 − 3) = −6
Donc :
w ← w − α(−6) = w + 6α
Le paramètre augmente : on va vers la droite, donc vers le minimum w ∗ = 3.

Pr. ADDOU ML  S2  Descente de gradient 15/50


Exemple 2 : autre côté du minimum
Avec la même fonction :

J(w ) = (w − 3)2 ⇒ J ′ (w ) = 2(w − 3)


Exemple : Si w = 5

J ′ (5) = 2(5 − 3) = 4
Donc :
w ← w − 4α
Le paramètre diminue : on va vers la gauche, donc encore vers le minimum.

Pr. ADDOU ML  S2  Descente de gradient 16/50


Exemple 2 : autre côté du minimum
Avec la même fonction :

J(w ) = (w − 3)2 ⇒ J ′ (w ) = 2(w − 3)


Exemple : Si w = 5

J ′ (5) = 2(5 − 3) = 4
Donc :
w ← w − 4α
Le paramètre diminue : on va vers la gauche, donc encore vers le minimum.

☞ À retenir
En une dimension :

si J ′ (w ) > 0, on diminue w

si J (w ) < 0, on augmente w
Pr. fait
La formule ADDOU
cela automatiquement. ML  S2  Descente de gradient 16/50
Rôle du learning rate α
Savoir la direction ne sut pas. Il faut aussi choisir combien avancer.
On note cette taille par α > 0.
On prend donc :
∆ = −α∇J(θ)

Pr. ADDOU ML  S2  Descente de gradient 17/50


Rôle du learning rate α
Savoir la direction ne sut pas. Il faut aussi choisir combien avancer.
On note cette taille par α > 0.
On prend donc :
∆ = −α∇J(θ)
En remplaçant dans
θnouveau = θ + ∆

Pr. ADDOU ML  S2  Descente de gradient 17/50


Rôle du learning rate α
Savoir la direction ne sut pas. Il faut aussi choisir combien avancer.
On note cette taille par α > 0.
On prend donc :
∆ = −α∇J(θ)
En remplaçant dans
θnouveau = θ + ∆
on obtient :
θnouveau = θ − α∇J(θ)

Pr. ADDOU ML  S2  Descente de gradient 17/50


Rôle du learning rate α
Savoir la direction ne sut pas. Il faut aussi choisir combien avancer.
On note cette taille par α > 0.
On prend donc :
∆ = −α∇J(θ)
En remplaçant dans
θnouveau = θ + ∆
on obtient :
θnouveau = θ − α∇J(θ)

☞ À retenir

θ ← θ − α∇J(θ)
C'est la règle de la descente de gradient.
Le gradient donne la direction. Le learning rate α xe la longueur du pas.

Pr. ADDOU ML  S2  Descente de gradient 17/50


Résumé nal : origine de la formule

☞ À retenir
1 On veut minimiser J(θ)
2 On fait un petit déplacement ∆
3 Localement :
J(θ + ∆) ≈ J(θ) + ∇J(θ)T ∆
4 Pour faire baisser J, on choisit la direction opposée au gradient

5 On choisit une taille de pas α


6 On obtient :
θ ← θ − α∇J(θ)

Pr. ADDOU ML  S2  Descente de gradient 18/50


Résumé nal : origine de la formule

☞ À retenir
1 On veut minimiser J(θ)
2 On fait un petit déplacement ∆
3 Localement :
J(θ + ∆) ≈ J(θ) + ∇J(θ)T ∆
4 Pour faire baisser J, on choisit la direction opposée au gradient

5 On choisit une taille de pas α


6 On obtient :
θ ← θ − α∇J(θ)

★ Phrase à retenir
Le gradient indique la direction de plus forte augmentation locale de la fonction de coût.
Pour la faire diminuer, on se déplace donc dans la direction opposée, avec un pas de taille α.

Pr. ADDOU ML  S2  Descente de gradient 18/50


Rappel : la MSE et ce qu'on doit dériver

Math  Rappel de la Partie 1


P

Notre fonction de coût est la MSE :


n
1
(yi − (wxi + b))2
X
J(w , b) =
n
i=1
| {z }
ŷi

∂J ∂J
Pour la descente de gradient, on a besoin de calculer
∂w et ∂b .

Pr. ADDOU ML  S2  Descente de gradient 19/50


Rappel : la MSE et ce qu'on doit dériver

Math  Rappel de la Partie 1


P

Notre fonction de coût est la MSE :


n
1
(yi − (wxi + b))2
X
J(w , b) =
n
i=1
| {z }
ŷi

∂J ∂J
Pour la descente de gradient, on a besoin de calculer
∂w et ∂b .

★ Pourquoi cette étape est importante ?


Sans savoir calculer le gradient, on ne peut pas appliquer la descente de gradient aux modèles
formulés comme un problème d'optimisation diérentiable. C'est une compétence fondamen-
tale.

Pr. ADDOU ML  S2  Descente de gradient 19/50


Rappel : la MSE et ce qu'on doit dériver

Math  Rappel de la Partie 1


P

Notre fonction de coût est la MSE :


n
1
(yi − (wxi + b))2
X
J(w , b) =
n
i=1
| {z }
ŷi

∂J ∂J
Pour la descente de gradient, on a besoin de calculer
∂w et ∂b .

★ Pourquoi cette étape est importante ?


Sans savoir calculer le gradient, on ne peut pas appliquer la descente de gradient aux modèles
formulés comme un problème d'optimisation diérentiable. C'est une compétence fondamen-
tale.

Rappel math nécessaire : la règle de chaîne.


Si f (u) = u 2 et u = yi − (wxi + b), alors :
∂f
∂w = ∂f
∂u · ∂u
∂w = 2u · (−xi )

Pr. ADDOU ML  S2  Descente de gradient 19/50


Dérivation de ∂J
∂w
 pas à pas

Math  Calcul détaillé


P

 2
1
Étape 1 :
Pn
écrivons J en détail : J(w , b) = n i=1 yi − wxi − b
| {z }
ui
Dérivation de ∂J
∂w
 pas à pas

Math  Calcul détaillé


P

 2
1
Étape 1 :
Pn
écrivons J en détail : J(w , b) = n i=1 yi − wxi − b
| {z }
ui

1
Étape 2 : ui2
∂J Pn ∂

dérivons par rapport à w. Par linéarité de la dérivation :
∂w = n i=1 ∂w
Dérivation de ∂J
∂w
 pas à pas

Math  Calcul détaillé


P

 2
1
Étape 1 :
Pn
écrivons J en détail : J(w , b) = n i=1 yi − wxi − b
| {z }
ui

1
Étape 2 : ui2
∂J Pn ∂

dérivons par rapport à w. Par linéarité de la dérivation :
∂w = n i=1 ∂w

Étape 3 : ∂ 2 = 2ui · ∂ui


appliquons la règle de chaîne :
∂w (ui ) ∂w
∂ui
Or ui = yi − wxi − b , donc :
∂w = −xi
Dérivation de ∂J
∂w
 pas à pas

Math  Calcul détaillé


P

 2
1
Étape 1 :
Pn
écrivons J en détail : J(w , b) = n i=1 yi − wxi − b
| {z }
ui

1
Étape 2 : ui2
∂J Pn ∂

dérivons par rapport à w. Par linéarité de la dérivation :
∂w = n i=1 ∂w

Étape 3 : ∂ 2 = 2ui · ∂ui


appliquons la règle de chaîne :
∂w (ui ) ∂w
∂ui
Or ui = yi − wxi − b , donc :
∂w = −xi

1 −2
Étape 4 : ∂J Pn Pn
on obtient :
∂w = n i=1 2(yi − wxi − b)(−xi ) = n i=1 xi (yi − wxi − b)

Pr. ADDOU ML  S2  Descente de gradient 20/50


Dérivation de ∂J
∂b
 même méthode

Math  Calcul détaillé


P

Même procédure, mais on dérive par rapport à b :

n
∂J 1 X ∂ui
= 2(yi − wxi − b) ·
∂b n ∂b
i=1 |{z}
=−1

∂ui
Car ui = yi − wxi − b , donc
∂b = −1.
Dérivation de ∂J
∂b
 même méthode

Math  Calcul détaillé


P

Même procédure, mais on dérive par rapport à b :

n
∂J 1 X ∂ui
= 2(yi − wxi − b) ·
∂b n ∂b
i=1 |{z}
=−1

∂ui
Car ui = yi − wxi − b , donc
∂b = −1.
n
∂J −2 X
= (yi − wxi − b)
∂b n
i=1

Pr. ADDOU ML  S2  Descente de gradient 21/50


les deux gradients à retenir

Résumé  les deux gradients à retenir :


n n
∂J −2 X  ∂J −2 X 
= xi yi − ŷi = yi − ŷi
∂w n ∂b n
i=1 i=1

où ŷi = wxi + b est la prédiction actuelle.

Pr. ADDOU ML  S2  Descente de gradient 22/50


les deux gradients à retenir

Résumé  les deux gradients à retenir :


n n
∂J −2 X  ∂J −2 X 
= xi yi − ŷi = yi − ŷi
∂w n ∂b n
i=1 i=1

où ŷi = wxi + b est la prédiction actuelle.

☞ À retenir
Interprétation : ∂J ∂J
∂b dépend de la moyenne des erreurs, tandis que ∂w dépend d'une moyenne des
erreurs pondérées par les valeurs xi . La mise à jour θ ← θ − α∇J ajuste donc w et b dans la direction
qui fait diminuer la MSE.

Pr. ADDOU ML  S2  Descente de gradient 22/50


L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
Répéter :
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
Répéter :
1 Calculer les prédictions : ŷi = wxi + b pour i = 1, . . . , n
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
Répéter :
1 Calculer les prédictions : ŷi = wxi + b pour i = 1, . . . , n
2 Calculer les erreurs : ei = yi − ŷi pour i = 1, . . . , n
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
Répéter :
1 Calculer les prédictions : ŷi = wxi + b pour i = 1, . . . , n
2 Calculer les erreurs : ei = yi − ŷi pour i = 1, . . . , n
3 Calculer les gradients :
n n
∂J −2 X ∂J −2 X
= xi e i = ei
∂w n ∂b n
i=1 i=1
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
Répéter :
1 Calculer les prédictions : ŷi = wxi + b pour i = 1, . . . , n
2 Calculer les erreurs : ei = yi − ŷi pour i = 1, . . . , n
3 Calculer les gradients :
n n
∂J −2 X ∂J −2 X
= xi e i = ei
∂w n ∂b n
i=1 i=1

4 Mettre à jour simultanément :


∂J ∂J
w ←w −α b ←b−α
∂w ∂b
L'algorithme complet de la descente de gradient
Batch Gradient Descent  algorithme
Entrées : données (x1 , y1 ), . . . , (xn , yn ), learning rate α, critère d'arrêt.
Initialisation : choisir une valeur initiale pour w et b (par exemple w = 0, b = 0 en
régression linéaire).
Répéter :
1 Calculer les prédictions : ŷi = wxi + b pour i = 1, . . . , n
2 Calculer les erreurs : ei = yi − ŷi pour i = 1, . . . , n
3 Calculer les gradients :
n n
∂J −2 X ∂J −2 X
= xi e i = ei
∂w n ∂b n
i=1 i=1

4 Mettre à jour simultanément :


∂J ∂J
w ←w −α b ←b−α
∂w ∂b
Jusqu'à : convergence ou nombre maximal d'itérations atteint.
Pr. ADDOU ML  S2  Descente de gradient 23/50
Point crucial : mise à jour simultanée

Attention ! Les deux gradients doivent être calculés au même point courant (wt , bt ), puis
les paramètres sont mis à jour ensemble :

(wt+1 , bt+1 ) = (wt , bt ) − α∇J(wt , bt )

Pr. ADDOU ML  S2  Descente de gradient 24/50


Point crucial : mise à jour simultanée

Attention ! Les deux gradients doivent être calculés au même point courant (wt , bt ), puis
les paramètres sont mis à jour ensemble :

(wt+1 , bt+1 ) = (wt , bt ) − α∇J(wt , bt )

✓ Correct : simultané

grad_w = -2/n * sum(x*e)


grad_b = -2/n * sum(e)
w = w - alpha * grad_w
b = b - alpha * grad_b

Pr. ADDOU ML  S2  Descente de gradient 24/50


Point crucial : mise à jour simultanée

Attention ! Les deux gradients doivent être calculés au même point courant (wt , bt ), puis
les paramètres sont mis à jour ensemble :

(wt+1 , bt+1 ) = (wt , bt ) − α∇J(wt , bt )

✓ Correct : simultané ✗ À éviter ici : mise à jour séquentielle


grad_w = -2/n * sum(x*e) grad_w = -2/n * sum(x*e)
grad_b = -2/n * sum(e) w = w - alpha * grad_w
w = w - alpha * grad_w recalculer ensuite grad_b avec le nouveau w
b = b - alpha * grad_b b = b - alpha * grad_b

Pr. ADDOU ML  S2  Descente de gradient 24/50


Point crucial : mise à jour simultanée

Attention ! Les deux gradients doivent être calculés au même point courant (wt , bt ), puis
les paramètres sont mis à jour ensemble :

(wt+1 , bt+1 ) = (wt , bt ) − α∇J(wt , bt )

✓ Correct : simultané ✗ À éviter ici : mise à jour séquentielle


grad_w = -2/n * sum(x*e) grad_w = -2/n * sum(x*e)
grad_b = -2/n * sum(e) w = w - alpha * grad_w
w = w - alpha * grad_w recalculer ensuite grad_b avec le nouveau w
b = b - alpha * grad_b b = b - alpha * grad_b

Exemple : Pourquoi c'est important


Si on met à jour w avant de calculer le gradient par rapport à b, alors les deux gradients ne cor-
respondent plus au même point (wt , bt ). On ne suit donc plus exactement la direction de descente
donnée par le gradient de J au point courant.

Pr. ADDOU ML  S2  Descente de gradient 24/50


Exemple numérique  données et initialisation

Exemple : Exemple simple : 2 points, α = 0.1


Données :

xi yi
1 2
2 3

On utilise le modèle : ŷi = wxi + b P


1 2 2
et la fonction de coût : J(w , b) =
2 i=1 (yi − ŷi )
Initialisation : w0 = 0, b0 = 0, α = 0.1.
★ Objectif
Nous allons calculer les deux premières itérations à la main. Ici, les nombres sont volon-
tairement simples pour bien comprendre le mécanisme.

Pr. ADDOU ML  S2  Descente de gradient 25/50


Itération 1  calcul des erreurs et des gradients

Pr. ADDOU ML  S2  Descente de gradient 26/50


Itération 1  calcul des erreurs et des gradients
Étape 1 : avec w0 = 0 et b0 = 0 :

ŷ1 = 0 × 1 + 0 = 0, ŷ2 = 0 × 2 + 0 = 0

Pr. ADDOU ML  S2  Descente de gradient 26/50


Itération 1  calcul des erreurs et des gradients
Étape 1 : avec w0 = 0 et b0 = 0 :

ŷ1 = 0 × 1 + 0 = 0, ŷ2 = 0 × 2 + 0 = 0
Étape 2 : erreurs :

e1 = y1 − ŷ1 = 2 − 0 = 2, e2 = y2 − ŷ2 = 3 − 0 = 3

Pr. ADDOU ML  S2  Descente de gradient 26/50


Itération 1  calcul des erreurs et des gradients
Étape 1 : avec w0 = 0 et b0 = 0 :

ŷ1 = 0 × 1 + 0 = 0, ŷ2 = 0 × 2 + 0 = 0
Étape 2 : erreurs :

e1 = y1 − ŷ1 = 2 − 0 = 2, e2 = y2 − ŷ2 = 3 − 0 = 3
Étape 3 : gradients :
2
∂J −2 X
× 2 + 2 × 3 = −(2 + 6) = -8

= xi ei = − 1
∂w 2
i=1
2
∂J −2 X
= ei = −(2 + 3) = -5
∂b 2
i=1

Pr. ADDOU ML  S2  Descente de gradient 26/50


Itération 1  calcul des erreurs et des gradients
Étape 1 : avec w0 = 0 et b0 = 0 :

ŷ1 = 0 × 1 + 0 = 0, ŷ2 = 0 × 2 + 0 = 0
Étape 2 : erreurs :

e1 = y1 − ŷ1 = 2 − 0 = 2, e2 = y2 − ŷ2 = 3 − 0 = 3
Étape 3 : gradients :
2
∂J −2 X
× 2 + 2 × 3 = −(2 + 6) = -8

= xi ei = − 1
∂w 2
i=1
2
∂J −2 X
= ei = −(2 + 3) = -5
∂b 2
i=1

☞ À retenir
∂J ∂J
Au point initial (w0 , b0 ) = (0, 0), les deux gradients sont négatifs :
∂w = −8, ∂b = −5

Pr. ADDOU ML  S2  Descente de gradient 26/50


Itération 1  mise à jour
Mise à jour : ∂J
w1 = w0 − α = 0 − 0.1 × (−8) = 0.8
∂w
∂J
b1 = b0 − α = 0 − 0.1 × (−5) = 0.5
∂b

Pr. ADDOU ML  S2  Descente de gradient 27/50


Itération 1  mise à jour
Mise à jour : ∂J
w1 = w0 − α = 0 − 0.1 × (−8) = 0.8
∂w
∂J
b1 = b0 − α = 0 − 0.1 × (−5) = 0.5
∂b
Nouvelle fonction de coût :
Avec (w1 , b1 ) = (0.8, 0.5) : ŷ1 = 0.8 × 1 + 0.5 = 1.3, ŷ2 = 0.8 × 2 + 0.5 = 2.1
Donc :
 
1 1
(2 − 1.3)2 + (3 − 2.1)2 = 2 + 0.92 = 21 (0.49 + 0.81) = 0.65

J(w1 , b1 ) = 2 2 0.7

J(w0 , b0 ) = 12 (22 + 32 ) = 13
2 = 6.5

Pr. ADDOU ML  S2  Descente de gradient 27/50


Itération 1  mise à jour
Mise à jour : ∂J
w1 = w0 − α = 0 − 0.1 × (−8) = 0.8
∂w
∂J
b1 = b0 − α = 0 − 0.1 × (−5) = 0.5
∂b
Nouvelle fonction de coût :
Avec (w1 , b1 ) = (0.8, 0.5) : ŷ1 = 0.8 × 1 + 0.5 = 1.3, ŷ2 = 0.8 × 2 + 0.5 = 2.1
Donc :
 
1 1
(2 − 1.3)2 + (3 − 2.1)2 = 2 + 0.92 = 21 (0.49 + 0.81) = 0.65

J(w1 , b1 ) = 2 2 0.7

J(w0 , b0 ) = 12 (22 + 32 ) = 13
2 = 6.5

☞ À retenir
J0 = 6.5 −→ J1 = 0.65 La fonction de coût a donc fortement diminué dès la première itération.

Pr. ADDOU ML  S2  Descente de gradient 27/50


Itération 2  encore une fois à la main
On repart de : w1 = 0.8, b1 = 0.5

Pr. ADDOU ML  S2  Descente de gradient 28/50


Itération 2  encore une fois à la main
On repart de : w1 = 0.8, b1 = 0.5
Prédictions :
ŷ1 = 0.8 × 1 + 0.5 = 1.3, ŷ2 = 0.8 × 2 + 0.5 = 2.1

Pr. ADDOU ML  S2  Descente de gradient 28/50


Itération 2  encore une fois à la main
On repart de : w1 = 0.8, b1 = 0.5
Prédictions :
ŷ1 = 0.8 × 1 + 0.5 = 1.3, ŷ2 = 0.8 × 2 + 0.5 = 2.1
Erreurs :
e1 = 2 − 1.3 = 0.7, e2 = 3 − 2.1 = 0.9

Pr. ADDOU ML  S2  Descente de gradient 28/50


Itération 2  encore une fois à la main
On repart de : w1 = 0.8, b1 = 0.5
Prédictions :
ŷ1 = 0.8 × 1 + 0.5 = 1.3, ŷ2 = 0.8 × 2 + 0.5 = 2.1
Erreurs :
e1 = 2 − 1.3 = 0.7, e2 = 3 − 2.1 = 0.9
Gradients :
∂J
× 0.7 + 2 × 0.9 = −(0.7 + 1.8) = -2.5

=− 1
∂w
∂J
= −(0.7 + 0.9) = -1.6
∂b

Pr. ADDOU ML  S2  Descente de gradient 28/50


Itération 2  encore une fois à la main
On repart de : w1 = 0.8, b1 = 0.5
Prédictions :
ŷ1 = 0.8 × 1 + 0.5 = 1.3, ŷ2 = 0.8 × 2 + 0.5 = 2.1
Erreurs :
e1 = 2 − 1.3 = 0.7, e2 = 3 − 2.1 = 0.9
Gradients :
∂J
× 0.7 + 2 × 0.9 = −(0.7 + 1.8) = -2.5

=− 1
∂w
∂J
= −(0.7 + 0.9) = -1.6
∂b
Mise à jour :
w2 = 0.8 − 0.1 × (−2.5) = 1.05

b2 = 0.5 − 0.1 × (−1.6) = 0.66


Pr. ADDOU ML  S2  Descente de gradient 28/50
Itération 2  valeur de la fonction de coût
Avec (w2 , b2 ) = (1.05, 0.66) : ŷ1 = 1.05 × 1 + 0.66 = 1.71, ŷ2 = 1.05 × 2 + 0.66 = 2.76

Pr. ADDOU ML  S2  Descente de gradient 29/50


Itération 2  valeur de la fonction de coût
Avec (w2 , b2 ) = (1.05, 0.66) : ŷ1 = 1.05 × 1 + 0.66 = 1.71, ŷ2 = 1.05 × 2 + 0.66 = 2.76
Donc :
1

(2 − 1.71)2 + (3 − 2.76)2

J(w2 , b2 ) =
2

1 2
 1
= 0.29 + 0.242 = (0.0841 + 0.0576) = 0.07085
2 2

Pr. ADDOU ML  S2  Descente de gradient 29/50


Itération 2  valeur de la fonction de coût
Avec (w2 , b2 ) = (1.05, 0.66) : ŷ1 = 1.05 × 1 + 0.66 = 1.71, ŷ2 = 1.05 × 2 + 0.66 = 2.76
Donc :
1

(2 − 1.71)2 + (3 − 2.76)2

J(w2 , b2 ) =
2

1 2
 1
= 0.29 + 0.242 = (0.0841 + 0.0576) = 0.07085
2 2

Itération (w , b) J(w , b)
0 (0, 0) 6.5
1 (0.8, 0.5) 0.65
2 (1.05, 0.66) 0.07085

Pr. ADDOU ML  S2  Descente de gradient 29/50


Itération 2  valeur de la fonction de coût
Avec (w2 , b2 ) = (1.05, 0.66) : ŷ1 = 1.05 × 1 + 0.66 = 1.71, ŷ2 = 1.05 × 2 + 0.66 = 2.76
Donc :
1

(2 − 1.71)2 + (3 − 2.76)2

J(w2 , b2 ) =
2

1 2
 1
= 0.29 + 0.242 = (0.0841 + 0.0576) = 0.07085
2 2

Itération (w , b) J(w , b)
0 (0, 0) 6.5
1 (0.8, 0.5) 0.65
2 (1.05, 0.66) 0.07085

☞ À retenir
On voit clairement que la descente de gradient fait diminuer la fonction de coût à chaque itération.

Pr. ADDOU ML  S2  Descente de gradient 29/50


Interprétation et convergence

Exemple : Que nous montre cet exemple ?


On part d'un modèle très mauvais : w0 = 0, b0 = 0
On calcule les erreurs

Les erreurs donnent les gradients

Les gradients permettent de corriger w et b


À chaque itération, J(w , b) diminue

Pr. ADDOU ML  S2  Descente de gradient 30/50


Interprétation et convergence

Exemple : Que nous montre cet exemple ?


On part d'un modèle très mauvais : w0 = 0, b0 = 0
On calcule les erreurs

Les erreurs donnent les gradients

Les gradients permettent de corriger w et b


À chaque itération, J(w , b) diminue

☞ À retenir
Cet exemple n'a pas été choisi pour être réaliste, mais pour être simple à calculer à la main.
L'objectif est de comprendre clairement le mécanisme de la descente de gradient avant de passer à
des cas plus grands.

Pr. ADDOU ML  S2  Descente de gradient 30/50


Le learning rate α  l'hyperparamètre le plus important

α contrôle la taille de chaque pas


α petit → petits pas prudents → convergence souvent plus stable mais lente
α grand → pas plus grands → progression potentiellement plus rapide mais plus risquée
α trop grand → les pas peuvent dépasser la zone du minimum → oscillations ou divergence

Pr. ADDOU ML  S2  Descente de gradient 31/50


Le learning rate α  l'hyperparamètre le plus important

α contrôle la taille de chaque pas


α petit → petits pas prudents → convergence souvent plus stable mais lente
α grand → pas plus grands → progression potentiellement plus rapide mais plus risquée
α trop grand → les pas peuvent dépasser la zone du minimum → oscillations ou divergence

★ Question cruciale
Que se passe-t-il concrètement quand α est trop petit, bien choisi, ou trop grand ? Regardons
les 3 cas.

Pr. ADDOU ML  S2  Descente de gradient 31/50


Cas 1 : α trop petit

Signes observables :
15
Beaucoup de petits pas

10 J diminue très lentement


J(w )

Il peut falloir un grand nombre


5
encore loin. . . d'itérations
0
La progression est stable, mais souvent
−2 0 2 4
w trop lente en pratique

Pr. ADDOU ML  S2  Descente de gradient 32/50


Cas 1 : α trop petit

Signes observables :
15
Beaucoup de petits pas

10 J diminue très lentement


J(w )

Il peut falloir un grand nombre


5
encore loin. . . d'itérations
0
La progression est stable, mais souvent
−2 0 2 4
w trop lente en pratique

Interprétation : si la courbe J en
fonction des itérations descend
régulièrement mais très lentement, on peut
essayer d'augmenter α.

Pr. ADDOU ML  S2  Descente de gradient 32/50


Cas 2 : α bien choisi

Signes observables :
15
Pas assez grands pour progresser

10
ecacement, mais pas trop grands pour
J(w )

éviter les oscillations


5
J diminue rapidement puis se stabilise
Convergence rapide
0 La convergence est rapide

C'est le comportement recherché


−2 0 2 4
w

Pr. ADDOU ML  S2  Descente de gradient 33/50


Cas 2 : α bien choisi

Signes observables :
15
Pas assez grands pour progresser

10
ecacement, mais pas trop grands pour
J(w )

éviter les oscillations


5
J diminue rapidement puis se stabilise
Convergence rapide
0 La convergence est rapide

C'est le comportement recherché


−2 0 2 4
w

La courbe J vs itérations :
Descente rapide puis plateau.

Pr. ADDOU ML  S2  Descente de gradient 33/50


Cas 3 : α trop grand  DIVERGENCE

40
Signes observables :
DIVERGE !
Les pas sautent d'un côté à l'autre du
30
minimum
J(w )

20
J peut augmenter au lieu de diminuer
10 Les paramètres peuvent devenir très
grands
0
−4 −2 0 2 4 6 8
Dans certains cas, cela peut conduire à
w
des problèmes numériques (overow,
NaN)

Pr. ADDOU ML  S2  Descente de gradient 34/50


Cas 3 : α trop grand  DIVERGENCE

40
Signes observables :
DIVERGE !
Les pas sautent d'un côté à l'autre du
30
minimum
J(w )

20
J peut augmenter au lieu de diminuer
10 Les paramètres peuvent devenir très
grands
0
−4 −2 0 2 4 6 8
Dans certains cas, cela peut conduire à
w
des problèmes numériques (overow,
NaN)

Règle pratique : essayer une valeur plus


petite de α.

Pr. ADDOU ML  S2  Descente de gradient 34/50


Comment choisir α en pratique

Pr. ADDOU ML  S2  Descente de gradient 35/50


Comment choisir α en pratique
Il n'existe pas de formule universelle. On procède souvent par expérimentation :
1 Tester plusieurs valeurs, souvent espacées logarithmiquement :
α ∈ {0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1}
2 Pour chaque α, observer la courbe de J en fonction du nombre d'itérations
3 Retenir une valeur qui fait diminuer J rapidement tout en gardant une convergence stable

α = 0.001 (trop lent)


40 α = 0.01 (bon)
α = 0.5 (instable/diverge)

J
20

0
0 20 40 60 80 100

Itération

Pr. ADDOU ML  S2  Descente de gradient 35/50


Comment choisir α en pratique
Il n'existe pas de formule universelle. On procède souvent par expérimentation :
1 Tester plusieurs valeurs, souvent espacées logarithmiquement :
α ∈ {0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1}
2 Pour chaque α, observer la courbe de J en fonction du nombre d'itérations
3 Retenir une valeur qui fait diminuer J rapidement tout en gardant une convergence stable

α = 0.001 (trop lent)


40 α = 0.01 (bon)
α = 0.5 (instable/diverge)

J
20

0
0 20 40 60 80 100

Itération

☞ À retenir
En pratique : des valeurs comme α = 0.01 ou α = 0.001 sont souvent de bons points de départ.
Des méthodes comme Adam ou RMSProp adaptent le pas eectif pendant l'entraînement, mais
conservent en général un learning rate de base à choisir.

Pr. ADDOU ML  S2  Descente de gradient 35/50


Quand arrêter les itérations ?
★ Question
On répète l'algorithme jusqu'à convergence. Mais qu'est-ce que la convergence concrète-
ment ? Combien d'itérations faut-il ?

Pr. ADDOU ML  S2  Descente de gradient 36/50


Quand arrêter les itérations ?
★ Question
On répète l'algorithme jusqu'à convergence. Mais qu'est-ce que la convergence concrète-
ment ? Combien d'itérations faut-il ?

3 critères d'arrêt courants


1 Nombre maximal d'itérations : xer une limite (ex : 10 000)
→ Simple mais arbitraire. Peut s'arrêter trop tôt ou trop tard.

2 Seuil sur le gradient : ∥∇J∥ < ϵ (ex : ϵ = 10−6 )


→ Si le gradient est très petit, on est proche d'un point stationnaire ; dans un problème
convexe, cela indique qu'on est proche du minimum.

3 Seuil sur le progrès : |Jt − Jt−1 | < ϵ


→ Si l'amélioration devient négligeable, il peut être raisonnable d'arrêter.

Pr. ADDOU ML  S2  Descente de gradient 36/50


Quand arrêter les itérations ?
★ Question
On répète l'algorithme jusqu'à convergence. Mais qu'est-ce que la convergence concrète-
ment ? Combien d'itérations faut-il ?

3 critères d'arrêt courants


1 Nombre maximal d'itérations : xer une limite (ex : 10 000)
→ Simple mais arbitraire. Peut s'arrêter trop tôt ou trop tard.

2 Seuil sur le gradient : ∥∇J∥ < ϵ (ex : ϵ = 10−6 )


→ Si le gradient est très petit, on est proche d'un point stationnaire ; dans un problème
convexe, cela indique qu'on est proche du minimum.

3 Seuil sur le progrès : |Jt − Jt−1 | < ϵ


→ Si l'amélioration devient négligeable, il peut être raisonnable d'arrêter.

Exemple : En pratique
On combine souvent plusieurs critères, par exemple : nombre maximal d'itérations + seuil de variation
de la fonction de coût + seuil sur la norme du gradient.
Pr. ADDOU ML  S2  Descente de gradient 36/50
✎ TD  Exercice 1  Descente de gradient à la main (15 min)
Soit J(w ) = (w − 3)2 + 1 (parabole). Départ : w0 = 0.
1 dJ
Calculer dw .

2 Avec α = 0.2 : calculer w1 , w2 , w3 . Vers quoi converge-t-on ?

3 dJ
Vérier en résolvant dw =0 directement.

4 Avec α = 1.5 : calculer w1 , w2 , w3 . Que se passe-t-il ?

5 Avec α = 0.01 : calculer w1 . Donner ensuite une estimation du nombre d'itérations nécessaires pour
atteindre wt ≥ 2.9.
6 Quelle valeur de α choisiriez-vous parmi {0.01, 0.2, 1.5} et pourquoi ?

Pr. ADDOU ML  S2  Descente de gradient 37/50


✓ Solution  Exercice 1 (1/2)
1. J(w ) = (w − 3)2 + 1. Donc
dJ
= 2(w − 3).
dw
✓ Solution  Exercice 1 (1/2)
1. J(w ) = (w − 3)2 + 1. Donc
dJ
= 2(w − 3).
dw
2. Avec α = 0.2 :
w1 = 0 − 0.2 × 2(0 − 3) = 0 + 1.2 = 1.2 (J(1.2) = 4.24)
w2 = 1.2 − 0.2 × 2(1.2 − 3) = 1.2 + 0.72 = 1.92 (J(1.92) ≈ 2.17)
w3 = 1.92 − 0.2 × 2(1.92 − 3) = 1.92 + 0.432 = 2.352 (J(2.352) ≈ 1.42)

Convergence vers w = 3 : 0 → 1.2 → 1.92 → 2.35 → 2.61 → . . . → 3 ✓
✓ Solution  Exercice 1 (1/2)
1. J(w ) = (w − 3)2 + 1. Donc
dJ
= 2(w − 3).
dw
2. Avec α = 0.2 :
w1 = 0 − 0.2 × 2(0 − 3) = 0 + 1.2 = 1.2 (J(1.2) = 4.24)
w2 = 1.2 − 0.2 × 2(1.2 − 3) = 1.2 + 0.72 = 1.92 (J(1.92) ≈ 2.17)
w3 = 1.92 − 0.2 × 2(1.92 − 3) = 1.92 + 0.432 = 2.352 (J(2.352) ≈ 1.42)

Convergence vers w = 3 : 0 → 1.2 → 1.92 → 2.35 → 2.61 → . . . → 3 ✓
3.
dJ
dw
= 0 ⇒ 2 (w − 3 ) = 0 ⇒ w ∗ = 3.
Comme J(w ) est une parabole convexe, ce point critique est bien le minimum, avec J(3) = 1.
✓ Solution  Exercice 1 (1/2)
1. J(w ) = (w − 3)2 + 1. Donc
dJ
= 2(w − 3).
dw
2. Avec α = 0.2 :
w1 = 0 − 0.2 × 2(0 − 3) = 0 + 1.2 = 1.2 (J(1.2) = 4.24)
w2 = 1.2 − 0.2 × 2(1.2 − 3) = 1.2 + 0.72 = 1.92 (J(1.92) ≈ 2.17)
w3 = 1.92 − 0.2 × 2(1.92 − 3) = 1.92 + 0.432 = 2.352 (J(2.352) ≈ 1.42)

Convergence vers w = 3 : 0 → 1.2 → 1.92 → 2.35 → 2.61 → . . . → 3 ✓
3.
dJ
dw
= 0 ⇒ 2 (w − 3 ) = 0 ⇒ w ∗ = 3.
Comme J(w ) est une parabole convexe, ce point critique est bien le minimum, avec J(3) = 1.
4. Avec α = 1.5 :

w1 = 0 − 1.5 × (−6) = 9 (J(9) = 37)


w2 = 9 − 1.5 × 12 = -9 (J(−9) = 145)
w3 = −9 − 1.5 × (−24) = 27 (J(27) = 577)
Divergence : w oscille de plus en plus loin, et J augmente rapidement. α = 1.5 est trop grand.

Pr. ADDOU ML  S2  Descente de gradient 38/50


✓ Solution  Exercice 1 (2/2)
5. Avec α = 0.01 : w1 = 0 − 0.01 × 2(0 − 3) = 0 + 0.06 = 0.06
La mise à jour s'écrit :
wt+1 = wt − 0.01 · 2(wt − 3) = 0.98 wt + 0.06
wt = 3 1 − 0.98t

Avec w0 = 0, on obtient :

Pour atteindre wt ≥ 2.9, il faut résoudre :


1
3(1 − 0.98t ) ≥ 2.9 ⇐⇒ 0.98
t

30

Donc : ln(1/30)
t≥ ≈ 168.4
ln(0.98)
Il faut donc 169 itérations pour atteindre wt ≥ 2.9.
Conclusion : la convergence est correcte, mais lente.
✓ Solution  Exercice 1 (2/2)
5. Avec α = 0.01 : w1 = 0 − 0.01 × 2(0 − 3) = 0 + 0.06 = 0.06
La mise à jour s'écrit :
wt+1 = wt − 0.01 · 2(wt − 3) = 0.98 wt + 0.06
wt = 3 1 − 0.98t

Avec w0 = 0, on obtient :

Pour atteindre wt ≥ 2.9, il faut résoudre :


1
3(1 − 0.98t ) ≥ 2.9 ⇐⇒ 0.98
t

30

Donc : ln(1/30)
t≥ ≈ 168.4
ln(0.98)
Il faut donc 169 itérations pour atteindre wt ≥ 2.9.
Conclusion : la convergence est correcte, mais lente.

6. Choix optimal : α = 0.2


α = 0.01 : converge, mais lentement

α = 0.2 : converge rapidement et de manière stable ✓


α = 1.5 : diverge ✗
α = 0.2 est le meilleur compromis entre vitesse et stabilité pour ce problème.

Pr. ADDOU ML  S2  Descente de gradient 39/50


Le problème : le Batch GD est lent sur de gros datasets

★ Observation clé
∂J −2 Pn
Dans la formule
∂w = n i=1 xi (yi − ŷi ), la somme porte sur les n exemples. Si n= 10
millions, chaque itération demande de parcourir les 10M de lignes pour faire un seul pas.
C'est très lent.

Pr. ADDOU ML  S2  Descente de gradient 40/50


Le problème : le Batch GD est lent sur de gros datasets

★ Observation clé
∂J −2 Pn
Dans la formule
∂w = n i=1 xi (yi − ŷi ), la somme porte sur les n exemples. Si n= 10
millions, chaque itération demande de parcourir les 10M de lignes pour faire un seul pas.
C'est très lent.

Ordre de grandeur :
Le coût d'une itération de Batch GD est souvent de l'ordre de O(n d)
Si n = 107 et d = 103 , 10 opérations par itération
cela représente environ 10

Sur 1 000 itérations, on atteint alors un coût total d'environ 10


13 opérations

Pr. ADDOU ML  S2  Descente de gradient 40/50


Le problème : le Batch GD est lent sur de gros datasets

★ Observation clé
∂J −2 Pn
Dans la formule
∂w = n i=1 xi (yi − ŷi ), la somme porte sur les n exemples. Si n= 10
millions, chaque itération demande de parcourir les 10M de lignes pour faire un seul pas.
C'est très lent.

Ordre de grandeur :
Le coût d'une itération de Batch GD est souvent de l'ordre de O(n d)
Si n = 107 et d = 103 , 10 opérations par itération
cela représente environ 10

Sur 1 000 itérations, on atteint alors un coût total d'environ 10


13 opérations

Solution : au lieu d'utiliser toutes les données à chaque itération, on utilise un


sous-ensemble aléatoire. L'estimation du gradient est alors moins précise, mais chaque
itération devient beaucoup plus rapide.
→ C'est l'idée de la descente de gradient stochastique (SGD) et du Mini-Batch.

Pr. ADDOU ML  S2  Descente de gradient 40/50


Les 3 variantes détaillées

Batch GD SGD Mini-Batch


Données utilisées Toutes les n 1 seul exemple B exemples
par itération
Taille du batch B B=n B =1 B = 32, 64, 128
(valeurs courantes)
Vitesse / itération Lent Très rapide Rapide
Qualité du gradient Exact sur le dataset Très bruité Bon compromis
entier
Trajectoire typique Plus régulière Plus irrégulière Intermédiaire
Cas d'usage Datasets modestes Très grands volumes Très utilisé en pra-
ou analyse théorique tique, surtout en
deep learning

Pr. ADDOU ML  S2  Descente de gradient 41/50


Les 3 variantes détaillées

Batch GD SGD Mini-Batch


Données utilisées Toutes les n 1 seul exemple B exemples
par itération
Taille du batch B B=n B =1 B = 32, 64, 128
(valeurs courantes)
Vitesse / itération Lent Très rapide Rapide
Qualité du gradient Exact sur le dataset Très bruité Bon compromis
entier
Trajectoire typique Plus régulière Plus irrégulière Intermédiaire
Cas d'usage Datasets modestes Très grands volumes Très utilisé en pra-
ou analyse théorique tique, surtout en
deep learning

☞ À retenir
En pratique, le Mini-Batch GD est très souvent utilisé, en particulier en deep learning, car il ore
un bon compromis entre coût de calcul et stabilité. Le batch size B est un hyperparamètre.
Pr. ADDOU ML  S2  Descente de gradient 41/50
Visualiser les 3 variantes  trajectoire vers le minimum

Pr. ADDOU ML  S2  Descente de gradient 42/50


Visualiser les 3 variantes  trajectoire vers le minimum

Batch (B = n)
Départ

Min

Trajectoire typiquement plus


régulière. Chaque pas utilise tous

les exemples. Stable mais coûteux.

Pr. ADDOU ML  S2  Descente de gradient 42/50


Visualiser les 3 variantes  trajectoire vers le minimum

Batch (B = n) SGD (B = 1)
Départ Départ

Min Min

Trajectoire typiquement plus Trajectoire plus bruitée. Chaque


régulière. Chaque pas utilise tous pas utilise 1 seul exemple. Rapide
les exemples. Stable mais coûteux. par itération, mais irrégulier.

Pr. ADDOU ML  S2  Descente de gradient 42/50


Visualiser les 3 variantes  trajectoire vers le minimum

Batch (B = n) SGD (B = 1) Mini-Batch (B = 32)


Départ Départ Départ

Min Min Min

Trajectoire typiquement plus Trajectoire plus bruitée. Chaque Bon compromis. Plus rapide que

régulière. Chaque pas utilise tous pas utilise 1 seul exemple. Rapide Batch GD et souvent plus stable
les exemples. Stable mais coûteux. par itération, mais irrégulier. que SGD pur.

Pr. ADDOU ML  S2  Descente de gradient 42/50


Pourquoi le SGD fonctionne malgré le bruit ?
★ Question légitime
Si le gradient estimé sur 1 seul point est très bruité, pourquoi le SGD peut-il tout de même
bien fonctionner ?

Pr. ADDOU ML  S2  Descente de gradient 43/50


Pourquoi le SGD fonctionne malgré le bruit ?
★ Question légitime
Si le gradient estimé sur 1 seul point est très bruité, pourquoi le SGD peut-il tout de même
bien fonctionner ?

Réponse en 3 points :
1 En moyenne, l'information reste utile. Sous un échantillonnage aléatoire, le gradient
stochastique peut être vu comme une estimation bruitée du gradient complet, mais il
conserve souvent une direction globalement utile pour l'optimisation.

Pr. ADDOU ML  S2  Descente de gradient 43/50


Pourquoi le SGD fonctionne malgré le bruit ?
★ Question légitime
Si le gradient estimé sur 1 seul point est très bruité, pourquoi le SGD peut-il tout de même
bien fonctionner ?

Réponse en 3 points :
1 En moyenne, l'information reste utile. Sous un échantillonnage aléatoire, le gradient
stochastique peut être vu comme une estimation bruitée du gradient complet, mais il
conserve souvent une direction globalement utile pour l'optimisation.
2 Le bruit peut parfois aider. Dans les problèmes non convexes, les uctuations du SGD
peuvent aider à quitter certaines zones plates ou certains minima locaux peu profonds.

Pr. ADDOU ML  S2  Descente de gradient 43/50


Pourquoi le SGD fonctionne malgré le bruit ?
★ Question légitime
Si le gradient estimé sur 1 seul point est très bruité, pourquoi le SGD peut-il tout de même
bien fonctionner ?

Réponse en 3 points :
1 En moyenne, l'information reste utile. Sous un échantillonnage aléatoire, le gradient
stochastique peut être vu comme une estimation bruitée du gradient complet, mais il
conserve souvent une direction globalement utile pour l'optimisation.
2 Le bruit peut parfois aider. Dans les problèmes non convexes, les uctuations du SGD
peuvent aider à quitter certaines zones plates ou certains minima locaux peu profonds.
3 On adapte souvent le learning rate. En pratique, on utilise souvent une décroissance
du pas d'apprentissage : pas plus grands au début, puis plus petits ensuite pour stabiliser
l'entraînement.

Pr. ADDOU ML  S2  Descente de gradient 43/50


Pourquoi le SGD fonctionne malgré le bruit ?
★ Question légitime
Si le gradient estimé sur 1 seul point est très bruité, pourquoi le SGD peut-il tout de même
bien fonctionner ?

Réponse en 3 points :
1 En moyenne, l'information reste utile. Sous un échantillonnage aléatoire, le gradient
stochastique peut être vu comme une estimation bruitée du gradient complet, mais il
conserve souvent une direction globalement utile pour l'optimisation.
2 Le bruit peut parfois aider. Dans les problèmes non convexes, les uctuations du SGD
peuvent aider à quitter certaines zones plates ou certains minima locaux peu profonds.
3 On adapte souvent le learning rate. En pratique, on utilise souvent une décroissance
du pas d'apprentissage : pas plus grands au début, puis plus petits ensuite pour stabiliser
l'entraînement.

☞ À retenir
Le SGD pur est surtout important comme idée de base. En pratique, on utilise très souvent des
variantes mini-batch, qui orent un bon compromis entre coût de calcul, bruit du gradient et stabilité.
Pr. ADDOU ML  S2  Descente de gradient 43/50
Vocabulaire essentiel  Époque, Itération, Batch Size
3 termes à connaître absolument
Itération = 1 mise à jour des paramètres (= 1 pas de la descente)
Batch size B = nombre d'exemples utilisés par itération
Époque (Epoch) = 1 passage complet sur l'ensemble des données

Pr. ADDOU ML  S2  Descente de gradient 44/50


Vocabulaire essentiel  Époque, Itération, Batch Size
3 termes à connaître absolument
Itération = 1 mise à jour des paramètres (= 1 pas de la descente)
Batch size B = nombre d'exemples utilisés par itération
Époque (Epoch) = 1 passage complet sur l'ensemble des données
Exemple : Calcul concret
Dataset de n = 1 000 exemples, batch size B = 100.
n 1000
1 époque ≈ B
= 100 = 10 itérations

Entraîner pendant 50 époques = 50 × 10 = 500 itérations au total

En général, au cours d'une époque, chaque exemple est vu une fois, souvent dans un ordre mélangé

Pr. ADDOU ML  S2  Descente de gradient 44/50


Vocabulaire essentiel  Époque, Itération, Batch Size
3 termes à connaître absolument
Itération = 1 mise à jour des paramètres (= 1 pas de la descente)
Batch size B = nombre d'exemples utilisés par itération
Époque (Epoch) = 1 passage complet sur l'ensemble des données
Exemple : Calcul concret
Dataset de n = 1 000 exemples, batch size B = 100.
n 1000
1 époque ≈ B
= 100 = 10 itérations

Entraîner pendant 50 époques = 50 × 10 = 500 itérations au total

En général, au cours d'une époque, chaque exemple est vu une fois, souvent dans un ordre mélangé

Exemple : Dataset réaliste


ImageNet : n = 1.2M images, B = 256.
1 200 000
1 époque ≈ 256 ≈ 4 688 itérations

Pr. ADDOU typique : 90 époques ML


Entraînement = ≈ S2  Descente
422 de gradient
000 itérations 44/50
Le rôle du mélange aléatoire (shuing)

★ Pourquoi mélanger les données à chaque époque ?

Pr. ADDOU ML  S2  Descente de gradient 45/50


Le rôle du mélange aléatoire (shuing)

★ Pourquoi mélanger les données à chaque époque ?

Problème sans mélange : imaginons que les 100 premiers exemples soient tous des
appartements chers, et les 100 suivants des appartements bon marché. Le modèle verrait
d'abord surtout des prix élevés, puis surtout des prix bas. Les gradients successifs pourraient
alors être fortement inuencés par l'ordre des données.

Pr. ADDOU ML  S2  Descente de gradient 45/50


Le rôle du mélange aléatoire (shuing)

★ Pourquoi mélanger les données à chaque époque ?

Problème sans mélange : imaginons que les 100 premiers exemples soient tous des
appartements chers, et les 100 suivants des appartements bon marché. Le modèle verrait
d'abord surtout des prix élevés, puis surtout des prix bas. Les gradients successifs pourraient
alors être fortement inuencés par l'ordre des données.
Avec mélange : les mini-batches ont davantage de chances de contenir des exemples variés. Le
gradient calculé à chaque itération est alors souvent plus représentatif de l'ensemble du dataset.

Pr. ADDOU ML  S2  Descente de gradient 45/50


Le rôle du mélange aléatoire (shuing)

★ Pourquoi mélanger les données à chaque époque ?

Problème sans mélange : imaginons que les 100 premiers exemples soient tous des
appartements chers, et les 100 suivants des appartements bon marché. Le modèle verrait
d'abord surtout des prix élevés, puis surtout des prix bas. Les gradients successifs pourraient
alors être fortement inuencés par l'ordre des données.
Avec mélange : les mini-batches ont davantage de chances de contenir des exemples variés. Le
gradient calculé à chaque itération est alors souvent plus représentatif de l'ensemble du dataset.

☞ À retenir
Règle pratique : en apprentissage par mini-batch ou SGD, il est généralement préférable de mélanger
les données à chaque époque. En Python, SGDRegressor le fait typiquement avec shuffle=True.

Pr. ADDOU ML  S2  Descente de gradient 45/50


✎ TD  Exercice 2  Questions conceptuelles (10 min)
Vrai ou Faux. Justiez en 1 phrase.

1 Le gradient ∇J pointe vers la direction du minimum de J.


2 Le learning rate α est un paramètre appris pendant le training.

3 Le SGD est plus lent par itération que le Batch GD.

4 Une époque correspond à une seule mise à jour des poids.

5 Le batch size B est un hyperparamètre.

6 Si α est trop grand, J peut augmenter au lieu de diminuer.

7 Pour la régression linéaire (MSE convexe), la descente de gradient converge vers la même solution que
l'équation normale.

8 En SGD ou en mini-batch, il est généralement préférable de mélanger les données à chaque époque.

Pr. ADDOU ML  S2  Descente de gradient 46/50


✓ Solution  Exercice 2
1 ✗ Faux. Le gradient pointe vers la direction de la plus forte augmentation locale de J. On descend
donc dans la direction opposée : θ ← θ − α∇J .
2 ✗ Faux. α est un hyperparamètre choisi avant l'entraînement dans la version de base. Certaines
méthodes adaptatives ajustent ensuite le pas eectif au cours du training.

3 ✗ Faux. Le SGD utilise un seul exemple par itération, donc chaque itération est généralement

beaucoup plus rapide que Batch GD, même si davantage d'itérations peuvent être nécessaires.

4 ✗ Faux. Une époque correspond à un passage complet sur l'ensemble des données, soit environ n/B
mises à jour.

5 ✓ Vrai. Le batch size B est un hyperparamètre choisi par l'utilisateur.

6 ✓ Vrai. Si α est trop grand, J peut augmenter au lieu de diminuer, et l'algorithme peut osciller ou
diverger.

7 ✓ Vrai. Pour la régression linéaire avec une MSE convexe, la descente de gradient converge vers la

même solution que l'équation normale lorsque le learning rate est bien choisi.

8 ✓ Vrai, en général. En SGD ou en mini-batch, le mélange aléatoire des données réduit les eets dus à

l'ordre des exemples et rend souvent les gradients plus représentatifs du dataset.

Pr. ADDOU ML  S2  Descente de gradient 47/50


Récapitulatif de la Partie 2.1
☞ À retenir
Concept Dénition
Descente de gradient Algorithme itératif : θ ← θ − α∇J(θ)
∂J −2 −2
xi (yi − ŷi ), ∂J
P P
Gradient de la MSE
∂w = n ∂b = n (yi − ŷi )
Learning rate α Taille du pas. Hyperparamètre. Trop petit : progression lente ; trop
grand : oscillations ou divergence possibles
Mise à jour Simultanée : calculer les 2 gradients au même point, puis mettre à
jour w et b
Convergence Vers la même solution que l'éq. normale pour la régression linéaire à
MSE convexe, si le learning rate est bien choisi
Batch GD Tous les n exemples par itération. Plus stable mais coûteux
SGD 1 seul exemple. Rapide par itération, mais gradient plus bruité
Mini-Batch B exemples (32128). Très utilisé en pratique, surtout en deep learn-
ing
Époque 1 passage complet sur les n données, soit environ n/B itérations
Shuing Mélanger les données à chaque époque pour réduire les eets liés à
leur ordre
Pr. ADDOU ML  S2  Descente de gradient 48/50
Formules clés de cette partie

∂J
Règle de mise à jour w ← w − α ∂w , b ← b − α ∂J
∂b
n
−2
X
∂J
Gradient / w ∂w = n xi (yi − wxi − b)
i=1
n
−2
X
∂J
Gradient / b ∂b = n (yi − wxi − b)
i=1
n
Itérations / époque ≈ B

Pr. ADDOU ML  S2  Descente de gradient 49/50


Fin Partie 2.1
Suite : Partie 2.2  Régression multiple
Comment passer de 1 feature à d features ?

Notation matricielle, équation normale θ∗ = (X T X )−1 X T y


Généralisation, démonstration, features polynomiales

Pause 10 minutes

Pr. ADDOU ML  S2  Descente de gradient 50/50


Module : Machine Learning
Séance 2  Partie 2.2 : Régression linéaire multiple

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  S2  Régression multiple 1/53


Ce que vous allez apprendre dans cette partie

1 Pourquoi passer d'une seule feature à plusieurs features


2 Le modèle de régression linéaire multiple avec d features

3 Rappel mathématique : matrices, vecteurs et produit matriciel


4 La notation matricielle : ŷ = Xθ
5 L'astuce de la colonne de 1 pour absorber le biais b
1
6 La MSE en forme matricielle : J(θ) = n ∥y − Xθ∥2
7 Démonstration détaillée de l'équation normale θ ∗ = (XT X)−1 XT y
8 Conditions d'inversibilité de XT X
9 Exemple manuel complet : régression multiple avec 2 features
10 Features polynomiales : capturer des courbes, des interactions, et introduire le

compromis biaisvariance

Pr. ADDOU ML  S2  Régression multiple 2/53


Rappel de la Partie 1 : régression linéaire simple

★ Ce qu'on a vu en Partie 1

On a un modèle avec une seule feature x (la surface) :

ŷ = wx + b

Et l'équation normale donne la solution exacte :


P
i (x− x̄)(yi − ȳ )

w = Pi 2
, b ∗ = ȳ − w ∗ x̄
i (xi − x̄)

Pr. ADDOU ML  S2  Régression multiple 3/53


Rappel de la Partie 1 : régression linéaire simple

★ Ce qu'on a vu en Partie 1

On a un modèle avec une seule feature x (la surface) :

ŷ = wx + b

Et l'équation normale donne la solution exacte :


P
i (x − x̄)(yi − ȳ )

w = Pi 2
, b ∗ = ȳ − w ∗ x̄
i (xi − x̄)

Mais dans la réalité...


Le prix d'un appartement ne dépend pas seulement de la surface
Il dépend aussi de l'étage, de l'année de construction, du nombre de chambres, de la
distance au centre-ville, ou encore de la présence d'un ascenseur
Un modèle à une seule feature est souvent trop simple et peut conduire à un biais élevé

Pr. ADDOU ML  S2  Régression multiple 3/53


Le modèle linéaire multiple  formule générale

Régression linéaire multiple avec d features

d
X
ŷ = w1 x1 + w2 x2 + · · · + wd xd + b = wj xj + b
j=1

x1 , x2 , . . . , xd = les d features (surface, étage, année. . .)

w1 , w2 , . . . , wd = les d poids (un par feature)

b = le biais (intercept, terme constant)

Nombre total de paramètres à apprendre : d +1

Pr. ADDOU ML  S2  Régression multiple 4/53


Le modèle linéaire multiple  formule générale

Régression linéaire multiple avec d features

d
X
ŷ = w1 x1 + w2 x2 + · · · + wd xd + b = wj xj + b
j=1

x1 , x2 , . . . , xd = les d features (surface, étage, année. . .)

w1 , w2 , . . . , wd = les d poids (un par feature)

b = le biais (intercept, terme constant)

Nombre total de paramètres à apprendre : d +1

★ Interprétation de chaque poids wj


wj mesure de combien ŷ change quand xj augmente de 1 unité, toutes les autres
features restant constantes. C'est l'eet marginal de la feature xj .

Pr. ADDOU ML  S2  Régression multiple 4/53


Exemple concret  prédire le prix avec 3 features

Exemple : Modèle pour le prix d'un appartement

Modèle : ŷ = w1 · surface + w2 · étage + w3 · année + b


Exemple concret  prédire le prix avec 3 features

Exemple : Modèle pour le prix d'un appartement

Modèle : ŷ = w1 · surface + w2 · étage + w3 · année + b


Après entraînement, on trouve :

1.8 ·surface + 5.0 ·étage + 0.3 ·année + (−580)


ŷ = |{z} |{z} |{z} | {z }
w1 w2 w3 b
Exemple concret  prédire le prix avec 3 features

Exemple : Modèle pour le prix d'un appartement

Modèle : ŷ = w1 · surface + w2 · étage + w3 · année + b


Après entraînement, on trouve :

1.8 ·surface + 5.0 ·étage + 0.3 ·année + (−580)


ŷ = |{z} |{z} |{z} | {z }
w1 w2 w3 b

Interprétation de chaque poids :


w1 = 1.8 : chaque m2 supplémentaire ajoute 1 800 $, à étage et année xés

w2 = 5.0 : chaque étage supplémentaire ajoute 5 000 $, à surface et année xées

w3 = 0.3 : chaque année plus récente ajoute 300 $, à surface et étage xés

b = −580 : terme de correction sans interprétation physique directe


Exemple concret  prédire le prix avec 3 features

Exemple : Modèle pour le prix d'un appartement

Modèle : ŷ = w1 · surface + w2 · étage + w3 · année + b


Après entraînement, on trouve :

1.8 ·surface + 5.0 ·étage + 0.3 ·année + (−580)


ŷ = |{z} |{z} |{z} | {z }
w1 w2 w3 b

Interprétation de chaque poids :


w1 = 1.8 : chaque m2 supplémentaire ajoute 1 800 $, à étage et année xés

w2 = 5.0 : chaque étage supplémentaire ajoute 5 000 $, à surface et année xées

w3 = 0.3 : chaque année plus récente ajoute 300 $, à surface et étage xés

b = −580 : terme de correction sans interprétation physique directe

Prédiction pour un appartement de 85 m2 , au 3e étage, construit en 2015 :


ŷ = 1.8 × 85 + 5.0 × 3 + 0.3 × 2015 − 580 = 153 + 15 + 604.5 − 580 = 192.5 k$
Pr. ADDOU ML  S2  Régression multiple 5/53
Diérence entre régression linéaire simple et multiple

Pr. ADDOU ML  S2  Régression multiple 6/53


Diérence entre régression linéaire simple et multiple
Régression linéaire simple

Elle utilise une seule feature d'entrée.

ŷ = wx + b

1 variable explicative : x
1 poids : w
1 biais : b
Le graphe est une droite dans le plan
(x, y )

Pr. ADDOU ML  S2  Régression multiple 6/53


Diérence entre régression linéaire simple et multiple
Régression linéaire simple Régression linéaire multiple

Elle utilise une seule feature d'entrée. Elle utilise plusieurs features d'entrée.

ŷ = wx + b ŷ = w1 x1 + w2 x2 + · · · + wd xd + b

1 variable explicative : x plusieurs variables explicatives :

1 poids : w x1 , . . . , x d
1 biais : b un poids par feature

Le graphe est une droite dans le plan 1 biais : b


(x, y ) Le modèle est un hyperplan

Pr. ADDOU ML  S2  Régression multiple 6/53


Diérence entre régression linéaire simple et multiple
Régression linéaire simple Régression linéaire multiple

Elle utilise une seule feature d'entrée. Elle utilise plusieurs features d'entrée.

ŷ = wx + b ŷ = w1 x1 + w2 x2 + · · · + wd xd + b

1 variable explicative : x plusieurs variables explicatives :

1 poids : w x1 , . . . , x d
1 biais : b un poids par feature

Le graphe est une droite dans le plan 1 biais : b


(x, y ) Le modèle est un hyperplan

☞ À retenir
La diérence entre simple et multiple dépend uniquement du nombre de features d'entrée :
simple : une seule feature
multiple : plusieurs features
Pr. ADDOU ML  S2  Régression multiple 6/53
Le problème : comment généraliser l'équation normale ?
★ Question centrale

En Partie 1, on avait une formule simple pour w∗ et b ∗ avec une seule feature. Mais main-
tenant qu'on a d features (w1 , w2 , . . . , wd , b ), on a d + 1 paramètres à estimer. Comment
faire ?

Pr. ADDOU ML  S2  Régression multiple 7/53


Le problème : comment généraliser l'équation normale ?
★ Question centrale

En Partie 1, on avait une formule simple pour w∗ et b ∗ avec une seule feature. Mais main-
tenant qu'on a d features (w1 , w2 , . . . , wd , b ), on a d + 1 paramètres à estimer. Comment
faire ?

La réponse : on utilise la notation matricielle et une formule matricielle unique :

θ ∗ = (XT X)−1 XT y

Pr. ADDOU ML  S2  Régression multiple 7/53


Le problème : comment généraliser l'équation normale ?
★ Question centrale

En Partie 1, on avait une formule simple pour w∗ et b ∗ avec une seule feature. Mais main-
tenant qu'on a d features (w1 , w2 , . . . , wd , b ), on a d + 1 paramètres à estimer. Comment
faire ?

La réponse : on utilise la notation matricielle et une formule matricielle unique :

θ ∗ = (XT X)−1 XT y

T
Cette formule est la même quel que soit le nombre de features, à condition que X X soit inversible.
C'est la force de l'algèbre linéaire : une seule formule généralise tout.

Pr. ADDOU ML  S2  Régression multiple 7/53


Le problème : comment généraliser l'équation normale ?
★ Question centrale

En Partie 1, on avait une formule simple pour w∗ et b ∗ avec une seule feature. Mais main-
tenant qu'on a d features (w1 , w2 , . . . , wd , b ), on a d + 1 paramètres à estimer. Comment
faire ?

La réponse : on utilise la notation matricielle et une formule matricielle unique :

θ ∗ = (XT X)−1 XT y

T
Cette formule est la même quel que soit le nombre de features, à condition que X X soit inversible.
C'est la force de l'algèbre linéaire : une seule formule généralise tout.

Avant de pouvoir l'utiliser, il nous faut :


1 Rappeler le calcul matriciel (matrices, vecteurs, produits, transposée)
2 Écrire le modèle en forme matricielle
3 Démontrer la formule pas à pas
4 L'appliquer sur des exemples concrets
Pr. ADDOU ML  S2  Régression multiple 7/53
Rappel math  matrice, vecteur, dimensions
P
Math  Notations de base

Une matrice A de dimensions m×n = tableau rectangulaire de nombres avec m lignes et n


colonnes.  
a11 a12 · · · a1n
 a21 a22 · · · a2n 
Am×n = .
 
. 
 .. . 
.
am1 am2 · · · amn
Un vecteur colonne v de taille n = matrice de dimensions n × 1.

Pr. ADDOU ML  S2  Régression multiple 8/53


Rappel math  matrice, vecteur, dimensions
P
Math  Notations de base

Une matrice A de dimensions m×n = tableau rectangulaire de nombres avec m lignes et n


colonnes.  
a11 a12 · · · a1n
 a21 a22 · · · a2n 
Am×n = .
 
. 
 .. . 
.
am1 am2 · · · amn
Un vecteur colonne v de taille n = matrice de dimensions n × 1.

Exemple : Concret
 
  2
1 2 3
A2×3 = , v3×1 = 5
4 5 6
1

A a 2 lignes et 3 colonnes. v a 3 lignes et 1 colonne (vecteur colonne).

Pr. ADDOU ML  S2  Régression multiple 8/53


Rappel math  produit matriciel

P
Math  Règle du produit A·B
Pour que A·B soit déni : le nombre de colonnes de A doit égaler le nombre de lignes de
B.
Am×n · Bn×p = Cm×p
Pn
Chaque élément : cij = k=1 aik bkj (produit scalaire ligne i de A par colonne j de B ).

Pr. ADDOU ML  S2  Régression multiple 9/53


Rappel math  produit matriciel

P
Math  Règle du produit A·B
Pour que A·B soit déni : le nombre de colonnes de A doit égaler le nombre de lignes de
B.
Am×n · Bn×p = Cm×p
Pn
Chaque élément : cij = k=1 aik bkj (produit scalaire ligne i de A par colonne j de B ).

Exemple : Calcul concret


       
1 2
5 1·5 + 2·6 17
· = =
3 4 6 3·5 + 4·6 39
| {z } |{z}
2×2 2×1

Résultat de dimensions 2 × 1. Attention : A · B ̸= B · A en général.

Pr. ADDOU ML  S2  Régression multiple 9/53


Rappel math  transposée et matrice inverse
AT
P
Math  Transposée

AT : on échange les lignes et les colonnes. Si A est m × n, alors AT est n × m.


 
  1 4
1 2 3 T
A= ⇒ A = 2 5
4 5 6
3 6
T T
Propriétés : (A ) = A, (A · B)T = BT · AT .

Pr. ADDOU ML  S2  Régression multiple 10/53


Rappel math  transposée et matrice inverse
AT
P
Math  Transposée

AT : on échange les lignes et les colonnes. Si A est m × n, alors AT est n × m.


 
  1 4
1 2 3 T
A= ⇒ A = 2 5
4 5 6
3 6
T T
Propriétés : (A ) = A, (A · B)T = BT · AT .

A−1
P
Math  Matrice inverse (pour matrices carrées uniquement)

Si A est carrée (n × n) et inversible, A−1 est la matrice telle que :


−1 −1
A·A =A ·A=I (matrice identité)

Condition d'inversibilité : det(A) ̸= 0.


   
a b −1 1 d −b
Pour A= de taille 2 × 2 : A = ad−bc
c d −c a
Pr. ADDOU ML  S2  Régression multiple 10/53
Rappel math  norme et produit scalaire
P
Math  Norme euclidienne ∥·∥ et produit scalaire

Pour un vecteur v = (v1 , v2 , . . . , vn )T :

n
∥v ∥2 = v T v = v12 + v22 + · · · + vn2 = vi2
X

i=1

Exemple : v = (3, 4)T ⇒ ∥v ∥2 = 9 + 16 = 25, donc ∥v ∥ = 5.

Pr. ADDOU ML  S2  Régression multiple 11/53


Rappel math  norme et produit scalaire
P
Math  Norme euclidienne ∥·∥ et produit scalaire

Pour un vecteur v = (v1 , v2 , . . . , vn )T :

n
∥v ∥2 = v T v = v12 + v22 + · · · + vn2 = vi2
X

i=1

Exemple : v = (3, 4)T ⇒ ∥v ∥2 = 9 + 16 = 25, donc ∥v ∥ = 5.

Identité très utile pour la suite :

∥a − b∥2 = (a − b)T (a − b)

Pr. ADDOU ML  S2  Régression multiple 11/53


Rappel math  norme et produit scalaire
P
Math  Norme euclidienne ∥·∥ et produit scalaire

Pour un vecteur v = (v1 , v2 , . . . , vn )T :

n
∥v ∥2 = v T v = v12 + v22 + · · · + vn2 = vi2
X

i=1

Exemple : v = (3, 4)T ⇒ ∥v ∥2 = 9 + 16 = 25, donc ∥v ∥ = 5.

Identité très utile pour la suite :

∥a − b∥2 = (a − b)T (a − b)

Cette identité va nous permettre de réécrire la MSE en forme matricielle. C'est la clé de toute la
démonstration qui suit.

Pr. ADDOU ML  S2  Régression multiple 11/53


Écrire le modèle en forme matricielle
On a n exemples avec d features. On empile les données dans des matrices :
     
x11 x12 · · · x1d y1 w1
x21 x22 · · · x2d  y2   w2 
Xn×d = . . , yn×1 =  . , wd×1 = . 
     
 .. . 
.  ..   .. 
xn1 xn2 · · · xnd yn wd
Légende :
Chaque ligne de X = un exemple
Chaque colonne de X = une feature
y = vecteur colonne des labels
w = vecteur colonne des poids

Pr. ADDOU ML  S2  Régression multiple 12/53


Écrire le modèle en forme matricielle
On a n exemples avec d features. On empile les données dans des matrices :
     
x11 x12 · · · x1d y1 w1
x21 x22 · · · x2d  y2   w2 
Xn×d = . . , yn×1 =  . , wd×1 = . 
     
 .. . 
.  ..   .. 
xn1 xn2 · · · xnd yn wd
Légende :
Chaque ligne de X = un exemple
Chaque colonne de X = une feature
y = vecteur colonne des labels
w = vecteur colonne des poids

Les prédictions pour tous les exemples s'écrivent :

ŷ = Xw + b 1
où 1 est le vecteur colonne de taille n contenant uniquement des 1.

Pr. ADDOU ML  S2  Régression multiple 12/53


L'astuce de la colonne de 1  absorber b
★ Le problème avec le + b
Écrire ŷ = Xw +b1 est peu pratique : on traite le biais b séparément. Peut-on intégrer b
dans la matrice ?

Pr. ADDOU ML  S2  Régression multiple 13/53


L'astuce de la colonne de 1  absorber b
★ Le problème avec le + b
Écrire ŷ = Xw +b1 est peu pratique : on traite le biais b séparément. Peut-on intégrer b
dans la matrice ?

Solution classique : ajouter une colonne de 1 à gauche de X, et une composante


supplémentaire b au vecteur des poids :  
  b
1 x11 x12 · · · x1d  w1 
1 x21 x22 · · · x2d   
 w2 
X = . . , θ =
 
.
 .. . . 
 
|{z} . .
|{z}  .. 
nouvelle, n×(d+1) (d+1)×1  . 
1 xn1 xn2 · · · xnd
wd

Pr. ADDOU ML  S2  Régression multiple 13/53


L'astuce de la colonne de 1  absorber b
★ Le problème avec le + b
Écrire ŷ = Xw +b1 est peu pratique : on traite le biais b séparément. Peut-on intégrer b
dans la matrice ?

Solution classique : ajouter une colonne de 1 à gauche de X, et une composante


supplémentaire b au vecteur des poids :  
  b
1 x11 x12 · · · x1d  w1 
1 x21 x22 · · · x2d   
 w2 
X = . . , θ =
 
.
 .. . . 
 
|{z} . .
|{z}  .. 
nouvelle, n×(d+1) (d+1)×1  . 
1 xn1 xn2 · · · xnd
wd

Avec cette astuce, le modèle s'écrit tout simplement :

ŷ = Xθ
Le biais b est absorbé dans θ grâce à la colonne de 1.

Pr. ADDOU ML  S2  Régression multiple 13/53


Vérier que la colonne de 1 fonctionne

Exemple : Développons pour 1 exemple

Pour la ligne i de X (i.e. l'exemple i) :

ŷi = 1
|{z} ·b + xi 1 · w1 + xi 2 · w2 + · · · + xid · wd
colonne de 1

= b + w1 xi 1 + w2 xi 2 + · · · + wd xid
C'est exactement la formule de la régression multiple ! Le biais b est retrouvé.

Pr. ADDOU ML  S2  Régression multiple 14/53


Vérier que la colonne de 1 fonctionne

Exemple : Développons pour 1 exemple

Pour la ligne i de X (i.e. l'exemple i) :

ŷi = 1
|{z} ·b + xi 1 · w1 + xi 2 · w2 + · · · + xid · wd
colonne de 1

= b + w1 xi 1 + w2 xi 2 + · · · + wd xid
C'est exactement la formule de la régression multiple ! Le biais b est retrouvé.

☞ À retenir

Désormais, quand on écrit θ ∗ = (XT X)−1 XT y, on suppose que X contient déjà la colonne de 1,
et θ contientb comme première composante.
En Python : X = np.column_stack([[Link](n), X_original]).

Pr. ADDOU ML  S2  Régression multiple 14/53


La MSE  de la somme à la forme matricielle
Rappel Partie 1 : la MSE en forme classique est :
n
1
(yi − ŷi )2
X
J(θ) =
n
i=1

Pr. ADDOU ML  S2  Régression multiple 15/53


La MSE  de la somme à la forme matricielle
Rappel Partie 1 : la MSE en forme classique est :
n
1
(yi − ŷi )2
X
J(θ) =
n
i=1

En forme matricielle : on reconnaît une norme euclidienne !


1 1
J(θ) = ∥y − ŷ∥2 = ∥y − Xθ∥2
n n

Pr. ADDOU ML  S2  Régression multiple 15/53


La MSE  de la somme à la forme matricielle
Rappel Partie 1 : la MSE en forme classique est :
n
1
(yi − ŷi )2
X
J(θ) =
n
i=1

En forme matricielle : on reconnaît une norme euclidienne !


1 1
J(θ) = ∥y − ŷ∥2 = ∥y − Xθ∥2
n n
En utilisant l'identité ∥v ∥2 = v T v :

1
J(θ) = (y − Xθ)T (y − Xθ)
n

Pr. ADDOU ML  S2  Régression multiple 15/53


La MSE  de la somme à la forme matricielle
Rappel Partie 1 : la MSE en forme classique est :
n
1
(yi − ŷi )2
X
J(θ) =
n
i=1

En forme matricielle : on reconnaît une norme euclidienne !


1 1
J(θ) = ∥y − ŷ∥2 = ∥y − Xθ∥2
n n
En utilisant l'identité ∥v ∥2 = v T v :

1
J(θ) = (y − Xθ)T (y − Xθ)
n

Cette forme matricielle contient exactement la même information que la forme en somme. Mais elle
est bien plus pratique pour calculer les gradients.

Pr. ADDOU ML  S2  Régression multiple 15/53


Développer l'expression (y − Xθ)T (y − Xθ)
P
Math  Développement pas à pas

On applique la propriété (A − B)T = AT − B T sur la première parenthèse :

(y − Xθ)T = yT − (Xθ)T = yT − θ T XT

Puis on distribue :

(y − Xθ)T (y − Xθ) = (yT − θ T XT )(y − Xθ)


= yT y − yT Xθ − θ T XT y + θ T XT Xθ

Pr. ADDOU ML  S2  Régression multiple 16/53


Développer l'expression (y − Xθ)T (y − Xθ)
P
Math  Développement pas à pas

On applique la propriété (A − B)T = AT − B T sur la première parenthèse :

(y − Xθ)T = yT − (Xθ)T = yT − θ T XT

Puis on distribue :

(y − Xθ)T (y − Xθ) = (yT − θ T XT )(y − Xθ)


= yT y − yT Xθ − θ T XT y + θ T XT Xθ

Observation cruciale : yT Xθ est un scalaire (résultat : 1 nombre). Et le transposé d'un scalaire =


le scalaire lui-même. Donc :
T
y Xθ = (yT Xθ)T = θ T XT y
Les 2 termes du milieu sont égaux. On peut les combiner.

Pr. ADDOU ML  S2  Régression multiple 16/53


Démo  rappel des dérivées matricielles nécessaires
P
Math  2 formules à connaître

Pour un vecteur θ et une matrice A :


∂ T

1 θ c = c (quand c ne dépend pas de θ )
∂θ

θ T Aθ = 2Aθ (quand A est symétrique)

2
∂θ

Pr. ADDOU ML  S2  Régression multiple 17/53


Démo  rappel des dérivées matricielles nécessaires
P
Math  2 formules à connaître

Pour un vecteur θ et une matrice A :


∂ T

1 θ c = c (quand c ne dépend pas de θ )
∂θ

θ T Aθ = 2Aθ (quand A est symétrique)

2
∂θ

★ Analogies avec le cas scalaire (1 variable)

Comparez avec les formules que vous connaissez déjà :

Scalaire :
d
dx (cx) = c

↔ Matriciel : ∂θ (θ T c) = c
d 2 ↔ Matriciel : ∂θ ∂
(θ T Aθ)
Scalaire :
dx (ax ) = 2ax = 2Aθ
C'est la même logique, juste étendue aux vecteurs.

Pr. ADDOU ML  S2  Régression multiple 17/53


Démo  rappel des dérivées matricielles nécessaires
P
Math  2 formules à connaître

Pour un vecteur θ et une matrice A :


∂ T

1 θ c = c (quand c ne dépend pas de θ )
∂θ

θ T Aθ = 2Aθ (quand A est symétrique)

2
∂θ

★ Analogies avec le cas scalaire (1 variable)

Comparez avec les formules que vous connaissez déjà :

Scalaire :
d
dx (cx) = c

↔ Matriciel : ∂θ (θ T c) = c
d 2 ↔ Matriciel : ∂θ ∂
(θ T Aθ)
Scalaire :
dx (ax ) = 2ax = 2Aθ
C'est la même logique, juste étendue aux vecteurs.

Note : XT X est toujours symétrique (propriété (X T X )T = X T (X T )T = X T X ), donc la


formule 2 s'applique.
Pr. ADDOU ML  S2  Régression multiple 17/53
Démo  calculer ∇J(θ)
On dérive terme par terme J(θ) = n1 [yT y − 2θ T XT y + θ T XT Xθ] :

Pr. ADDOU ML  S2  Régression multiple 18/53


Démo  calculer ∇J(θ)
1 T
On dérive terme par terme J(θ) = n [yT y − 2θ XT y + θ T XT Xθ] :
T
Terme 1 : y y ne dépend pas de θ ⇒ sa dérivée est 0.

Pr. ADDOU ML  S2  Régression multiple 18/53


Démo  calculer ∇J(θ)
1 T
On dérive terme par terme J(θ) = n [yT y − 2θ XT y + θ T XT Xθ] :
T
Terme 1 : y y ne dépend pas de θ ⇒ sa dérivée est 0.
Terme 2 : −2θ T XT y = −2θ T c avec c = XT y (constant).
D'après la formule 1 :

(−2θ T XT y) = −2XT y
∂θ

Pr. ADDOU ML  S2  Régression multiple 18/53


Démo  calculer ∇J(θ)
1 T
On dérive terme par terme J(θ) = n [yT y − 2θ XT y + θ T XT Xθ] :
T
Terme 1 : y y ne dépend pas de θ ⇒ sa dérivée est 0.
Terme 2 : −2θ T XT y = −2θ T c avec c = XT y (constant).
D'après la formule 1 :

(−2θ T XT y) = −2XT y
∂θ

Terme 3 : θ T XT Xθ = θ T Aθ avec A = XT X (symétrique).


D'après la formule 2 :
∂ T T
(θ X Xθ) = 2XT Xθ
∂θ

Pr. ADDOU ML  S2  Régression multiple 18/53


Démo  calculer ∇J(θ)
1 T
On dérive terme par terme J(θ) = n [yT y − 2θ XT y + θ T XT Xθ] :
T
Terme 1 : y y ne dépend pas de θ ⇒ sa dérivée est 0.
Terme 2 : −2θ T XT y = −2θ T c avec c = XT y (constant).
D'après la formule 1 :

(−2θ T XT y) = −2XT y
∂θ

Terme 3 : θ T XT Xθ = θ T Aθ avec A = XT X (symétrique).


D'après la formule 2 :
∂ T T
(θ X Xθ) = 2XT Xθ
∂θ

Gradient total :

1 2 T
− 2XT y + 2XT Xθ = − XT y
 
∇J(θ) = 0 X Xθ
n n

Pr. ADDOU ML  S2  Régression multiple 18/53


Démo  résoudre ∇J(θ) = 0
Au minimum, le gradient est nul :
2 T
− XT y = 0

∇J(θ) = 0 =⇒ X Xθ
n

Pr. ADDOU ML  S2  Régression multiple 19/53


Démo  résoudre ∇J(θ) = 0
Au minimum, le gradient est nul :
2 T
− XT y = 0

∇J(θ) = 0 =⇒ X Xθ
n
2
On simplie (le facteur n disparaît) :
T
X Xθ = XT y
Cette équation porte un nom : les équations normales. Si XT X est inversible, on isole θ en
T
multipliant à gauche par (X X)
−1 :

(XT X)−1 (XT X)θ = (XT X)−1 XT y


I · θ = (XT X)−1 XT y
|{z}

FORMULE FINALE :
θ ∗ = (XT X)−1 XT y ■

Pr. ADDOU ML  S2  Régression multiple 19/53


Conditions d'inversibilité de XT X

★ Quand la formule échoue-t-elle ?

La formule θ ∗ = (XT X)−1 XT y nécessite que X


T X soit inversible. Quand est-ce le cas ?

Pr. ADDOU ML  S2  Régression multiple 20/53


Conditions d'inversibilité de XT X

★ Quand la formule échoue-t-elle ?

La formule θ ∗ = (XT X)−1 XT y nécessite que X


T X soit inversible. Quand est-ce le cas ?

X
T X est inversible si et seulement si :

1 n ≥d +1 : condition nécessaire

2 Les colonnes de X sont linéairement indépendantes : condition nécessaire et susante

Pr. ADDOU ML  S2  Régression multiple 20/53


Conditions d'inversibilité de XT X

★ Quand la formule échoue-t-elle ?

La formule θ ∗ = (XT X)−1 XT y nécessite que X


T X soit inversible. Quand est-ce le cas ?

Pr. ADDOU ML  S2  Régression multiple 21/53


Conditions d'inversibilité de XT X

★ Quand la formule échoue-t-elle ?

La formule θ ∗ = (XT X)−1 XT y nécessite que X


T X soit inversible. Quand est-ce le cas ?

Cas problématiques courants :


Feature dupliquée : surface en m2  2
et surface en pieds  (= 10.76 · m2 ) → dépendance linéaire
T
→ X X singulière
Trop peu d'exemples : n=3 mais d = 10 → impossible à résoudre par l'équation normale sous
cette forme
Feature constante : si la matrice X contient déjà une colonne de 1 pour le biais, alors une autre
colonne constante crée une dépendance linéaire

Pr. ADDOU ML  S2  Régression multiple 21/53


Conditions d'inversibilité de XT X

★ Quand la formule échoue-t-elle ?

La formule θ ∗ = (XT X)−1 XT y nécessite que X


T X soit inversible. Quand est-ce le cas ?

Cas problématiques courants :


Feature dupliquée : surface en m2  2
et surface en pieds  (= 10.76 · m2 ) → dépendance linéaire
T
→ X X singulière
Trop peu d'exemples : n=3 mais d = 10 → impossible à résoudre par l'équation normale sous
cette forme
Feature constante : si la matrice X contient déjà une colonne de 1 pour le biais, alors une autre
colonne constante crée une dépendance linéaire

☞ À retenir

Solutions si XT X n'est pas inversible : (1) supprimer les features redondantes, (2) ajouter de
la régularisation (Ridge  Partie 3), (3) utiliser la pseudo-inverse ou des méthodes d'optimisation
comme la descente de gradient.

Pr. ADDOU ML  S2  Régression multiple 21/53


Résumé visuel de la formule

inverse de labels
T
X X ((d +1)×(d +1)) n× 1

θ∗ = (XT X)−1 XT y

paramètres appris
(d + 1) × n
((d + 1) × 1)

Vérication des dimensions :

(XT X)−1 · |{z}


X
T
θ∗
· y = |{z} ✓
| {z } |{z}
(d+1)×(d+1) (d+1)×n n×1 (d+1)×1

Les dimensions coïncident. La formule est cohérente.

Pr. ADDOU ML  S2  Régression multiple 22/53


Exemple  régression multiple avec 2 features

Exemple : Données articielles conçues pour un calcul simple

4 exemples, 2 features (x1 , x2 ) et label y.

x1 x2 y
+1 +1 6
+1 −1 4
−1 +1 2
−1 −1 0

Note : les valeurs ±1 T


sont choisies pour que X X soit diagonale et très simple à inverser. Sur des
vraies données, on aurait des nombres quelconques.

On veut trouver le modèle : ŷ = w1 x1 + w2 x2 + b

Pr. ADDOU ML  S2  Régression multiple 23/53


Exemple  construire X et y

On ajoute la colonne de 1 à gauche pour absorber b :


   
1 1 1 6
1 1 −1 4 
X = 
1 −1 1  , y =  

2 
1 −1 −1 0

Ordre des colonnes : (1) constante pour b, (2) x1 , (3) x2 .


T
Donc θ = (b, w , w ) .
1 2
Dimensions : X est 4 × 3, y est 4 × 1. Le résultat θ sera 3 × 1.

Pr. ADDOU ML  S2  Régression multiple 24/53


Exemple  calculer XT X
 
1 1 1 1
T
X = 1 −1 −1
1
1 −1 1 −1
Calculons chaque élément de XT X (matrice 3 × 3) :
Ligne 1 (produits avec la colonne de 1) :
(1, 1) : 1 + 1 + 1 + 1 = 4
(1, 2) : 1 + 1 − 1 − 1 = 0
(1, 3) : 1 − 1 + 1 − 1 = 0
Ligne 2 (produits avec x1 ) :
(2, 1) = (1, 2) = 0 (symétrie)
(2, 2) : 1 + 1 + 1 + 1 = 4
(2, 3) : 1 − 1 − 1 + 1 = 0
Ligne 3 (produits avec x2 ) :
(3, 1) = 0, (3, 2) = 0 (symétrie)
(3, 3) : 1 + 1 + 1 + 1 = 4 
4 0 0

T
X X = 0 4 0 =4·I
0 0 4
Pr. ADDOU ML  S2  Régression multiple 25/53
Exemple  calculer (XT X)−1

Une matrice diagonale s'inverse très facilement :


 
1/4 0 0
1
(XT X)−1 = I =  0 1/4 0 
4
0 0 1/4

Pourquoi XT X est-elle diagonale ici ? Parce que les colonnes de X sont orthogonales (⟨coli , colj ⟩ =
0 pour i ̸= j ). C'est un cas idéal, pratique pour illustrer la méthode.
T
Sur de vraies données, X X serait en général une matrice avec des termes hors diagonale non nuls.
En pratique, on ne calcule pas son inverse à la main : on résout plutôt le système linéaire associé à
l'aide d'outils numériques stables.

Pr. ADDOU ML  S2  Régression multiple 26/53


Exemple  calculer XT y

 
  6
1 1 1 1
T
4
X y = 1 1 −1 −1  
2
1 −1 1 −1
0
   
6+4+2+0 12
= 6 + 4 − 2 − 0 =  8 
6−4+2−0 4

Pr. ADDOU ML  S2  Régression multiple 27/53


Exemple  calculer θ∗
Enn, multiplions :

θ ∗ = (XT X)−1 XT y
  
1 0 0 12
1
= 0 1 0  8 
4
0 0 1 4
   
12 3
1
=  8  = 2 
4
4 1

Résultat nal :
b ∗ = 3, w1∗ = 2, w2∗ = 1
Modèle : ŷ = 2x1 + 1 · x2 + 3

Pr. ADDOU ML  S2  Régression multiple 28/53


Exemple  vérication des prédictions

Vérions que le modèle prédit parfaitement les 4 exemples :

x1 x2 y ŷ = 2x1 + x2 + 3 Erreur

+1 +1 6 2(1)
+1+3=6 0

+1 −1 4 2(1)+ (−1) + 3 = 4 0

−1 +1 2 2(−1) + 1 + 3 = 2 0

−1 −1 0 2(−1) + (−1) + 3 = 0 0

MSE = 0 : le modèle passe exactement par tous les points ! ✓

Pourquoi MSE = 0 ici ? Parce que les données ont été générées exactement par le modèle y =
2x1 +x2 + 3, sans bruit. Avec des données réelles bruitées, on aurait généralement une MSE strictement
positive.

Pr. ADDOU ML  S2  Régression multiple 29/53


Exemple  prédiction pour un nouveau point

Exemple : Prédire pour un nouveau point (x1 , x2 ) = (2, −1)

ŷ = 2 · 2 + 1 · (−1) + 3 = 4 − 1 + 3 = 6
Ou en forme matricielle :
 
3

ŷ = 1 2 −1 2 = 1 · 3 + 2 · 2 + (−1) · 1 = 3 + 4 − 1 = 6
1

Les deux méthodes donnent la même réponse : ŷ = 6.

☞ À retenir

Une fois que vous avez θ ∗ , la prédiction pour n'importe quel nouveau point xnouveau se fait en calculant
T ∗
ŷ = xnouveau θ (en ajoutant un 1 au début pour le biais).

Pr. ADDOU ML  S2  Régression multiple 30/53


Pourquoi utiliser des features polynomiales ?

★ Le problème

La régression linéaire trace une droite (simple) ou un hyperplan (multiple). Mais certaines
données suivent une courbe. Une droite devient alors trop restrictive.
y

Données Droite : ŷ = 4
Polynôme : ŷ = −x 2 + 6x − 3

Pr. ADDOU ML  S2  Régression multiple 31/53


Pourquoi utiliser des features polynomiales ?

★ Le problème

La régression linéaire trace une droite (simple) ou un hyperplan (multiple). Mais certaines
données suivent une courbe. Une droite devient alors trop restrictive.

☞ À retenir
Ici, les données ont une forme courbe. Une ré-
y

gression polynomiale peut mieux capturer cette


structure qu'une simple droite.

Données Droite : ŷ = 4
Polynôme : ŷ = −x 2 + 6x − 3

Pr. ADDOU ML  S2  Régression multiple 31/53


L'idée : enrichir les features

Features polynomiales

Au lieu d'utiliser seulement la feature x, on construit de nouvelles features comme


x 2, x 3, . . . , x p .
Ainsi, un modèle de degré 2 s'écrit : ŷ = w1 x + w2 x 2 + b
et un modèle de degré 3 : ŷ = w1 x + w2 x 2 + w3 x 3 + b

Pr. ADDOU ML  S2  Régression multiple 32/53


L'idée : enrichir les features

Features polynomiales

Au lieu d'utiliser seulement la feature x, on construit de nouvelles features comme


x 2, x 3, . . . , x p .
Ainsi, un modèle de degré 2 s'écrit : ŷ = w1 x + w2 x 2 + b
et un modèle de degré 3 : ŷ = w1 x + w2 x 2 + w3 x 3 + b

Exemple : Transformation

x −→ (x, x 2 , x 3 , . . . , x p )
Le nombre d'exemples ne change pas ; seul le nombre de features augmente.

Pr. ADDOU ML  S2  Régression multiple 32/53


L'idée : enrichir les features

Features polynomiales

Au lieu d'utiliser seulement la feature x, on construit de nouvelles features comme


x 2, x 3, . . . , x p .
Ainsi, un modèle de degré 2 s'écrit : ŷ = w1 x + w2 x 2 + b
et un modèle de degré 3 : ŷ = w1 x + w2 x 2 + w3 x 3 + b

Exemple : Transformation

x −→ (x, x 2 , x 3 , . . . , x p )
Le nombre d'exemples ne change pas ; seul le nombre de features augmente.

☞ À retenir
On ne change pas l'idée de la régression : on change seulement la représentation des données.

Pr. ADDOU ML  S2  Régression multiple 32/53


Pourquoi ce modèle reste-t-il linéaire ?

Exemple : Changement de variables

Posons : z1 = x, z2 = x 2
Alors ŷ = w1 x + w2 x 2 + b
devient ŷ = w1 z1 + w2 z2 + b

Pr. ADDOU ML  S2  Régression multiple 33/53


Pourquoi ce modèle reste-t-il linéaire ?

Exemple : Changement de variables

Posons : z1 = x, z2 = x 2
Alors ŷ = w1 x + w2 x 2 + b
devient ŷ = w1 z1 + w2 z2 + b

★ Idée essentielle

Une fois les nouvelles features construites, on obtient simplement une régression linéaire
multiple sur les variables (z1 , z2 ).

Pr. ADDOU ML  S2  Régression multiple 33/53


Pourquoi ce modèle reste-t-il linéaire ?

Exemple : Changement de variables

Posons : z1 = x, z2 = x 2
Alors ŷ = w1 x + w2 x 2 + b
devient ŷ = w1 z1 + w2 z2 + b

★ Idée essentielle

Une fois les nouvelles features construites, on obtient simplement une régression linéaire
multiple sur les variables (z1 , z2 ).

☞ À retenir
En machine learning,  linéaire  signie ici : linéaire par rapport aux paramètres, pas nécessaire-
ment linéaire par rapport à x.

Pr. ADDOU ML  S2  Régression multiple 33/53


Comparer les deux points de vue

Linéaire en x? Linéaire par rapport aux


paramètres ?

✓Oui : c'est une droite ✓Oui


ŷ = wx + b

✗Non : le graphe est une ✓Oui : w1 , w2 , b sont au pre-


ŷ = w1 x + w2 x 2 + b courbe mier degré

✗Non : le graphe est une pa- ✓Oui : a, b , c sont au pre-


ŷ = ax 2 + bx + c rabole mier degré

✗Non ✗Non : le paramètre b est


ŷ = ae bx dans l'exponentielle

Pr. ADDOU ML  S2  Régression multiple 34/53


Comparer les deux points de vue

Ainsi, les modèles


ŷ = w1 x + w2 x 2 + b et ŷ = ax 2 + bx + c
sont demême nature mathématique : ils sont non linéaires en x , mais linéaires par rapport
aux paramètres.

Pr. ADDOU ML  S2  Régression multiple 35/53


Comparer les deux points de vue

Ainsi, les modèles


ŷ = w1 x + w2 x 2 + b et ŷ = ax 2 + bx + c
sont demême nature mathématique : ils sont non linéaires en x , mais linéaires par rapport
aux paramètres.

☞ À retenir
La régression linéaire signie linéaire par rapport aux paramètres, pas nécessairement par rapport
aux features. Toute la théorie (MSE, équation normale, gradient) s'applique sans modication, tant
que le modèle reste linéaire par rapport aux paramètres.

Pr. ADDOU ML  S2  Régression multiple 35/53


Calcul de la droite  régression linéaire simple

Exemple : Même jeu de données

(1, 2), (2, 5), (3, 6), (4, 5), (5, 2)


y

On cherche une droite de la forme :

ŷ = wx + b
P
i (x − x̄)(yi − ȳ )
x w =∗ Pi 2
, b ∗ = ȳ − w ∗ x̄
i (xi − x̄)
Données Droite : ŷ = 4
Polynôme : ŷ = −x 2 + 6x − 3

Pr. ADDOU ML  S2  Régression multiple 36/53


Calcul de la droite  régression linéaire simple

Exemple : Même jeu de données

(1, 2), (2, 5), (3, 6), (4, 5), (5, 2)


y

On cherche une droite de la forme :

ŷ = wx + b
P
i (x − x̄)(yi − ȳ )
x w =∗ Pi 2
, b ∗ = ȳ − w ∗ x̄
i (xi − x̄)
Données Droite : ŷ = 4
Polynôme : ŷ = −x 2 + 6x − 3

★ x̄; ȳ
1 +2+3+4+5 2 +5+6+5+2
x̄ = = 3, ȳ = =4
5 5

Pr. ADDOU ML  S2  Régression multiple 36/53


Calcul de la droite  détail
Numérateur : X
(xi − x̄)(yi − ȳ )
i

= (1 − 3)(2 − 4) + (2 − 3)(5 − 4) + (3 − 3)(6 − 4) + (4 − 3)(5 − 4) + (5 − 3)(2 − 4)


= (−2)(−2) + (−1)(1) + (0)(2) + (1)(1) + (2)(−2) = 0
Dénominateur :

(xi − x̄)2 = (1 − 3)2 + (2 − 3)2 + (3 − 3)2 + (4 − 3)2 + (5 − 3)2 = 10


X

Donc :
0
w∗ = = 0, b∗ = 4
10

La droite obtenue est :


ŷ = 4

Pr. ADDOU ML  S2  Régression multiple 37/53


Erreur de la droite obtenue

x y ŷ (y − ŷ )2
1 2 4 4
2 5 4 1
3 6 4 4
4 5 4 1
5 2 4 4

14
MSE = = 2.8
5

☞ À retenir
Même la meilleure droite garde ici une erreur non nulle, car les données ont une structure courbe.

Pr. ADDOU ML  S2  Régression multiple 38/53


Modèle polynomial de degré 2
Nouvelles features

On passe de x à (x, x 2 ), et on choisit :

ŷ = w1 x + w2 x 2 + b

Avec colonne de 1 : 
b
ŷ = Xθ, θ = w1 
w2

   
1 1 1 2
1 2 4 5 
   
X = 1 3 9 , y = 6 
   
1 4 16 5 
1 5 25 2

Pr. ADDOU ML  S2  Régression multiple 39/53


Calcul de XT X et XT y

 
5 15 55
T
X X = 15 55 225
55 225 979
 
20
T
X y =  60 
206

L'équation normale donne :


θ ∗ = (XT X)−1 XT y
ou, de façon équivalente, on résout :

(XT X)θ = XT y

Pr. ADDOU ML  S2  Régression multiple 40/53


Résolution et modèle nal
Le système à résoudre est : 
5b + 15w1 + 55w2 = 20

15b + 55w1 + 225w2 = 60

55b + 225w1 + 979w2 = 206

Sa solution est :
 
−3
θ∗ =  6 
−1
Donc :
b = −3, w1 = 6, w2 = −1

Le modèle polynomial nal est :

ŷ = −x 2 + 6x − 3

Pr. ADDOU ML  S2  Régression multiple 41/53


Erreur du modèle polynomial et comparaison

Exemple : Régression linéaire simple Exemple : Régression polynomiale

ŷ = 4 ŷ = −x 2 + 6x − 3
MSE = 2.8 ŷi = yi pour tous les points

MSE =0

☞ À retenir
La régression polynomiale améliore ici fortement l'ajustement, car elle peut représenter une courbe
que la droite ne peut pas capturer.

Pr. ADDOU ML  S2  Régression multiple 42/53


Attention au degré : le compromis biaisvariance

Degré 1  UNDERFITTING Degré 2  BON Degré 15  OVERFITTING

☞ À retenir
Le degré p est un hyperparamètre. Si p augmente, le biais diminue, mais la variance peut augmenter.
Il faut donc choisir le degré sur un ensemble de validation.

Pr. ADDOU ML  S2  Régression multiple 43/53


Cas multi-features : interactions

Avec plusieurs features

Avec 2 features x1 et x2 , un modèle polynomial de degré 2 utilise :

x1 , x2 , x12 , x22 , x1 x2

Le terme x 1 x2 est un terme d'interaction.

Pr. ADDOU ML  S2  Régression multiple 44/53


Cas multi-features : interactions

Avec plusieurs features

Avec 2 features x1 et x2 , un modèle polynomial de degré 2 utilise :

x1 , x2 , x12 , x22 , x1 x2

Le terme x 1 x2 est un terme d'interaction.

Exemple : Exemple

Si x1 est la surface et x2 l'étage, le terme x1 x2 capture un eet combiné entre ces deux
variables.

Pr. ADDOU ML  S2  Régression multiple 44/53


Cas multi-features : interactions

Avec plusieurs features

Avec 2 features x1 et x2 , un modèle polynomial de degré 2 utilise :

x1 , x2 , x12 , x22 , x1 x2

Le terme x 1 x2 est un terme d'interaction.

Exemple : Exemple

Si x1 est la surface et x2 l'étage, le terme x1 x2 capture un eet combiné entre ces deux
variables.

☞ À retenir
Le nombre de paramètres augmente vite avec le degré : il faut donc rester prudent pour éviter
l'overtting.

Pr. ADDOU ML  S2  Régression multiple 44/53


Features polynomiales  en Python

Exemple : Avec scikit-learn

from [Link] import PolynomialFeatures


from sklearn.linear_model import LinearRegression
poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X)
model = LinearRegression()
[Link](X_poly, y)

Pr. ADDOU ML  S2  Régression multiple 45/53


Features polynomiales  en Python

Exemple : Avec scikit-learn

from [Link] import PolynomialFeatures


from sklearn.linear_model import LinearRegression
poly = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly.fit_transform(X)
model = LinearRegression()
[Link](X_poly, y)

☞ À retenir
Le pipeline reste toujours le même :

1 transformer les features ;

2 appliquer la régression linéaire.

La nouveauté vient de la représentation des données, pas de l'algorithme lui-même.

Pr. ADDOU ML  S2  Régression multiple 45/53


✎ TD  Exercice 1  Régression multiple (25 min, groupe)

Données avec 2 features : x1 x2 y


1 0 3
2 1 7
0 1 3
1 2 7

1 Construire X (taille 4 × 3, avec colonne de 1) et y.

2 T
Calculer X X (matrice 3 × 3). Vérier qu'elle est symétrique.

3 T
Calculer X y.
 
5 −2 −2
4 En supposant que (XT X)−1 = 1
4
−2 2 0  (donné), calculer θ∗ .
−2 0 2

5 Donner l'équation du modèle : ŷ = . . .


6 Vérier le modèle sur les 4 points (calculer ŷi et les comparer aux yi ).
7 Prédire ŷ pour (x1 , x2 ) = (3, 2).
Pr. ADDOU ML  S2  Régression multiple 46/53
✓ Solution  Exercice 1 (1/2)
   
1 1 0 3
1 2 1 7
1. X = 
1
, y =
3.

0 1
1 1 2 7
2. T
X X :
(1, 1) = 1 + 1 + 1 + 1 = 4
(1, 2) = 1 + 2 + 0 + 1 = 4
(1, 3) = 0 + 1 + 1 + 2 = 4
(2, 2) = 1 + 4 + 0 + 1 = 6
(2, 3) = 0 + 2 + 0 + 2 = 4
(3, 3) = 0 + 1 + 1 + 4 = 6
 
4 4 4
T
X X = 4 6 4. Symétrique ✓
4 4 6
   
+7+3+7
3 20
3. T
X y = 3 + 14 + 0 + 7 = 24
0 + 7 + 3 + 14 24

Pr. ADDOU ML  S2  Régression multiple 47/53


✓ Solution  Exercice 1 (2/2)
  
5 −2 −2 20
4. θ ∗ = (XT X)−1 XT y = 1
−2
4 2 0  24
−2 0 2 24
       
5 · 20 + (−2) · 24 + (−2) · 24 − 48 − 48
100 4 1
1  −2 · 20 + 2 · 24 + 0 · 24  = 1  −40 + 48  = 1
= 4 4 4
8 = 2
−2 · 20 + 0 · 24 + 2 · 24 −40 + 48 8 2
∗ ∗ ∗
b = 1, w1 = 2, w2 = 2
5. Modèle : ŷ = 2x1 + 2x2 + 1.
6. Vérication :

x1 x2 y ŷ = 2x1 + 2x2 + 1 y − ŷ
1 0 3 2+0+1=3 0
2 1 7 4+2+1=7 0
0 1 3 0+2+1 = 3 0
1 2 7 2+4+1 = 7 0

Tous les résidus sont nuls : le modèle est exact !


7. Pour (x1 , x2 ) = (3, 2) : ŷ = 2(3) + 2(2) + 1 = 6 + 4 + 1 = 11
Pr. ADDOU ML  S2  Régression multiple 48/53
✎ TD  Exercice 2  Questions conceptuelles (8 min)

Vrai ou Faux. Justiez en 1 phrase.

1 T
La matrice X X est toujours symétrique.

2 T
Si deux features sont identiques (colonnes copiées), X X est non inversible.

3 Pour d = 100 000 features, l'équation normale est plus rapide que la descente de gradient.

4 Dans la colonne de 1 ajoutée à X, les 1 sont là pour absorber le biais b.


5 Avec les features polynomiales, la régression peut capturer des relations non linéaires.

6 La dimension de θ est (d + 1) × 1 quand on a d features et qu'on ajoute la colonne de 1.

7 T
X X est inversible même si n < d + 1.

Pr. ADDOU ML  S2  Régression multiple 49/53


✓ Solution  Exercice 2
1 ✓ Vrai. (XT X)T = XT (XT )T = XT X. Symétrie par construction.

2 ✓ Vrai. T
Deux colonnes identiques impliquent une dépendance linéaire, donc X X n'est pas inversible.

3 ✗ Faux. Quand le nombre de features est très grand, l'équation normale devient en général coûteuse,
alors que la descente de gradient peut être plus adaptée.

4 ✓ Vrai. La colonne de 1 permet d'écrire ŷ = Xθ sans terme +b séparé.

5 ✓ Vrai. Les features polynomiales permettent de capturer des relations non linéaires tout en gardant
un modèle linéaire par rapport aux paramètres.

6 ✓ Vrai. θ contient d poids plus le biais, donc sa dimension est (d + 1) × 1.


7 ✗ Faux. Si n < d + 1, alors le rang de X ne peut pas atteindre d + 1, donc les colonnes de X ne
T
peuvent pas être linéairement indépendantes et X X n'est pas inversible.

Pr. ADDOU ML  S2  Régression multiple 50/53


Récapitulatif de la Partie 2.2
☞ À retenir

Concept Dénition/formule
Régression multiple ŷ = w1 x1 + · · · + wd xd + b
Notation matricielle ŷ = Xθ
Astuce colonne de 1 Ajouter une colonne de 1 à X pour absorber b
MSE matricielle J(θ) = n1 ∥y − Xθ∥2
Équation normale θ ∗ = (XT X)−1 XT y si XT X est inversible
Dimensions X : n × (d + 1), y : n × 1, θ : (d + 1) × 1
T
Inversibilité de X X Colonnes de X lin. indépendantes ; en particulier, il faut n≥
d +1
Features polynomiales x → [x, x 2 , . . . , x p ] puis rég. lin. classique sur ces features
Interactions x1 x2 = eet combiné de 2 features (degré 2 multi-features)
Degré = hyperparam. Degré ↑ : biais ↓ mais variance ↑. Choisir sur validation set
Complexité La résolution devient coûteuse quand d est grand
Alternative Descente de gradient ou méthodes numériques adaptées si d
est grand
Pr. ADDOU ML  S2  Régression multiple 51/53
Formules clés de cette partie

Pd
Modèle multiple ŷ = j=1 wj xj +b

Forme matricielle ŷ = Xθ

Coût matriciel J(θ) = n1 (y − Xθ)T (y − Xθ)

Gradient ∇J(θ) = n2 (XT Xθ − XT y)

Équation normale θ ∗ = (XT X)−1 XT y si X


T X est inversible


Prédiction nouvelle ŷnew = xT
new θ

Pr. ADDOU ML  S2  Régression multiple 52/53


Fin Partie 2.2
Suite : Partie 3  Régularisation et évaluation
Comment éviter l'overtting quand d est grand ?

Ridge (L2), Lasso (L1), ElasticNet

2
Métriques : R , MAE, RMSE

Pause 10 minutes

Pr. ADDOU ML  S2  Régression multiple 53/53


Module : Machine Learning
Chapitre 3  Partie 1/3 : De la régression à la classication

Pr. ADDOU Mohammed

Master Intelligence Articielle et Science des Données


Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.3  Rég. logistique 1/39


Plan du Chapitre 3  Régression logistique

▶ Partie 1 : De la régression à la classication (aujourd'hui)


1 Pourquoi la régression linéaire est mal adaptée à la classication
2 1
La fonction sigmoïde σ(z) = 1+e −z
3 Le modèle logistique : P(y = 1 | x) = σ(wT x + b)
4 Interprétation probabiliste, odds et log-odds
5 La frontière de décision
6 Exemple numérique complet

Partie 2 : Entraînement (cross-entropy, gradient, algorithme)


Partie 3 : Évaluation (matrice de confusion, précision, rappel, F1, ROC)

Prérequis : Chapitres 1 et 2 : régression linéaire, MSE, gradient et régularisation. La régression


logistique reprend la notation matricielle, l'idée de score linéaire et les techniques d'optimisation,
mais transforme ce score en probabilité à l'aide de la fonction sigmoïde. La fonction de coût sera
également adaptée à la classication.

Pr. ADDOU ML  Ch.3  Rég. logistique 2/39


Rappel : régression vs classication

Régression (Ch. 2)
y ∈R (variable continue)

Ex. : prix d'un appartement


Sortie : ŷ = 185 000 EUR

Modèle : ŷ = wT x + b
Métriques : MSE, RMSE, R
2

Pr. ADDOU ML  Ch.3  Rég. logistique 3/39


Rappel : régression vs classication

Régression (Ch. 2) Classication binaire (Ch. 3)


y ∈R (variable continue) y ∈ {0, 1} (classe discrète)

Ex. : prix d'un appartement Ex. : email spam ou non spam


Sortie : ŷ = 185 000 EUR Sortie : ŷ = 1 (spam)

Modèle : ŷ = wT x + b Modèle : ???


Métriques : MSE, RMSE, R
2 Métriques : accuracy, F1-score, AUC. . .

Pr. ADDOU ML  Ch.3  Rég. logistique 3/39


Rappel : régression vs classication

Régression (Ch. 2) Classication binaire (Ch. 3)


y ∈R (variable continue) y ∈ {0, 1} (classe discrète)

Ex. : prix d'un appartement Ex. : email spam ou non spam


Sortie : ŷ = 185 000 EUR Sortie : ŷ = 1 (spam)

Modèle : ŷ = wT x + b Modèle : ???


Métriques : MSE, RMSE, R
2 Métriques : accuracy, F1-score, AUC. . .

★ La question clé de ce chapitre

Peut-on réutiliser le score linéaire w


T x + b pour faire de la classication ? Si oui, comment

l'adapter an d'obtenir une probabilité d'appartenance à une classe ?

Pr. ADDOU ML  Ch.3  Rég. logistique 3/39


Idée naïve : utiliser un modèle linéaire pour classier

Exemple : Détection de tumeur maligne (y = 1) vs bénigne (y = 0)


On considère une seule variable explicative : la taille de la tumeur (x , en cm). Une idée simple
consiste à entraîner un modèle linéaire ŷ = wx + b , puis à appliquer un seuil :

ŷ ≥ 0.5 ⇒ maligne, ŷ < 0.5 ⇒ bénigne.

Modèle linéaire
1 (maligne)

Seuil 0.5
/

0.5 (seuil)
y

0 (bénigne)

0 1 2 3 4 5 6 7 8 9 10

Taille de la tumeur (cm)

Dans ce cas simple, le seuillage du modèle linéaire semble produire une séparation correcte entre les
deux classes. Cependant, cette approche reste fragile : que se passe-t-il si l'on ajoute une observation
extrême ?
Pr. ADDOU ML  Ch.3  Rég. logistique 4/39
Le problème : sensibilité aux points extrêmes

Point extrême
Modèle initial
1 (maligne) Modèle après ajout du point extrême
points positifs mal classés


Seuil 0.5

/
0.5 (seuil)

y
0 (bénigne)

0 2 4 6 8 10 12 14 16 18 20 22

Taille de la tumeur (cm)

Pr. ADDOU ML  Ch.3  Rég. logistique 5/39


Le problème : sensibilité aux points extrêmes

Point extrême
Modèle initial
1 (maligne) Modèle après ajout du point extrême
points positifs mal classés


Seuil 0.5

/
0.5 (seuil)

y
0 (bénigne)

0 2 4 6 8 10 12 14 16 18 20 22

Taille de la tumeur (cm)

☞ À retenir
Trois limites principales de la régression linéaire pour la classication :
1 ŷ peut sortir de l'intervalle [0, 1] : par exemple, des valeurs comme −3 ou 5 ne peuvent pas être
interprétées comme des probabilités.
2 Un point extrême peut fortement déplacer la droite ajustée et donc modier la frontière de décision
obtenue par seuillage.
3 La MSE n'est pas la fonction de coût la plus adaptée lorsque y ∈ {0, 1}, car elle ne modélise pas
directement une probabilité binaire.
Pr. ADDOU ML  Ch.3  Rég. logistique 5/39
La solution : transformer le score en probabilité

★ Idée intuitive

Au lieu d'interpréter directement le score linéaire z = w


Tx + b, qui peut prendre n'importe
quelle valeur réelle, on le transforme à l'aide d'une fonction qui produit une valeur comprise
entre 0 et 1. Cette fonction est la sigmoïde.

z ∈R
x (features) z = wT x + b p̂ = σ(z) p̂ ∈ (0, 1)

Pr. ADDOU ML  Ch.3  Rég. logistique 6/39


La solution : transformer le score en probabilité

★ Idée intuitive

Au lieu d'interpréter directement le score linéaire z = w


Tx + b, qui peut prendre n'importe
quelle valeur réelle, on le transforme à l'aide d'une fonction qui produit une valeur comprise
entre 0 et 1. Cette fonction est la sigmoïde.

z ∈R
x (features) z = wT x + b p̂ = σ(z) p̂ ∈ (0, 1)

Pipeline du modèle logistique :


1 Calculer le score linéaire : z = wT x + b.

Pr. ADDOU ML  Ch.3  Rég. logistique 6/39


La solution : transformer le score en probabilité

★ Idée intuitive

Au lieu d'interpréter directement le score linéaire z = w


Tx + b, qui peut prendre n'importe
quelle valeur réelle, on le transforme à l'aide d'une fonction qui produit une valeur comprise
entre 0 et 1. Cette fonction est la sigmoïde.

z ∈R
x (features) z = wT x + b p̂ = σ(z) p̂ ∈ (0, 1)

Pipeline du modèle logistique :


1 score linéaire : z = wT x + b.
Calculer le
2 Transformer ce score en une probabilité : p̂ = σ(z), avec p̂ ∈ (0, 1). ( p̂ ∈]0, 1[ )

Pr. ADDOU ML  Ch.3  Rég. logistique 6/39


La solution : transformer le score en probabilité

★ Idée intuitive

Au lieu d'interpréter directement le score linéaire z = w


Tx + b, qui peut prendre n'importe
quelle valeur réelle, on le transforme à l'aide d'une fonction qui produit une valeur comprise
entre 0 et 1. Cette fonction est la sigmoïde.

z ∈R
x (features) z = wT x + b p̂ = σ(z) p̂ ∈ (0, 1)

Pipeline du modèle logistique :


1 score linéaire : z = wT x + b.
Calculer le
2 Transformer ce score en une probabilité : p̂ = σ(z), avec p̂ ∈ (0, 1). ( p̂ ∈]0, 1[ )
3 Appliquer une règle de décision, par exemple :
(
1, si p̂ ≥ 0.5,
ŷ =
0, sinon.

Pr. ADDOU ML  Ch.3  Rég. logistique 6/39


La sigmoïde : dénition et premières propriétés

Fonction sigmoïde (ou fonction logistique)

1
σ(z) = , z ∈R
1 + e −z
avec
σ(z) ∈ (0, 1).

1 1
σ(z) = z → +∞ ⇒ σ(z) → 1
1 + e −z
0.75
σ(z)

0.5
σ(0) = 0.5

0.25
z → −∞ ⇒ σ(z) → 0
0

−8 −6 −4 −2 0 2 4 6 8
z
Pr. ADDOU ML  Ch.3  Rég. logistique 7/39
Propriétés fondamentales de σ(z)
P
Math  5 propriétés à connaître

Domaine z ∈R et σ(z) ∈ (0, 1)


Limites lim σ(z) = 0 et lim σ(z) = 1
z→−∞ z→+∞
1 1
Centre σ(0) = = = 0.5
1 + e0 2

Symétrie σ(−z) = 1 − σ(z) : symétrie centrale par rapport au point


(0, 0.5)
σ ′ (z) = σ(z)

Monotonie et dérivée σ est strictement croissante et 1 − σ(z)

Pr. ADDOU ML  Ch.3  Rég. logistique 8/39


Propriétés fondamentales de σ(z)
P
Math  5 propriétés à connaître

Domaine z ∈R et σ(z) ∈ (0, 1)


Limites lim σ(z) = 0 et lim σ(z) = 1
z→−∞ z→+∞
1 1
Centre σ(0) = = = 0.5
1 + e0 2

Symétrie σ(−z) = 1 − σ(z) : symétrie centrale par rapport au point


(0, 0.5)
σ ′ (z) = σ(z)

Monotonie et dérivée σ est strictement croissante et 1 − σ(z)

☞ À retenir

σ ′ (z) = σ(z)

La relation : 1 − σ(z)
est particulièrement importante : elle exprime la dérivée de la sigmoïde en fonction de la sigmoïde
elle-même. Cette propriété simplie le calcul du gradient lors de l'entraînement du modèle logistique.

Pr. ADDOU ML  Ch.3  Rég. logistique 8/39


Calculs numériques  s'entraîner

Exemple : Calculer σ(z) pour diérentes valeurs ☞ À retenir


de z Règle de lecture :
1
z e −z σ(z) = Interprétation z < 0 ⇒ σ(z) < 0.5,
1 + e −z
1
−5 148.41 ≈ 0.0067 Probabilité très faible z = 0 ⇒ σ(z) = 0.5,
149.41
pour la classe 1
1 z > 0 ⇒ σ(z) > 0.5.
−2 7.39 ≈ 0.119 Probabilité faible pour
8.39
la classe 1 Ainsi, plus z est grand, plus la proba-
1 bilité estimée d'appartenir à la classe
0 1 = 0.5 Point d'indécision :
2 1 est élevée.
50%
1
+2 0.135 ≈ 0.881 Probabilité élevée pour
1.135
la classe 1
1
+5 0.0067 ≈ 0.993 Probabilité très élevée
1.0067
pour la classe 1

Pr. ADDOU ML  Ch.3  Rég. logistique 9/39


Démonstration : σ(−z) = 1 − σ(z)

Pr. ADDOU ML  Ch.3  Rég. logistique 10/39


Démonstration : σ(−z) = 1 − σ(z)

P
Math  Preuve

1 1
σ(−z) = = .
1 + e −(−z) 1 + ez
En multipliant le numérateur et le dénominateur par e −z , on obtient :

e −z e −z e −z
σ(−z) = = = .
e −z (1 + e z ) e −z + 1 1 + e −z

D'autre part :
1 1 + e −z − 1 e −z
1 − σ(z) = 1 − = = .
1 + e −z 1 + e −z 1 + e −z

Ainsi :
σ(−z) = 1 − σ(z). ■

Pr. ADDOU ML  Ch.3  Rég. logistique 10/39


σ ′ (z) = σ(z) 1 − σ(z)

Démonstration :

Pr. ADDOU ML  Ch.3  Rég. logistique 11/39


σ ′ (z) = σ(z) 1 − σ(z)

Démonstration :

P
Math  Preuve

1
On part de la dénition : σ(z) = 1+e −z = (1 + e −z )−1 .
Par la règle de la chaîne : σ ′ (z) = −(1 + e −z )−2 × (−e −z ) = e −z
(1+e −z )2
.
1 e −z e −z
On factorise ensuite : σ ′ (z) = 1+e −z × 1+e −z = σ(z) × 1+e −z .
e −z 1
Or :
1+e −z =1− = 1 − σ(z).
1+e −z
σ ′ (z) = σ(z) 1 − σ(z) .

Donc : ■

Pr. ADDOU ML  Ch.3  Rég. logistique 11/39


Conséquence : pente maximale de la sigmoïde

Pr. ADDOU ML  Ch.3  Rég. logistique 12/39


Conséquence : pente maximale de la sigmoïde
P
Math  Pourquoi la dérivée est maximale en z =0 ?



On a montré que : σ (z) = σ(z) 1 − σ(z) .

Comme σ(z) ∈ (0, 1), posons : u = σ(z), u ∈ (0, 1).



Alors : σ (z) = u(1 − u).
2
On étudie donc la fonction : g (u) = u(1 − u) = u − u .

Cette fonction est une parabole concave, car le coecient de u2 est négatif. Son maximum est
donc atteint au sommet.

Sa dérivée est : g ′ (u) = 1 − 2u.


Le maximum est atteint lorsque : g ′ (u) = 0 ⇐⇒ 1 − 2u = 0 ⇐⇒ u = 12 .

Ainsi, σ ′ (z) est maximale lorsque : σ(z) = 12 .


1
Or : σ(z) = 2 ⇐⇒ z = 0.
′ 1 1 1
 
Donc : σ (0) = σ(0) 1 − σ(0) = 2 1− 2 = 4 = 0.25.
La pente est donc maximale au centre de la courbe. Lorsque z devient très grand ou très petit, σ(z)
se rapproche de 1 ou de 0, et la dérivée tend vers 0 : c'est le phénomène de saturation.
Pr. ADDOU ML  Ch.3  Rég. logistique 12/39
Le modèle de régression logistique

Régression logistique  modèle binaire

1
p̂ = P(y = 1 | x) = σ(wT x + b) = .
1 + e −(wT x+b)
Règle de décision avec un seuil 0.5 :
(
1, si p̂ ≥ 0.5,
ŷ =
0, si p̂ < 0.5.

Décomposition en trois étapes :


1 Score linéaire : z = wT x + b = w1 x1 + w2 x2 + · · · + wd xd + b.
2 Probabilité estimée : p̂ = σ(z) ∈ (0, 1).
3 Décision : appliquer un seuil de classication, souvent xé à 0.5 par défaut.

Pr. ADDOU ML  Ch.3  Rég. logistique 13/39


Le modèle de régression logistique

☞ À retenir

Malgré son nom, la régression logistique est principalement utilisée pour la classication.
Elle combine un score linéaire avec la fonction sigmoïde an d'estimer une probabilité
d'appartenance à la classe positive.

Pr. ADDOU ML  Ch.3  Rég. logistique 14/39


Interprétation probabiliste

★ Ce que fournit le modèle

La régression logistique ne produit pas directement une simple étiquette classe 0 ou classe
1. Elle estime d'abord une probabilité :

p̂ = P(y = 1 | x).

Par exemple :

p̂ = 0.92 ⇒ le modèle estime une probabilité de 92% pour la classe 1.

Pr. ADDOU ML  Ch.3  Rég. logistique 15/39


Interprétation probabiliste

Exemple : Trois patients et leur probabilité estimée de maladie

Patient z = wT x + b p̂ = σ(z) ŷ Interprétation

Ahmed −3.0 0.047 0 Probabilité faible de maladie

Sara +0.2 0.550 1 Probabilité proche du seuil

Ibrahim +4.5 0.989 1 Probabilité très élevée de maladie

Sara (p̂ = 0.55) est classé dans la classe positive avec le seuil 0.5, mais sa probabilité estimée
est proche de la frontière de décision. Dans une application médicale, ce type de cas doit
être interprété avec prudence et peut justier des informations ou examens complémentaires.

Pr. ADDOU ML  Ch.3  Rég. logistique 16/39


Problématique : que signie le score linéaire ?

★ Point de départ

Dans la régression logistique, le modèle calcule d'abord un score linéaire : z = wT x + b.


Puis ce score est transformé en probabilité : p̂ = σ(z) = P(y = 1 | x).

Question importante
Si p̂ est une probabilité, alors elle est facile à interpréter.
Mais que représente exactement le score z ? z = 2.5 ? z = −1.2 ?
Peut-on donner une interprétation statistique à ce score linéaire ?

Pr. ADDOU ML  Ch.3  Rég. logistique 17/39


Problématique : que signie le score linéaire ?

★ Point de départ

Dans la régression logistique, le modèle calcule d'abord un score linéaire : z = wT x + b.


Puis ce score est transformé en probabilité : p̂ = σ(z) = P(y = 1 | x).

Question importante
Si p̂ est une probabilité, alors elle est facile à interpréter.
Mais que représente exactement le score z ? z = 2.5 ? z = −1.2 ?
Peut-on donner une interprétation statistique à ce score linéaire ?

☞ À retenir
Pour répondre à cette question, nous allons introduire deux notions : odds et log-odds.
Elles permettront de montrer que le score linéaire z n'est pas arbitraire : il représente lelog-odds de
la classe positive.

Pr. ADDOU ML  Ch.3  Rég. logistique 17/39


Pourquoi introduire les odds et le log-odds ?

☞ À retenir
Les notions d' odds et de log-odds sont introduites pour trois raisons :
1 comprendre ce que représente le score linéaire z = wT x + b ;

2 interpréter les coecients wj du modèle ;

3 montrer que la régression logistique est linéaire dans le log-odds, et non directement dans la
probabilité.

Pr. ADDOU ML  Ch.3  Rég. logistique 18/39


Pourquoi introduire les odds ?

★ Idée intuitive

La probabilité p̂ = P(y = 1 | x) mesure la chance estimée d'appartenir à la classe positive.


Cependant, elle ne compare pas directement la classe positive à la classe négative.
Les odds permettent de comparer ces deux possibilités :

probabilité de la classe positive


odds = .
probabilité de la classe négative

Pr. ADDOU ML  Ch.3  Rég. logistique 19/39


Pourquoi introduire les odds ?

★ Idée intuitive

La probabilité p̂ = P(y = 1 | x) mesure la chance estimée d'appartenir à la classe positive.


Cependant, elle ne compare pas directement la classe positive à la classe négative.
Les odds permettent de comparer ces deux possibilités :

probabilité de la classe positive


odds = .
probabilité de la classe négative

Exemple : Exemple simple

Si le modèle donne : p̂ = P(y = 1 | x) = 0.8,


alors : P(y = 0 | x) = 1 − p̂ = 0.2.
Donc la classe positive est plus probable que la classe négative. Les odds permettent de quantier ce
rapport.

Pr. ADDOU ML  Ch.3  Rég. logistique 19/39


Pourquoi introduire les odds ?

★ Idée intuitive

La probabilité p̂ = P(y = 1 | x) mesure la chance estimée d'appartenir à la classe positive.


Cependant, elle ne compare pas directement la classe positive à la classe négative.
Les odds permettent de comparer ces deux possibilités :

probabilité de la classe positive


odds = .
probabilité de la classe négative

Exemple : Exemple simple

Si le modèle donne : p̂ = P(y = 1 | x) = 0.8,


alors : P(y = 0 | x) = 1 − p̂ = 0.2.
Donc la classe positive est plus probable que la classe négative. Les odds permettent de quantier ce
rapport.

☞ À retenir
La probabilité p̂ donne une information absolue, tandis que les odds donnent une information relative
: elles comparent la classe positive à la classe négative.
Pr. ADDOU ML  Ch.3  Rég. logistique 19/39
Les odds : dénition et lecture

Odds

Soit : p̂ = P(y = 1 | x).


Comme il s'agit d'une classication binaire, on a :

P(y = 0 | x) = 1 − p̂.

Les odds sont dénies par : P(y = 1 | x) p̂


odds = = .
P(y = 0 | x) 1 − p̂

Exemple : Quelques valeurs


p̂ odds = Interprétation
1 − p̂

0.20
0.20 = 0.25 Classe positive moins probable
0.80
0.50 1 Les deux classes sont aussi probables
0.80 4 Classe positive 4 fois plus probable
0.90 9 Classe positive 9 fois plus probable
Pr. ADDOU ML  Ch.3  Rég. logistique 20/39
Du odds au log-odds : le logit

★ Pourquoi prendre le logarithme des odds ?

Les odds sont toujours positives : odds ∈ (0, +∞).


Mais le score linéaire du modèle logistique peut prendre toute valeur réelle : z = wT x +b ∈ R.
Pour faire le lien entre ces deux quantités, on applique le logarithme aux odds.

Log-odds ou logit

Le logit de p̂ est déni par :  



logit(p̂) = ln .
1 − p̂

Cette quantité est aussi appelée log-odds.

Pr. ADDOU ML  Ch.3  Rég. logistique 21/39


Du odds au log-odds : le logit

★ Pourquoi prendre le logarithme des odds ?

Les odds sont toujours positives : odds ∈ (0, +∞).


Mais le score linéaire du modèle logistique peut prendre toute valeur réelle : z = wT x +b ∈ R.
Pour faire le lien entre ces deux quantités, on applique le logarithme aux odds.

Log-odds ou logit

Le logit de p̂ est déni par :  



logit(p̂) = ln .
1 − p̂

Cette quantité est aussi appelée log-odds.

☞ À retenir

Le logit transforme une probabilité p̂ ∈ (0, 1) en une valeur réelle : logit(p̂) ∈ R. C'est cette
T
transformation qui permet de relier une probabilité au score linéaire w x + b.

Pr. ADDOU ML  Ch.3  Rég. logistique 21/39


Lien entre sigmoïde et logit
P
Math  Démonstration

Le modèle logistique est déni par :


1
p̂ = σ(z) = , z = wT x + b.
1 + e −z
On calcule d'abord 1 − p̂ :
1 1 + e −z − 1 e −z
1 − p̂ = 1 − = = .
1 + e −z 1 + e −z 1 + e −z

Donc :
1
p̂ 1+e −z 1
= e −z
= = ez .
1 − p̂ e −z
1+e −z
En appliquant le logarithme :  

ln = ln(e z ) = z.
1 − p̂
 
Ainsi : p̂
ln = wT x + b
1 − p̂

Pr. ADDOU ML  Ch.3  Rég. logistique 22/39


Interprétation du score linéaire

Interprétation du score

En régression logistique, le score linéaire


z = wT x + b
n'est pas directement une probabilité.  
Il représente le log-odds :

z = ln .
1 − p̂

Pr. ADDOU ML  Ch.3  Rég. logistique 23/39


Interprétation du score linéaire

Interprétation du score

En régression logistique, le score linéaire


z = wT x + b
n'est pas directement une probabilité.  
Il représente le log-odds :

z = ln .
1 − p̂

Exemple : Exemple numérique


0.8 0.8
Si p̂ = 0.8, alors : odds = 1−0.8 = 0.2 = 4.
Le log-odds vaut donc : ln(4) ≈ 1.386.
Ainsi, dans ce cas : z = wT x + b ≈ 1.386.

Pr. ADDOU ML  Ch.3  Rég. logistique 23/39


Interprétation du score linéaire

Interprétation du score

En régression logistique, le score linéaire


z = wT x + b
n'est pas directement une probabilité.  
Il représente le log-odds :

z = ln .
1 − p̂

Exemple : Exemple numérique


0.8 0.8
Si p̂ = 0.8, alors : odds = 1−0.8 = 0.2 = 4.
Le log-odds vaut donc : ln(4) ≈ 1.386.
Ainsi, dans ce cas : z = wT x + b ≈ 1.386.

☞ À retenir
La régression logistique est linéaire dans le log-odds, pas directement dans la probabilité.
Pr. ADDOU ML  Ch.3  Rég. logistique 23/39
Pourquoi le nom régression logistique ?

★ Origine du nom
1
Le terme logistique vient de la fonction logistique : σ(z) = 1+e −z .
Cette fonction transforme un score réel z ∈ R en une probabilité strictement comprise entre 0 et 1 :
σ(z) ∈ (0, 1).

Pr. ADDOU ML  Ch.3  Rég. logistique 24/39


Pourquoi le nom régression logistique ?

★ Origine du nom
1
Le terme logistique vient de la fonction logistique : σ(z) = 1+e −z .
Cette fonction transforme un score réel z ∈ R en une probabilité strictement comprise entre 0 et 1 :
σ(z) ∈ (0, 1).

★ Pourquoi régression ?

Le mot régression vient du fait que le modèle estime une quantité continue, ici une probabilité :
p̂ = P(y = 1 | x).
Cependant, cette probabilité est ensuite utilisée pour prendre une décision de classication.

Pr. ADDOU ML  Ch.3  Rég. logistique 24/39


Pourquoi le nom régression logistique ?

★ Origine du nom
1
Le terme logistique vient de la fonction logistique : σ(z) = 1+e −z .
Cette fonction transforme un score réel z ∈ R en une probabilité strictement comprise entre 0 et 1 :
σ(z) ∈ (0, 1).

★ Pourquoi régression ?

Le mot régression vient du fait que le modèle estime une quantité continue, ici une probabilité :
p̂ = P(y = 1 | x).
Cependant, cette probabilité est ensuite utilisée pour prendre une décision de classication.

☞ À retenir
La régression logistique est donc un modèle de classication qui :
calcule un score linéaire z = wT x + b ;

transforme ce score en probabilité avec la fonction logistique ;

applique ensuite un seuil pour produire une classe.

Pr. ADDOU ML  Ch.3  Rég. logistique 24/39


Interprétation des poids wj
P
Math  Démonstration
 

En régression logistique, on a : ln(odds) = ln 1−p̂ = wT x + b.
Autrement dit : ln(odds) = w1 x1 + · · · + wj xj + · · · + wd xd + b.
Supposons maintenant que xj augmente d'une unité, toutes les autres variables restant constantes :
xj new = xj + 1.
Interprétation des poids wj
P
Math  Démonstration
 

En régression logistique, on a : ln(odds) = ln 1−p̂ = wT x + b.
Autrement dit : ln(odds) = w1 x1 + · · · + wj xj + · · · + wd xd + b.
Supposons maintenant que xj augmente d'une unité, toutes les autres variables restant constantes :
xj new = xj + 1.
Alors le nouveau log-odds devient : ln(oddsnew ) = ln(oddsold ) + wj .
Interprétation des poids wj
P
Math  Démonstration
 

En régression logistique, on a : ln(odds) = ln 1−p̂ = wT x + b.
Autrement dit : ln(odds) = w1 x1 + · · · + wj xj + · · · + wd xd + b.
Supposons maintenant que xj augmente d'une unité, toutes les autres variables restant constantes :
xj new = xj + 1.
Alors le nouveau log-odds devient : ln(oddsnew ) = ln(oddsold ) + wj .
En appliquant l'exponentielle : oddsnew = e ln(oddsold )+wj .
Interprétation des poids wj
P
Math  Démonstration
 

En régression logistique, on a : ln(odds) = ln 1−p̂ = wT x + b.
Autrement dit : ln(odds) = w1 x1 + · · · + wj xj + · · · + wd xd + b.
Supposons maintenant que xj augmente d'une unité, toutes les autres variables restant constantes :
xj new = xj + 1.
Alors le nouveau log-odds devient : ln(oddsnew ) = ln(oddsold ) + wj .
En appliquant l'exponentielle : oddsnew = e ln(oddsold )+wj .
ln(oddsold ) wj
Donc : oddsnew =e ×e = oddsold × e wj .

Pr. ADDOU ML  Ch.3  Rég. logistique 25/39


Interprétation des poids wj
P
Math  Démonstration
 

En régression logistique, on a : ln(odds) = ln 1−p̂ = wT x + b.
Autrement dit : ln(odds) = w1 x1 + · · · + wj xj + · · · + wd xd + b.
Supposons maintenant que xj augmente d'une unité, toutes les autres variables restant constantes :
xj new = xj + 1.
Alors le nouveau log-odds devient : ln(oddsnew ) = ln(oddsold ) + wj .
En appliquant l'exponentielle : oddsnew = e ln(oddsold )+wj .
ln(oddsold ) wj
Donc : oddsnew =e ×e = oddsold × e wj .

☞ À retenir
Une augmentation d'une unité de xj , toutes les autres variables étant xées, multiplie les odds par
: e wj . Ainsi :

wj > 0 ⇒ e wj > 1 : les odds augmentent,

wj
wj < 0 ⇒ e <1 : les odds diminuent.

Pr. ADDOU ML  Ch.3  Rég. logistique 25/39


Interprétation des poids wj

Exemple : Détection de spam

Modèle avec trois variables :

x1 = nombre de mots en majuscules, x2 = présence du mot urgent , x3 = longueur de l'email.

Supposons :
w1 = 0.8, w2 = 2.5, w3 = −0.1, b = −3.
Interprétation des poids wj

Exemple : Détection de spam

Modèle avec trois variables :

x1 = nombre de mots en majuscules, x2 = présence du mot urgent , x3 = longueur de l'email.

Supposons :
w1 = 0.8, w2 = 2.5, w3 = −0.1, b = −3.

w1 = 0.8 : chaque mot supplémentaire en majuscules multiplie les odds de spam par e 0.8 ≈ 2.23,
toutes les autres variables étant xées.
Interprétation des poids wj

Exemple : Détection de spam

Modèle avec trois variables :

x1 = nombre de mots en majuscules, x2 = présence du mot urgent , x3 = longueur de l'email.

Supposons :
w1 = 0.8, w2 = 2.5, w3 = −0.1, b = −3.

w1 = 0.8 : chaque mot supplémentaire en majuscules multiplie les odds de spam par e 0.8 ≈ 2.23,
toutes les autres variables étant xées.

w2 = 2.5 : la présence du mot urgent multiplie les odds de spam par e 2.5 ≈ 12.18, toutes les autres
variables étant xées.
Interprétation des poids wj

Exemple : Détection de spam

Modèle avec trois variables :

x1 = nombre de mots en majuscules, x2 = présence du mot urgent , x3 = longueur de l'email.

Supposons :
w1 = 0.8, w2 = 2.5, w3 = −0.1, b = −3.

w1 = 0.8 : chaque mot supplémentaire en majuscules multiplie les odds de spam par e 0.8 ≈ 2.23,
toutes les autres variables étant xées.

w2 = 2.5 : la présence du mot urgent multiplie les odds de spam par e 2.5 ≈ 12.18, toutes les autres
variables étant xées.

w3 = −0.1 : une augmentation d'une unité de la longueur de l'email multiplie les odds par
e −0.1 ≈ 0.90, ce qui diminue légèrement les odds de spam.
Interprétation des poids wj

Exemple : Détection de spam

Modèle avec trois variables :

x1 = nombre de mots en majuscules, x2 = présence du mot urgent , x3 = longueur de l'email.

Supposons :
w1 = 0.8, w2 = 2.5, w3 = −0.1, b = −3.

w1 = 0.8 : chaque mot supplémentaire en majuscules multiplie les odds de spam par e 0.8 ≈ 2.23,
toutes les autres variables étant xées.

w2 = 2.5 : la présence du mot urgent multiplie les odds de spam par e 2.5 ≈ 12.18, toutes les autres
variables étant xées.

w3 = −0.1 : une augmentation d'une unité de la longueur de l'email multiplie les odds par
e −0.1 ≈ 0.90, ce qui diminue légèrement les odds de spam.
b = −3 : lorsque toutes les variables valent 0, le log-odds vaut −3, donc p̂ = σ(−3) ≈ 0.047.

Pr. ADDOU ML  Ch.3  Rég. logistique 26/39


La frontière de décision

Frontière de décision

La frontière de décision est l'ensemble des points x pour lesquels le modèle est exactement
au seuil de classication : p̂ = 0.5.
Comme p̂ = σ(z) et que σ(0) = 0.5, on obtient :
T
p̂ = 0.5 ⇔ σ(z) = 0.5 ⇔ z =0 ⇔ w x + b = 0.

Pr. ADDOU ML  Ch.3  Rég. logistique 27/39


La frontière de décision

Frontière de décision

La frontière de décision est l'ensemble des points x pour lesquels le modèle est exactement
au seuil de classication : p̂ = 0.5.
Comme p̂ = σ(z) et que σ(0) = 0.5, on obtient :
T
p̂ = 0.5 ⇔ σ(z) = 0.5 ⇔ z =0 ⇔ w x + b = 0.
L'équation wT x +b =0 dénit :
En dimension 1 : un point sur l'axe des x : x ∗ = − wb , si w ̸= 0.

Pr. ADDOU ML  Ch.3  Rég. logistique 27/39


La frontière de décision

Frontière de décision

La frontière de décision est l'ensemble des points x pour lesquels le modèle est exactement
au seuil de classication : p̂ = 0.5.
Comme p̂ = σ(z) et que σ(0) = 0.5, on obtient :
T
p̂ = 0.5 ⇔ σ(z) = 0.5 ⇔ z =0 ⇔ w x + b = 0.
L'équation wT x +b =0 dénit :
En dimension 1 : un point sur l'axe des x : x ∗ = − wb , si w ̸= 0.
En dimension 2 : une droite : w1 x1 + w2 x2 + b = 0.

Pr. ADDOU ML  Ch.3  Rég. logistique 27/39


La frontière de décision

Frontière de décision

La frontière de décision est l'ensemble des points x pour lesquels le modèle est exactement
au seuil de classication : p̂ = 0.5.
Comme p̂ = σ(z) et que σ(0) = 0.5, on obtient :
T
p̂ = 0.5 ⇔ σ(z) = 0.5 ⇔ z =0 ⇔ w x + b = 0.
L'équation wT x +b =0 dénit :
En dimension 1 : un point sur l'axe des x : x ∗ = − wb , si w ̸= 0.
En dimension 2 : une droite : w1 x1 + w2 x2 + b = 0.
En dimension 3 : un plan.

Pr. ADDOU ML  Ch.3  Rég. logistique 27/39


La frontière de décision

Frontière de décision

La frontière de décision est l'ensemble des points x pour lesquels le modèle est exactement
au seuil de classication : p̂ = 0.5.
Comme p̂ = σ(z) et que σ(0) = 0.5, on obtient :
T
p̂ = 0.5 ⇔ σ(z) = 0.5 ⇔ z =0 ⇔ w x + b = 0.
L'équation wT x +b =0 dénit :
En dimension 1 : un point sur l'axe des x : x ∗ = − wb , si w ̸= 0.
En dimension 2 : une droite : w1 x1 + w2 x2 + b = 0.
En dimension 3 : un plan.
En dimension d : un hyperplan de dimension d − 1, si w ̸= 0.

Pr. ADDOU ML  Ch.3  Rég. logistique 27/39


La frontière de décision

Frontière de décision

La frontière de décision est l'ensemble des points x pour lesquels le modèle est exactement
au seuil de classication : p̂ = 0.5.
Comme p̂ = σ(z) et que σ(0) = 0.5, on obtient :
T
p̂ = 0.5 ⇔ σ(z) = 0.5 ⇔ z =0 ⇔ w x + b = 0.
L'équation wT x +b =0 dénit :
En dimension 1 : un point sur l'axe des x : x ∗ = − wb , si w ̸= 0.
En dimension 2 : une droite : w1 x1 + w2 x2 + b = 0.
En dimension 3 : un plan.
En dimension d : un hyperplan de dimension d − 1, si w ̸= 0.

☞ À retenir
Avec un seuil xé à 0.5, la frontière de décision de la régression logistique est une frontière linéaire,
T
dénie par l'hyperplan ane : w x + b = 0. Cette propriété rend le modèle simple et interprétable,
mais limite sa capacité à séparer directement des classes dont la frontière naturelle est fortement non
linéaire.
Pr. ADDOU ML  Ch.3  Rég. logistique 27/39
Visualisation en 2D

Lecture du graphique :
z >0
4 ŷ = 1 ◦ : observations de la classe 0.

• : observations de la classe 1.
w
2 Droite épaisse : frontière de décision.
x2

z <0 Sur la frontière :


ŷ = 0

x1
0

+
z = x1 + x2 − 2.5 = 0 ⇒

x2
p̂ = 0.5.


2
.5
=
−2 Si z < 0, alors p̂ < 0.5 et ŷ = 0.

0
−2 0 2 4
Si z > 0, alors p̂ > 0.5 et ŷ = 1.
x1
Le vecteur w = (w1 , w2 ) est
perpendiculaire à la frontière de décision.
Il pointe vers la région où le score z
augmente, ici la région associée à la classe
1.

Pr. ADDOU ML  Ch.3  Rég. logistique 28/39


Exemple complet : une variable explicative

Exemple : Détection du diabète en fonction du glucose

On considère une seule variable explicative : x = taux de glucose normalisé.


Les paramètres du modèle, supposés déjà appris, sont : w = 2.0, b = −1.0.
Ainsi : z = wx + b = 2x − 1.
Calcul pour quatre patients :

Patient x z = 2x − 1 p̂ = σ(z) ŷ Interprétation

1
1 −1.0 −3.0 ≈ 0.047 0 p̂ < 0.5
1 + e3
1
2 0.0 −1.0 ≈ 0.269 0 p̂ < 0.5
1 + e1
1
3 0.5 0.0 = 0.500 1 Au seuil de décision
1 + e0
1
4 2.0 3.0 ≈ 0.953 1 p̂ > 0.5
1 + e −3

Pr. ADDOU ML  Ch.3  Rég. logistique 29/39


Exemple complet : une variable explicative

Exemple : Détection du diabète en fonction du glucose

On considère une seule variable explicative : x = taux de glucose normalisé.


Les paramètres du modèle, supposés déjà appris, sont : w = 2.0, b = −1.0.
Ainsi : z = wx + b = 2x − 1.
Calcul pour quatre patients :

Patient x z = 2x − 1 p̂ = σ(z) ŷ Interprétation

1
1 −1.0 −3.0 ≈ 0.047 0 p̂ < 0.5
1 + e3
1
2 0.0 −1.0 ≈ 0.269 0 p̂ < 0.5
1 + e1
1
3 0.5 0.0 = 0.500 1 Au seuil de décision
1 + e0
1
4 2.0 3.0 ≈ 0.953 1 p̂ > 0.5
1 + e −3

Frontière de décision : z = 0 ⇔ 2x − 1 = 0 ⇔ x ∗ = 0.5.


Avec la convention ŷ = 1 si p̂ ≥ 0.5, les patients tels que x ≥ 0.5 sont classés dans la classe positive,
tandis que ceux tels que x < 0.5 sont classés dans la classe négative.
Pr. ADDOU ML  Ch.3  Rég. logistique 29/39
Exemple complet : deux variables explicatives

Exemple : Détection de spam : mots en majuscules et présence du mot urgent

On considère deux variables : (


1, si le mot urgent est présent,
x1 = nombre de mots en majuscules, x2 =
0, sinon.

Les paramètres du modèle sont :

w1 = 0.5, w2 = 3.0, b = −2.0.

Ainsi : z = 0.5x1 + 3x2 − 2.

Email x1 x2 z = 0.5x1 + 3x2 − 2 p̂ = σ(z) ŷ Classe prédite

A 0 0

B 2 0

C 0 1

D 4 1

E 6 0

Pr. ADDOU ML  Ch.3  Rég. logistique 30/39


Exemple complet : deux variables explicatives

Email x1 x2 z = 0.5x1 + 3x2 − 2 p̂ = σ(z) ŷ Classe prédite

A 0 0 −2.0 0.119 0 Non-spam


B 2 0 −1.0 0.269 0 Non-spam
C 0 1 +1.0 0.731 1 Spam
D 4 1 +3.0 0.953 1 Spam
E 6 0 +1.0 0.731 1 Spam

Observations :

Pr. ADDOU ML  Ch.3  Rég. logistique 31/39


Exemple complet : deux variables explicatives

Email x1 x2 z = 0.5x1 + 3x2 − 2 p̂ = σ(z) ŷ Classe prédite

A 0 0 −2.0 0.119 0 Non-spam


B 2 0 −1.0 0.269 0 Non-spam
C 0 1 +1.0 0.731 1 Spam
D 4 1 +3.0 0.953 1 Spam
E 6 0 +1.0 0.731 1 Spam

Observations :
Le coecient du mot urgent est plus grand que celui du nombre de mots en majuscules :
w2 = 3.0 contre w1 = 0.5. Son eet sur le log-odds est donc plus important.

Pr. ADDOU ML  Ch.3  Rég. logistique 31/39


Exemple complet : deux variables explicatives

Email x1 x2 z = 0.5x1 + 3x2 − 2 p̂ = σ(z) ŷ Classe prédite

A 0 0 −2.0 0.119 0 Non-spam


B 2 0 −1.0 0.269 0 Non-spam
C 0 1 +1.0 0.731 1 Spam
D 4 1 +3.0 0.953 1 Spam
E 6 0 +1.0 0.731 1 Spam

Observations :
Le coecient du mot urgent est plus grand que celui du nombre de mots en majuscules :
w2 = 3.0 contre w1 = 0.5. Son eet sur le log-odds est donc plus important.
Sans le mot urgent (x2 = 0), la condition z ≥ 0 donne : 0.5x1 − 2 ≥ 0 ⇔ x1 ≥ 4.

Pr. ADDOU ML  Ch.3  Rég. logistique 31/39


Exemple complet : deux variables explicatives

Email x1 x2 z = 0.5x1 + 3x2 − 2 p̂ = σ(z) ŷ Classe prédite

A 0 0 −2.0 0.119 0 Non-spam


B 2 0 −1.0 0.269 0 Non-spam
C 0 1 +1.0 0.731 1 Spam
D 4 1 +3.0 0.953 1 Spam
E 6 0 +1.0 0.731 1 Spam

Observations :
Le coecient du mot urgent est plus grand que celui du nombre de mots en majuscules :
w2 = 3.0 contre w1 = 0.5. Son eet sur le log-odds est donc plus important.
Sans le mot urgent (x2 = 0), la condition z ≥ 0 donne : 0.5x1 − 2 ≥ 0 ⇔ x1 ≥ 4.
Il faut donc au moins 4 mots en majuscules pour atteindre la classe spam.
Avec le mot urgent (x2 = 1), même lorsque x1 = 0, on obtient : z =1 ⇒ p̂ = σ(1) ≈ 0.731.

Pr. ADDOU ML  Ch.3  Rég. logistique 31/39


Exemple complet : deux variables explicatives

Email x1 x2 z = 0.5x1 + 3x2 − 2 p̂ = σ(z) ŷ Classe prédite

A 0 0 −2.0 0.119 0 Non-spam


B 2 0 −1.0 0.269 0 Non-spam
C 0 1 +1.0 0.731 1 Spam
D 4 1 +3.0 0.953 1 Spam
E 6 0 +1.0 0.731 1 Spam

Observations :
Le coecient du mot urgent est plus grand que celui du nombre de mots en majuscules :
w2 = 3.0 contre w1 = 0.5. Son eet sur le log-odds est donc plus important.
Sans le mot urgent (x2 = 0), la condition z ≥ 0 donne : 0.5x1 − 2 ≥ 0 ⇔ x1 ≥ 4.
Il faut donc au moins 4 mots en majuscules pour atteindre la classe spam.
Avec le mot urgent (x2 = 1), même lorsque x1 = 0, on obtient : z =1 ⇒ p̂ = σ(1) ≈ 0.731.

Frontière de décision : 0.5x1 + 3x2 − 2 = 0 ⇔ x1 = −6x2 + 4.


C'est une droite dans le plan (x1 , x2 ). Les points tels que 0.5x1 + 3x2 − 2 ≥ 0 sont classés dans la
classe spam avec le seuil 0.5.

Pr. ADDOU ML  Ch.3  Rég. logistique 31/39


Récapitulatif : régression linéaire vs régression logistique

Régression linéaire Régression logistique binaire


Objectif Prédire une valeur continue Prédire une probabilité de classe

Variable cible y ∈R y ∈ {0, 1}


T
Score linéaire w x +b z = wT x + b
Sortie du modèle ŷ = wT x + b ∈ R p̂ = σ(z) ∈ (0, 1)
Interprétation Valeur numérique prédite Probabilité estimée P(y = 1 | x)
Décision Pas de seuillage par défaut Seuillage de p̂ , souvent à 0.5
T
Frontière de décision Non applicable directement Hyperplan w x +b =0
Fonction de coût MSE Cross-entropy, ou log-loss

Optimisation Descente de gradient ou solu- Descente de gradient ou méthodes


tion analytique selon le cas d'optimisation numérique

Régularisation Ridge, Lasso, ElasticNet Ridge, Lasso, ElasticNet

Paramètres appris w, b w, b

Pr. ADDOU ML  Ch.3  Rég. logistique 32/39


Exercice 1  Calculs de base

✎ TD  Calculs de base sur un modèle logistique

On considère un modèle logistique avec une seule variable explicative x :

1
z = wx + b, p̂ = σ(z) = .
1 + e −z
Les paramètres du modèle sont :
w = 1.5, b = −3.

1 Calculer z et p̂ = σ(z) pour : x = 0, x = 2, x = 4, x = 6.


2 En utilisant le seuil 0.5, déterminer la classe prédite ŷ pour chaque valeur de x.
3 ∗
Trouver la frontière de décision x en résolvant : z = 0.
4 Vérier numériquement que : σ(z) + σ(−z) = 1 pour z = 2.
5 σ ′ (0) σ ′ (z) = σ(z) 1 − σ(z) .

Calculer en utilisant :

Pr. ADDOU ML  Ch.3  Rég. logistique 33/39


Solution de l'exercice 1

✓ Solution  Exercice 1
1. Le score linéaire est :
z = wx + b = 1.5x − 3.

x z = 1.5x − 3 e −z p̂ = σ(z) ŷ
1
0 −3 20.09 ≈ 0.047 0
21.09
1
2 0 1 = 0.500 1
2
1
4 3 0.050 ≈ 0.953 1
1.050
1
6 6 0.0025 ≈ 0.998 1
1.0025

2. Avec la convention ŷ = 1 si p̂ ≥ 0.5, on obtient :

x = 0 ⇒ ŷ = 0, x = 2 ⇒ ŷ = 1, x = 4 ⇒ ŷ = 1, x = 6 ⇒ ŷ = 1.

Pr. ADDOU ML  Ch.3  Rég. logistique 34/39


Solution de l'exercice 1

✓ Solution  Exercice 1
3. La frontière de décision est obtenue en résolvant z =0 :

1.5x −3=0 ⇔ 1.5x =3 ⇔ x ∗ = 2.

Ainsi, avec le seuil 0.5, les observations telles que x ≥2 sont classées dans la classe positive.
4. Pour z =2 :
1 1
σ(2) = ≈ 0.881, σ(−2) = ≈ 0.119.
1 + e −2 1 + e2
Donc :
σ(2) + σ(−2) ≈ 0.881 + 0.119 = 1.000.
5. Comme σ(0) = 0.5, on a :

σ ′ (0) = σ(0)

1 − σ(0) = 0.5(1 − 0.5) = 0.25.

Cette valeur correspond à la pente maximale de la sigmoïde.

Pr. ADDOU ML  Ch.3  Rég. logistique 35/39


Exercice 2  Frontière de décision en 2D

✎ TD  Frontière de décision en dimension 2


On considère un modèle logistique avec deux variables explicatives :

z = w1 x1 + w2 x2 + b.

Les paramètres du modèle sont :

w1 = 2, w2 = −1, b = 1.

Ainsi :
z = 2x1 − x2 + 1.

1 Écrire l'équation de la frontière de décision.

2 Tracer cette droite dans le plan (x1 , x2 ) pour x1 ∈ [0, 5].


3 Pour les points A = (1, 4), B = (3, 3), C = (0, 0), calculer le score z, la probabilité estimée p̂ = σ(z),
puis la classe prédite ŷ avec le seuil 0.5.
4 Indiquer quelle région du plan correspond à la classe positive.

Pr. ADDOU ML  Ch.3  Rég. logistique 36/39


Solution de l'exercice 2

✓ Solution  Exercice 2
1. La frontière de décision est obtenue en résolvant z =0 :

2x1 − x2 + 1 = 0 ⇔ x2 = 2x1 + 1.

2. Pour tracer la droite sur l'intervalle x1 ∈ [0, 5], on peut utiliser deux points :

x1 = 0 ⇒ x2 = 1, x1 = 2 ⇒ x2 = 5.

La droite passe donc par les points (0, 1) et (2, 5), avec une pente égale à 2.
3. Calculs pour les trois points :

Point x1 x2 z = 2x1 − x2 + 1 p̂ = σ(z) ŷ


A 1 4 2− 4 + 1 = −1 0.269 0
B 3 3 6−3+1=4 0.982 1
C 0 0 0−0+1 = 1 0.731 1

4. Avec le seuil 0.5, la classe positive correspond à :


p̂ ≥ 0.5 ⇔ z ≥ 0. Ainsi : 2x1 − x2 + 1 ≥ 0 ⇔ x2 ≤ 2x1 + 1. La classe positive correspond donc à
la région située sur ou en dessous de la droite x2 = 2x1 + 1.
Pr. ADDOU ML  Ch.3  Rég. logistique 37/39
Récapitulatif de la Partie 1

☞ À retenir

Concept Formule / idée principale


Problème La régression linéaire produit une sortie ŷ ∈ R, mal adaptée
à une cible binaire y ∈ {0, 1}.
1
Sigmoïde σ(z) = , avec σ(z) ∈ (0, 1).
1 + e −z
T
Score linéaire z = w x + b.
Modèle logistique p̂ = P(y = 1 | x) = σ(wT x + b).
Décision Avec un seuil 0.5 : ŷ = 1 si p̂ ≥ 0.5, sinon ŷ = 0.
T
Frontière de décision w x + b = 0, c'est un hyperplan linéaire.


Propriétés de σ σ(0) = 0.5, σ(−z) = 1 − σ(z), σ (z) = σ(z) 1 − σ(z) .

Log-odds ln = wT x + b .
1 − p̂
Interprétation de wj Une augmentation d'une unité de xj , toutes les autres vari-
w
ables étant xées, multiplie les odds par e j .

Pr. ADDOU ML  Ch.3  Rég. logistique 38/39


Fin de la Partie 1

Fin de la Partie 1
Suite : Partie 2  Entraînement du modèle logistique
Fonction de coût : cross-entropy / log-loss

Pourquoi la MSE n'est pas le choix le plus adapté ?

Gradient de la cross-entropy

Descente de gradient pour la régression logistique

Pause : 10 minutes

Pr. ADDOU ML  Ch.3  Rég. logistique 39/39


Module : Machine Learning
Chapitre 3  Partie 2/3 : Entraînement du modèle logistique

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.3  Cross-entropy 1/62


Ce que vous allez apprendre dans cette partie

1 Pourquoi la MSE est mal adaptée à la classication logistique


2 Le modèle probabiliste :
Y | X = x ∼ Bernoulli(p(x))
3 Le principe du maximum de vraisemblance
4 La log-vraisemblance négative : cross-entropy ou log loss
5 Démonstration du gradient de la cross-entropy
6 Optimisation par descente de gradient
7 Régularisation du modèle logistique
Cette partie relie la régression logistique à son fondement statistique : on apprend les paramètres
en maximisant la vraisemblance d'un modèle de Bernoulli, ce qui conduit naturellement à la cross-
entropy.

Pr. ADDOU ML  Ch.3  Cross-entropy 2/62


Pourquoi la MSE est mal adaptée ici ?
★ Rappel
En régression logistique, la sortie du modèle est une probabilité : p̂i = P(yi = 1 | xi ) =
σ(wT xi + b).
La vraie classe est binaire : yi ∈ {0, 1}.

Pr. ADDOU ML  Ch.3  Cross-entropy 3/62


Pourquoi la MSE est mal adaptée ici ?
★ Rappel
En régression logistique, la sortie du modèle est une probabilité : p̂i = P(yi = 1 | xi ) =
σ(wT xi + b).
La vraie classe est binaire : yi ∈ {0, 1}.

Math  Si l'on utilise la MSE


P

On pourrait dénir : JMSE = n1 ni=1 (yi − p̂i )2 .


P
Mais ce choix est mal adapté à la régression logistique :
il n'est pas issu du modèle probabiliste de Bernoulli ;

il peut conduire à une fonction de coût non convexe ;

il peut produire des gradients faibles lorsque la sigmoïde sature.

Pr. ADDOU ML  Ch.3  Cross-entropy 3/62


Pourquoi la MSE est mal adaptée ici ?
★ Rappel
En régression logistique, la sortie du modèle est une probabilité : p̂i = P(yi = 1 | xi ) =
σ(wT xi + b).
La vraie classe est binaire : yi ∈ {0, 1}.

Math  Si l'on utilise la MSE


P

On pourrait dénir : JMSE = n1 ni=1 (yi − p̂i )2 .


P
Mais ce choix est mal adapté à la régression logistique :
il n'est pas issu du modèle probabiliste de Bernoulli ;

il peut conduire à une fonction de coût non convexe ;

il peut produire des gradients faibles lorsque la sigmoïde sature.

☞ À retenir
La MSE peut être calculée, mais elle n'est pas le critère naturel pour apprendre une probabilité de
classe.

Pr. ADDOU ML  Ch.3  Cross-entropy 3/62


MSE avec sigmoïde : calcul du gradient
Math  Pour un seul exemple
P

On considère : 1
ℓi = (yi − p̂i )2 , p̂i = σ(zi ), zi = wT xi + b.
2
MSE avec sigmoïde : calcul du gradient
Math  Pour un seul exemple
P

On considère : 1
ℓi = (yi − p̂i )2 , p̂i = σ(zi ), zi = wT xi + b.
2
Par la règle de la chaîne : ∂ℓi ∂ℓi ∂ p̂i ∂zi
= · · .
∂wj ∂ p̂i ∂zi ∂wj
MSE avec sigmoïde : calcul du gradient
Math  Pour un seul exemple
P

On considère : 1
ℓi = (yi − p̂i )2 , p̂i = σ(zi ), zi = wT xi + b.
2
Par la règle de la chaîne : ∂ℓi ∂ℓi ∂ p̂i ∂zi
= · · .
∂wj ∂ p̂i ∂zi ∂wj

Or : ∂ℓi ∂ p̂i ∂zi


= p̂i − yi , = p̂i (1 − p̂i ), = xij .
∂ p̂i ∂zi ∂wj
Donc : ∂ℓi
= (p̂i − yi )p̂i (1 − p̂i )xij
∂wj

Pr. ADDOU ML  Ch.3  Cross-entropy 4/62


MSE avec sigmoïde : calcul du gradient
Math  Pour un seul exemple
P

On considère : 1
ℓi = (yi − p̂i )2 , p̂i = σ(zi ), zi = wT xi + b.
2
Par la règle de la chaîne : ∂ℓi ∂ℓi ∂ p̂i ∂zi
= · · .
∂wj ∂ p̂i ∂zi ∂wj

Or : ∂ℓi ∂ p̂i ∂zi


= p̂i − yi , = p̂i (1 − p̂i ), = xij .
∂ p̂i ∂zi ∂wj
Donc : ∂ℓi
= (p̂i − yi )p̂i (1 − p̂i )xij
∂wj

☞ À retenir
Le facteur important est : p̂i (1 − p̂i ). Il devient presque nul lorsque la sigmoïde est saturée.

Pr. ADDOU ML  Ch.3  Cross-entropy 4/62


MSE avec sigmoïde : problème de saturation

Sigmoïde Dérivée de la sigmoïde


1 0.3
saturation max = 0.25
0.8

σ(z)(1 − σ(z))
0.2
0.6
σ(z)

0.4
0.1
0.2
saturation ≈0 ≈0
0 0
−6 −4 −2 0 2 4 6 −6 −4 −2 0 2 4 6
z z

☞ À retenir
Avec la MSE, le gradient contient le facteur p̂i (1 − p̂i ). Lorsque zi est très négatif ou très positif, la
sigmoïde sature et ce facteur devient proche de 0. La correction par gradient peut alors devenir très
lente.

Pr. ADDOU ML  Ch.3  Cross-entropy 5/62


Exemple : erreur conante mais gradient faible
Exemple : Cas d'une mauvaise prédiction conante
Supposons : yi = 1, p̂i = 0.01.
Le modèle se trompe fortement, car il attribue seulement 1% à la vraie classe.

Avec la MSE, le facteur principal du gradient est :


(p̂i − yi )p̂i (1 − p̂i ).
On obtient :
p̂i − yi = 0.01 − 1 = −0.99,
mais :
p̂i (1 − p̂i ) = 0.01 × 0.99 = 0.0099.
Donc :
(p̂i − yi )p̂i (1 − p̂i ) = −0.99 × 0.0099 ≈ −0.0098.

☞ À retenir
Même si l'erreur est importante, le gradient peut être très faible à cause de la saturation de la
sigmoïde.
Pr. ADDOU ML  Ch.3  Cross-entropy 6/62
Pourquoi passer à la cross-entropy ?

☞ À retenir
On cherche une fonction de coût qui vérie trois propriétés :

1 Elle est cohérente avec le modèle probabiliste :

Yi | xi ∼ Bernoulli(p̂i ).

2 Elle pénalise fortement les erreurs conantes.


3 Elle conduit à un gradient simple :

1
∇J = X T (p̂ − y).
n

Cette fonction est la cross-entropy, aussi appelée log loss ou log-vraisemblance négative du
modèle de Bernoulli.

Pr. ADDOU ML  Ch.3  Cross-entropy 7/62


D'où vient la cross-entropy ?
★ Modèle probabiliste de Bernoulli
En classication binaire, le label prend deux valeurs : yi ∈ {0, 1}.
On modélise donc le label par une variable de Bernoulli : Yi | xi ∼ Bernoulli(p̂i ).
La régression logistique modélise la probabilité de la classe positive :

p̂i = P(Yi = 1 | xi ; w, b) = σ(wT xi + b).

Donc : P(Yi = 0 | xi ; w, b) = 1 − p̂i .

Pr. ADDOU ML  Ch.3  Cross-entropy 8/62


D'où vient la cross-entropy ?
★ Modèle probabiliste de Bernoulli
En classication binaire, le label prend deux valeurs : yi ∈ {0, 1}.
On modélise donc le label par une variable de Bernoulli : Yi | xi ∼ Bernoulli(p̂i ).
La régression logistique modélise la probabilité de la classe positive :

p̂i = P(Yi = 1 | xi ; w, b) = σ(wT xi + b).

Donc : P(Yi = 0 | xi ; w, b) = 1 − p̂i .

Math  Probabilité du label observé


P

Si le label observé est yi = 1, alors : P(Yi = yi | xi ; w, b) = p̂i .


Si le label observé est yi = 0, alors : P(Yi = yi | xi ; w, b) = 1 − p̂i .
Ces deux cas se résument en une seule formule : P(Yi = yi | xi ; w, b) = p̂iyi (1 − p̂i )1−yi

Pr. ADDOU ML  Ch.3  Cross-entropy 8/62


Que représente la vraisemblance L(w, b) ?
Vraisemblance
La vraisemblance, notée L(w, b), mesure à quel point les paramètres w et b rendent les
labels observés probables.
En notant X la matrice des observations, dont les lignes sont x1 , . . . , xn , et

y = (y1 , . . . , yn ),

on écrit :
L(w, b) = P(Y = y | X ; w, b).
Autrement dit, les données observées sont xées, et l'on évalue la qualité d'un choix de
paramètres (w, b).

☞ À retenir
La vraisemblance est une fonction des paramètres. Plus L(w, b) est grande, plus le modèle attribue
une forte probabilité aux labels réellement observés dans le dataset.

Pr. ADDOU ML  Ch.3  Cross-entropy 9/62


Pourquoi la vraisemblance est un produit ?
Math  Hypothèse d'indépendance conditionnelle
P

On suppose que les exemples du dataset sont indépendants conditionnellement au modèle.


Ainsi, connaissant les observations X et les paramètres (w, b), la probabilité jointe des labels
observés se factorise :
n
Y
P(y1 , . . . , yn | X ; w, b) = P(yi | xi ; w, b).
i=1

Ici, X désigne la matrice des observations, dont les lignes sont x1 , . . . , xn .

★ Intuition simple
Si plusieurs événements sont indépendants, alors la probabilité qu'ils se réalisent tous ensemble
est le produit de leurs probabilités individuelles.
Par exemple, si deux événements indépendants ont des probabilités 0.8 et 0.7, alors la prob-
abilité qu'ils se réalisent tous les deux est : 0.8 × 0.7 = 0.56.

Pr. ADDOU ML  Ch.3  Cross-entropy 10/62


Pourquoi la vraisemblance est un produit ?

☞ À retenir
Le produit apparaît parce que la vraisemblance mesure la probabilité de l'ensemble des labels
observés dans le dataset. Sous l'hypothèse d'indépendance conditionnelle, cette probabilité
jointe devient un produit de probabilités individuelles.

Pr. ADDOU ML  Ch.3  Cross-entropy 11/62


Vraisemblance du dataset
Math  Application au modèle de Bernoulli
P

Pour un exemple, avec p̂i = P(yi = 1 | xi ; w, b),


la probabilité du label observé est :
P(yi | xi ; w, b) = p̂iyi (1 − p̂i )1−yi .
Sous l'hypothèse d'indépendance conditionnelle, la vraisemblance du dataset est :
Yn
L(w, b) = P(yi | xi ; w, b).
i=1
n
Donc :
p̂iyi (1 − p̂i )1−yi
Y
L(w, b) =
i=1

Apprendre le modèle revient à choisir les paramètres w et b qui maximisent L(w, b). C'est le principe
du maximum de vraisemblance.
Pr. ADDOU ML  Ch.3  Cross-entropy 12/62
Pourquoi passer à la log-vraisemblance ?
★ Problème avec le produit
yi
− p̂i )1−yi .
Qn
La vraisemblance est un produit de probabilités : L(w, b) = i=1 p̂i (1
Or, un produit de nombreuses probabilités peut devenir très petit :
0.9100 ≈ 2.7 × 10−5 , 0.91000 ≈ 1.7 × 10−46 .
Cela peut créer des problèmes numériques et rend les dérivées moins pratiques.

Pr. ADDOU ML  Ch.3  Cross-entropy 13/62


Pourquoi passer à la log-vraisemblance ?
★ Problème avec le produit
yi
− p̂i )1−yi .
Qn
La vraisemblance est un produit de probabilités : L(w, b) = i=1 p̂i (1
Or, un produit de nombreuses probabilités peut devenir très petit :
0.9100 ≈ 2.7 × 10−5 , 0.91000 ≈ 1.7 × 10−46 .
Cela peut créer des problèmes numériques et rend les dérivées moins pratiques.

Math  Le logarithme transforme le produit en somme


P

Comme le logarithme est une fonction strictement croissante :


arg maxw,b L(w, b) = arg maxw,b ln L(w, b). Et : ln ( ni=1 ai ) = ni=1 ln(ai ).
Q P

☞ À retenir
On maximise donc la log-vraisemblance au lieu de maximiser directement la vraisemblance
: le problème reste équivalent, mais devient plus stable et plus facile à dériver.
Pr. ADDOU ML  Ch.3  Cross-entropy 13/62
De la log-vraisemblance à la cross-entropy
Math  Calcul de la log-vraisemblance
P

− p̂i )1−yi ,
yi
Qn
À partir de la vraisemblance : L(w, b) = i=1 p̂i (1

on prend le logarithme : ln L(w, b) = ln


Qn yi 1−yi .
i=1 p̂i (1 − p̂i )


Comme le logarithme transforme un produit en somme :

ln L(w, b) = ni=1 ln p̂iyi (1 − p̂i )1−yi .


P 

En utilisant ensuite ln(ab) = ln(a) + ln(b), ln(ar ) = r ln(a),


n
X
on obtient : ln L(w, b) = [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )]
i=1

Cette quantité est la log-vraisemblance. Le principe du maximum de vraisemblance consiste


à choisir les paramètres w et b qui la maximisent.
Pr. ADDOU ML  Ch.3  Cross-entropy 14/62
Pourquoi le signe négatif ?
★ Maximisation ou minimisation ?
En statistique, le principe du maximum de vraisemblance consiste à résoudre :
max ln L(w, b).
w,b
En apprentissage automatique, on formule généralement l'entraînement comme la minimisa-
tion d'une fonction de coût : min J(w, b).
w,b
Pour transformer une maximisation en minimisation, on prend
 l'opposé :
max ln L ⇐⇒ min − ln L .

Cross-entropy binaire
On dénit donc la fonction de coût comme la log-vraisemblance négative moyenne :
1
J(w, b) = − ln L(w, b).
n
n
1X
Ainsi : J(w, b) = − [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )] avec : p̂i = σ(wT xi + b).
n
i=1
Pr. ADDOU ML  Ch.3  Cross-entropy 15/62
Pourquoi le signe négatif ?

☞ À retenir
Le signe − transforme la maximisation de la log-vraisemblance en une minimisation. Le
facteur n1 ne change pas le minimiseur ; il permet d'obtenir une perte moyenne par exemple,
comparable entre datasets de tailles diérentes.

Pr. ADDOU ML  Ch.3  Cross-entropy 16/62


Cross-entropy : formule nale

Binary Cross-Entropy
La fonction de coût utilisée en régression logistique est la log-vraisemblance négative
moyenne :
1
J(w, b) = − ln L(w, b).
n
Donc :
n
1X
J(w, b) = − [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )]
n
i=1

avec :
p̂i = σ(wT xi + b).

Cette fonction est appelée cross-entropy, Binary Cross-Entropy ou log loss. Minimiser cette
fonction revient à maximiser la vraisemblance des labels observés sous un modèle de Bernoulli.

Pr. ADDOU ML  Ch.3  Cross-entropy 17/62


Cas par cas : que vaut la cross-entropy ?
★ Perte d'un seul exemple
Pour un exemple (xi , yi ), on a : P(yi | xi ; w, b) = p̂iyi (1 − p̂i )1−yi .
La perte individuelle est donc la log-vraisemblance négative :
ℓi = − ln P(yi | xi ; w, b) = − [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )] .
Comme yi ∈ {0, 1}, un seul terme est actif.
Cas yi = 1 : ℓi = − ln(p̂i ).
Plus p̂i est proche de 1, plus ℓi est proche de 0. Si p̂i → 0, alors ℓi → +∞.
Cas yi = 0 : ℓi = − ln(1 − p̂i ).
Plus p̂i est proche de 0, plus ℓi est proche de 0. Si p̂i → 1, alors ℓi → +∞.

☞ À retenir
La cross-entropy pénalise fortement les erreurs conantes : la perte devient très grande lorsque le
modèle attribue une probabilité quasi nulle au label réellement observé.

Pr. ADDOU ML  Ch.3  Cross-entropy 18/62


Graphique : comprendre la pénalité

Cas y = 1 : ℓ = − ln(p̂) Cas y = 0 : ℓ = − ln(1 − p̂)


→ +∞ → +∞

4 4
Erreur conante Erreur conante
Coût ℓ

Coût ℓ
2 2

Bonne préd. Bonne préd.


0 0
0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8
p̂ p̂

Si y = 1, le vrai label est la classe positive. Si y = 0, le vrai label est la classe négative.

p̂ = 0.01 ⇒ − ln(0.01) ≈ 4.61. p̂ = 0.99 ⇒ − ln(1 − 0.99) ≈ 4.61.

Le coût est élevé car le modèle attribue une très Le coût est élevé car le modèle attribue une forte
faible probabilité au label observé. probabilité à la mauvaise classe.

En pratique, on borne souvent p̂ dans [ε, 1 − ε] pour éviter le calcul de ln(0).

Pr. ADDOU ML  Ch.3  Cross-entropy 19/62


Exemple numérique de la cross-entropy
Exemple : 5 patients, calcul de la cross-entropy
On suppose ici que la classe positive y =1 correspond à malade et que p̂i = P(yi = 1 | xi ; w, b).

i yi p̂i Terme actif Calcul ℓi

1 1 0.90 − ln(p̂i ) − ln(0.90) 0.105

2 1 0.30 − ln(p̂i ) − ln(0.30) 1.204

3 0 0.10 − ln(1 − p̂i ) − ln(0.90) 0.105

4 0 0.85 − ln(1 − p̂i ) − ln(0.15) 1.897 ← erreur très conante

5 1 0.99 − ln(p̂i ) − ln(0.99) 0.010

1 3.321
J = (0.105 + 1.204 + 0.105 + 1.897 + 0.010) = ≈ 0.664.
5 5
☞ À retenir
Le patient 4, avec y = 0 mais p̂ = 0.85, contribue par 1.897 à la somme des pertes, soit environ 57%
de cette somme. La cross-entropy pénalise donc fortement les erreurs conantes : ici, le modèle
attribue une forte probabilité à la classe malade alors que le patient appartient à la classe négative.
Pr. ADDOU ML  Ch.3  Cross-entropy 20/62
Convexité de la cross-entropy
Théorème : pour la régression logistique linéaire, la cross-entropy
n
1X
J(w, b) = − [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )] ,
n
i=1

avec p̂i = σ(wT xi + b),


est une fonction convexe des paramètres (w, b).

Math  Intuition
P

En posant zi = wT xi + b, la perte individuelle peut s'écrire : ℓi = ln(1 + e zi ) − yi zi .


Le terme ln(1 + e zi ) est convexe en zi , et −yi zi est linéaire. Comme zi est une fonction ane
de (w, b), la perte reste convexe en (w, b).

La convexité signie qu'il n'existe pas de mauvais minimum local. Cependant, le minimiseur n'est
pas forcément unique, et il peut même ne pas être ni lorsque les classes sont parfaitement séparables.
La régularisation Ridge améliore la stabilité du problème en pénalisant les grandes valeurs des poids.

Pr. ADDOU ML  Ch.3  Cross-entropy 21/62


Objectif : montrer que la cross-entropy est convexe

★ Ce que l'on veut montrer


Pour la régression logistique, la fonction de coût est :
n
1X
J(w, b) = ℓi (w, b),
n
i=1


ℓi = − [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )] ,
avec
p̂i = σ(zi ), zi = wT xi + b.

☞ À retenir
Pour montrer que J est convexe, il sut de montrer que chaque perte individuelle ℓi est convexe,
puis d'utiliser le fait qu'une moyenne de fonctions convexes reste convexe.

Pr. ADDOU ML  Ch.3  Cross-entropy 22/62


Étape 1 : réécrire la perte individuelle

Math  Perte d'un seul exemple


P

Pour un exemple (xi , yi ), on pose :

zi = wT xi + b, p̂i = σ(zi ).

La perte cross-entropy est :

ℓi = − [yi ln(σ(zi )) + (1 − yi ) ln(1 − σ(zi ))] .

On utilise :
1
σ(zi ) = .
1 + e −zi
On va montrer que cette perte peut se réécrire sous la forme :

ℓi (zi ) = ln(1 + e zi ) − yi zi
Pr. ADDOU ML  Ch.3  Cross-entropy 23/62
Étape 2 : calcul de ln(σ(zi ))
Math  Premier terme
P

On sait que : 1
σ(zi ) = .
1 + e −zi
Donc :
1
 
ln(σ(zi )) = ln .
1 + e −zi
Ainsi :
ln(σ(zi )) = − ln(1 + e −zi ).
Or : 1 + e zi
1 + e −zi = .
e zi
Donc : ln(1 + e −zi ) = ln(1 + e zi ) − ln(e zi ) = ln(1 + e zi ) − zi .
Finalement :
ln(σ(zi )) = zi − ln(1 + e zi )

Pr. ADDOU ML  Ch.3  Cross-entropy 24/62


Étape 3 : calcul de ln(1 − σ(zi ))
Math  Deuxième terme
P

On a : 1
σ(zi ) = .
1 + e −zi
Donc : 1
1 − σ(zi ) = 1 − .
1 + e −zi
En mettant au même dénominateur :
1 + e −zi − 1 e −zi
1 − σ(zi ) = = .
1 + e −zi 1 + e −zi
En multipliant numérateur et dénominateur par e zi :
1
1 − σ(zi ) = .
1 + e zi
Donc : ln(1 − σ(zi )) = − ln(1 + e zi )

Pr. ADDOU ML  Ch.3  Cross-entropy 25/62


Étape 4 : forme simpliée de la perte
Math  Substitution dans la cross-entropy
P

On part de : ℓi = − [yi ln(σ(zi )) + (1 − yi ) ln(1 − σ(zi ))] .


D'après les deux résultats précédents :

ln(σ(zi )) = zi − ln(1 + e zi ),

et ln(1 − σ(zi )) = − ln(1 + e zi ).


Donc :
ℓi = − yi zi − ln(1 + e zi ) + (1 − yi ) − ln(1 + e zi ) .
  

En développant :
ℓi = −yi zi + yi ln(1 + e zi ) + (1 − yi ) ln(1 + e zi ).
yi + (1 − yi ) = 1,
Comme :
on obtient : ℓi (zi ) = ln(1 + e zi ) − yi zi

Pr. ADDOU ML  Ch.3  Cross-entropy 26/62


Étape 5 : première dérivée de la perte
Math  Dérivée par rapport à zi
P

On a montré que : ℓi (zi ) = ln(1 + e zi ) − yi zi .


On dérive par rapport à zi : dℓi = d ln(1 + e zi ) − d (y z ).
i i
dzi dzi dzi
Or : d e zi
ln(1 + e zi ) = .
dzi 1 + e zi
Et : d
(yi zi ) = yi .
dzi
Donc : dℓi e zi
= − yi .
dzi 1 + e zi
Comme : e zi 1
= = σ(zi ),
1+e zi 1 + e −zi
on obtient : dℓi
= σ(zi ) − yi
dzi
Pr. ADDOU ML  Ch.3  Cross-entropy 27/62
Étape 6 : deuxième dérivée
Math  Courbure de la perte
P

On a : dℓi
= σ(zi ) − yi .
dzi
Comme yi est une constante par rapport à zi , on obtient :
d 2 ℓi
= σ ′ (zi ).
dzi2
σ ′ (zi ) = σ(zi ) 1 − σ(zi ) .

Or, pour la sigmoïde :
Donc : d 2 ℓi
1

= σ(z ) − σ(z )
dzi2
i i

☞ À retenir
La deuxième dérivée mesure la courbure. Pour montrer la convexité, on veut vérier qu'elle est
toujours positive ou nulle.

Pr. ADDOU ML  Ch.3  Cross-entropy 28/62


Étape 7 : convexité de la perte individuelle
Math  Signe de la deuxième dérivée
P

Pour tout réel zi , la sigmoïde vérie :


0 < σ(zi ) < 1.

Donc : 1 − σ(zi ) > 0.


Ainsi : σ(zi ) 1 − σ(zi ) > 0.


Par conséquent : d 2 ℓi
= σ(zi ) 1 − σ(zi ) ≥ 0.

dzi 2

Donc : ℓi (zi ) est convexe en zi .

☞ À retenir
La perte individuelle est convexe car sa deuxième dérivée est toujours positive ou nulle.

Pr. ADDOU ML  Ch.3  Cross-entropy 29/62


Étape 8 : convexité par rapport aux paramètres
Math  Composition avec une fonction ane
P

On a montré que : ℓi (zi ) est convexe en zi .


Or : zi = wT xi + b.
Donc zi est une fonction ane des paramètres (w, b).
Une propriété importante dit que :

fonction convexe ◦ fonction ane = fonction convexe.


Donc : ℓi (w, b) = ℓi (wT xi + b) est convexe en (w, b).

☞ À retenir
Le passage du score zi aux paramètres (w, b) ne détruit pas la convexité, car zi dépend linéairement
des paramètres.

Pr. ADDOU ML  Ch.3  Cross-entropy 30/62


Étape 9 : convexité de la fonction de coût J
Math  Moyenne de pertes convexes
P

La fonction de coût est :


n
1X
J(w, b) = ℓi (w, b).
n
i=1

On vient de montrer que chaque perte individuelle ℓi (w, b) est convexe en (w, b).
Or, une somme de fonctions convexes reste convexe, et multiplier par une constante positive
conserve la convexité.
Donc :
J(w, b) est convexe en (w, b).

La convexité signie qu'il n'existe pas de mauvais minimum local. Tout minimum local est global.
Cependant, cela ne garantit pas toujours l'existence d'un minimiseur ni, notamment lorsque les
classes sont parfaitement séparables.

Pr. ADDOU ML  Ch.3  Cross-entropy 31/62


Résumé : pourquoi la cross-entropy est convexe ?

☞ À retenir
La démonstration repose sur quatre idées :

1 La perte individuelle peut se réécrire :

ℓi (zi ) = ln(1 + e zi ) − yi zi .

2 Sa deuxième dérivée est :


ℓ′′i (zi ) = σ(zi )(1 − σ(zi )).
3 Comme 0 < σ(zi ) < 1, on a :
ℓ′′i (zi ) ≥ 0.
Donc ℓi est convexe en zi .
4 Comme z i = w T xi + b est ane et que J est la moyenne des ℓi , alors :

J(w, b) est convexe.

Pr. ADDOU ML  Ch.3  Cross-entropy 32/62


Comparaison :

MSE + sigmoïde Cross-entropy + sigmoïde


Convexité en (w, b) Généralement non convexe Convexe pour la régression logis-
tique linéaire

Minima locaux Minima locaux possibles Pas de mauvais minima locaux

Gradient pour erreur Peut devenir faible à cause du fac- Reste plus informatif : ce facteur
conante teur p̂(1 − p̂) supplémentaire disparaît

Usage pratique Peu utilisée pour entraîner une ré- Standard en classication binaire
gression logistique probabiliste

☞ À retenir
La cross-entropy est préférée car elle provient du maximum de vraisemblance d'un modèle de
Bernoulli, conduit à une fonction de coût convexe et donne un gradient simple.
Si X contient une colonne de 1 pour le biais et si θ = (b, w1 , . . . , wd )T , alors : ∇θ J = n1 X T (p̂ − y).

Pr. ADDOU ML  Ch.3  Cross-entropy 33/62


Objectif : calculer ∂J
∂wj
et ∂J
∂b

★ Pourquoi ?
Pour appliquer la descente de gradient, on met à jour les paramètres dans la direction opposée
au gradient : ∂J
w ← w − α∇w J, b ←b−α .
∂b
Il faut donc calculer les dérivées de J par rapport à chaque paramètre.

Stratégie de la démonstration :
1 Dériver la perte d'un seul exemple ℓi par rapport à la probabilité prédite : ∂ℓi
∂ p̂i .
∂ p̂i
2 Dériver la probabilité prédite par rapport au score linéaire : ∂zi , p̂i = σ(zi ).
3 Dériver le score linéaire par rapport aux paramètres :
zi = wT xi + b, ∂zi
∂wj = xij , ∂zi
∂b = 1.
4 Appliquer la règle de la chaîne : ∂ℓi
∂wj = ∂ℓi
∂ p̂i · ∂ p̂i
∂zi · ∂zi
∂wj .

Pr. ADDOU ML  Ch.3  Cross-entropy 34/62


Étape 1 : calcul de ∂ℓi
∂ p̂i

Math  Dérivation par rapport à p̂i


P

Pour un exemple (xi , yi ), la perte est : ℓi = −yi ln(p̂i ) − (1 − yi ) ln(1 − p̂i ).


Étape 1 : calcul de ∂ℓi
∂ p̂i

Math  Dérivation par rapport à p̂i


P

Pour un exemple (xi , yi ), la perte est : ℓi = −yi ln(p̂i ) − (1 − yi ) ln(1 − p̂i ).


1−yi
En dérivant par rapport à p̂i , on obtient : ∂ℓi
∂ p̂i = − p̂yii + 1−p̂i .
En mettant au même dénominateur :
∂ℓi −yi (1 − p̂i ) + (1 − yi )p̂i
=
∂ p̂i p̂i (1 − p̂i )
−yi + yi p̂i + p̂i − yi p̂i
=
p̂i (1 − p̂i )
p̂i − yi
= .
p̂i (1 − p̂i )

∂ℓi p̂i − yi
=
∂ p̂i p̂i (1 − p̂i )
Pr. ADDOU ML  Ch.3  Cross-entropy 35/62
Étape 2 : calcul de ∂ p̂i
∂zi
et règle de la chaîne
Math  Dérivation par rapport à zi
P

On a : p̂i = σ(zi ).
∂ p̂i
D'après la propriété de la sigmoïde vue dans la Partie 1 : = σ(zi ) 1 − σ(zi ) = p̂i (1 − p̂i ).

∂zi
En appliquant la règle de la chaîne :
∂ℓi ∂ℓi ∂ p̂i p̂i − yi
·  · 1−
p̂i ) = p̂i − yi .

= = p̂i (
∂zi ∂ p̂i ∂zi p̂
i (
 1 −
p̂ i )

∂ℓi
= p̂i − yi
∂zi

☞ À retenir
Les termes p̂i (1 − p̂i ) se simplient. Le gradient par rapport au score linéaire zi devient simplement :
p̂i − yi . Ce terme représente l' erreur probabiliste entre la probabilité prédite et le label observé. Sa
forme est analogue au résidu utilisé en régression linéaire.

Pr. ADDOU ML  Ch.3  Cross-entropy 36/62


Étape 3 : gradient par rapport à wj et b
Math  Pour un seul exemple
P

Comme d
X
zi = wj xij + b,
j=1
on a : ∂zi ∂zi
= xij , = 1.
∂wj ∂b
Or : ∂ℓi
= p̂i − yi .
∂zi
Donc : ∂ℓi ∂ℓi
= (p̂i − yi )xij = p̂i − yi
∂wj ∂b

☞ À retenir
Pour un exemple, le gradient est proportionnel à l'erreur probabiliste p̂i − yi .

Pr. ADDOU ML  Ch.3  Cross-entropy 37/62


Gradient sur tout le dataset
Math  Moyenne des gradients
P

Comme 1X
n
J(w, b) = ℓi ,
n
i=1

on obtient : ∂J 1X
n
∂J 1X
n
= (p̂i − yi )xij = (p̂i − yi )
∂wj n ∂b n
i=1 i=1

Notation matricielle. Si X contient une colonne de 1 pour le biais et si

θ = (b, w1 , . . . , wd )T ,

alors : 1 T
∇θ J = X (p̂ − y) avec : p̂ = σ(X θ).
n

Pr. ADDOU ML  Ch.3  Cross-entropy 38/62


Comparaison : gradient régression linéaire vs logistique

Régression linéaire Régression logistique

Prédiction ŷ = Xθ p̂ = σ(X θ)
Type de sortie Valeur réelle Probabilité de la classe positive

Fonction de coût MSE quadratique Cross-entropy

1 T 1 T
Gradient
nX (ŷ − y) nX (p̂ − y)
Interprétation Résidu sur une sortie réelle Erreur probabiliste

☞ À retenir
Les deux gradients ont une structure algébrique analogue : n1 X T (prédiction − valeur observée).
Mais l'interprétation change : en régression linéaire, la prédiction est une valeur réelle ; en régression
logistique, la prédiction est une probabilité. Cette forme simple vient du couple sigmoïde + cross-
entropy, issu de la log-vraisemblance négative d'un modèle de Bernoulli.

Pr. ADDOU ML  Ch.3  Cross-entropy 39/62


Algorithme : descente de gradient pour la régression logistique

Algorithme complet
Entrées : X ∈ Rn×(d+1) avec une colonne de 1 pour le biais,
y ∈ {0, 1}n , α > 0, Tmax : nombre maximal d'itérations.
Initialisation : θ(0) = 0.
Pour t = 0, . . . , Tmax − 1 :
1 Calculer les scores linéaires : z(t) = X θ(t) .
Calculer les probabilités prédites : p̂
(t)
2 = σ(z(t) ),
où σ est appliquée élément par élément.

gradient de la cross-entropy : ∇θ J (t) = n1 X T (t)



3 Calculer le p̂ −y .
4 Mettre à jour les paramètres : θ (t+1) = θ (t) − α∇θ J (t) .

Pr. ADDOU ML  Ch.3  Cross-entropy 40/62


En Python  5 lignes dans la boucle
Exemple : Implémentation Python avec NumPy
import numpy as np
def sigmoid(z):
return 1 / (1 + [Link](-z))
n = [Link][0]
theta = [Link](d + 1)
alpha = 0.1
for t in range(max_iter):
z = X @ theta
p_hat = sigmoid(z)
gradient = (1/n) * X.T @ (p_hat - y)
theta = theta - alpha * gradient

☞ À retenir
La boucle garde la même logique que la descente de gradient du Chapitre 2 : calcul du score,
prédiction, gradient, puis mise à jour. La diérence essentielle est que la prédiction devient probabiliste
: p̂ = σ(X θ), et que le gradient provient de la cross-entropy.
Pr. ADDOU ML  Ch.3  Cross-entropy 41/62
Exemple : 4 points, 1 variable, 2 itérations

On utilise une matrice augmentée avec une colonne de 1 pour le


Exemple : Données biais :
1 −2 0
   
i xi yi (classe)
1 −1 0 0
   
b0
1 −2 0 X = 1 1 
, y =  ,
1 θ 0 = = .
2 −1 0 w0 0
3 +1 1 1 2 1
4 +2 1
 
b
α = 0.5, θ= .
w

Pr. ADDOU ML  Ch.3  Cross-entropy 42/62


Itération 1  scores et probabilités
Rappel :
 
0
θ0 = , α = 0.5.
0

Étape 1 : scores linéaires 


1

−2  
 
0
1 −1 0 0
z = X θ0 = 
1
 =
0 .

1  0
1 2 0

Étape 2 : probabilités prédites    


σ(0) 0.5
σ(0) 0.5
p̂ = σ(z) = 
σ(0) = 0.5 .
  

σ(0) 0.5

Étape 3 : erreur probabiliste    


0.5 −0 0.5
0.5 − 0  0.5 
p̂ − y = 
0.5 − 1 = −0.5 .
  

0.5 − 1 −0.5

Pr. ADDOU ML  Ch.3  Cross-entropy 43/62


Itération 1  gradient et mise à jour

Étape 4 : gradient
1
∇J = X T (p̂ − y)
4
 
0.5
 
1 1 1 1 1  0.5 
=  
4 −2 −1 1 2 −0.5
−0.5
   
1 0 0
= = .
4 −3 −0.75
Étape 5 : mise à jour
     
0 0 0
θ 1 = θ 0 − α∇J = − 0.5 = .
0 −0.75 0.375

Pr. ADDOU ML  Ch.3  Cross-entropy 44/62


Itération 2  scores et probabilités
 
On part de : 0
θ1 = .
0.375

Étape 1 : scores linéaires 


1

−2 

−0.750


1 −1 0 −0.375
z = X θ1 =   =
 0.375  .

1 1  0.375
1 2 0.750

Étape 2 : probabilités prédites  


0.321
0.407
= σ(z) ≈ 

0.593 .

0.679

Étape 3 : erreur probabiliste 


0.321 − 0
 
0.321

0.407 − 0  0.407 
p̂ − y ≈ 
0.593 − 1 = −0.407 .
  

0.679 − 1 −0.321
Pr. ADDOU ML  Ch.3  Cross-entropy 45/62
Itération 2  gradient et mise à jour

Étape 4 : gradient
1
∇J = X T (p̂ − y)
4
 
0.321
 
1 1  0.407 
1 1 1
≈  
4 −2 −1 1 2 −0.407
−0.321
   
1 0 0
≈ = .
4 −2.098 −0.525
Étape 5 : mise à jour
     
0 0 0
θ 2 = θ 1 − α∇J = − 0.5 ≈ .
0.375 −0.525 0.637

Pr. ADDOU ML  Ch.3  Cross-entropy 46/62


Calcul de la cross-entropy à chaque itération
Exemple : Vérication : la cross-entropy diminue
Itération θ = (b, w ) p̂ J (cross-entropy)

0 (0, 0) (0.500, 0.500, 0.500, 0.500) ln(2) =0.693


1 (0, 0.375) (0.321, 0.407, 0.593, 0.679) 0.455
2 (0, 0.637) (0.218, 0.346, 0.654, 0.782) 0.335
··· poursuite de la descente de gradient ···

La cross-entropy diminue au cours des premières itérations :

0.693 −→ 0.455 −→ 0.335 −→ · · ·

Le modèle améliore progressivement ses probabilités prédites : les points négatifs reçoivent des prob-
abilités de plus en plus proches de 0, tandis que les points positifs reçoivent des probabilités de plus
en plus proches de 1.

Pr. ADDOU ML  Ch.3  Cross-entropy 47/62


Régularisation de la régression logistique
★ Même principe qu'en régression linéaire
La régularisation consiste à ajouter un terme de pénalité à la fonction de coût.
Le principe est le même qu'au Chapitre 2, mais la fonction de coût de base est ici la cross-
entropy, c'est-à-dire la log-vraisemblance négative d'un modèle de Bernoulli.
Cross-entropy non régularisée
n
On note : 1X
JCE (w, b) = − [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )] ,
n
i=1

avec : p̂i = σ(wT xi + b).

☞ À retenir
La régularisation ne change pas le modèle probabiliste p̂i = P(Yi = 1 | xi ; w, b), mais elle modie la
fonction de coût an de pénaliser les modèles trop complexes, c'est-à-dire ceux avec des poids trop
grands.

Pr. ADDOU ML  Ch.3  Cross-entropy 48/62


Cross-entropy régularisée : Ridge et Lasso
Formes classiques de régularisation
À partir de la cross-entropy JCE (w, b), on peut dénir :
Ridge (L2) :
d
λX 2
JRidge (w, b) = JCE (w, b) + wj .
2
j=1

Lasso (L1) :
d
X
JLasso (w, b) = JCE (w, b) + λ |wj |.
j=1

En général, le biais b n'est pas régularisé : la pénalité porte seulement sur les poids w1 , . . . , wd .
La régularisation est particulièrement importante lorsque les classes sont linéairement séparables :
sans pénalité, la régression logistique non régularisée peut faire diverger les poids. Augmenter leur
norme rend les probabilités de plus en plus proches de 0 ou 1.

Pr. ADDOU ML  Ch.3  Cross-entropy 49/62


Gradient avec régularisation Ridge

Si la fonction de coût régularisée est dénie par :


d
λX 2
JRidge (θ) = JCE (θ) + wj ,
2
j=1

alors son gradient est :


1 T
∇θ JRidge = X (p̂ − y) + λθ ′
n
où :
θ = (b, w1 , w2 , . . . , wd )T , θ ′ = (0, w1 , w2 , . . . , wd )T .

Le premier coecient de θ ′ est nul car il correspond au biais b . En pratique, le biais n'est généralement
pas régularisé.

Pr. ADDOU ML  Ch.3  Cross-entropy 50/62


Gradient avec régularisation Ridge

Exemple : En Python
for t in range(max_iter):
p_hat = sigmoid(X @ theta)

theta_pen = [Link]()
theta_pen[0] = 0 # ne pas pénaliser le biais

gradient = (1/n) * X.T @ (p_hat - y) + lam * theta_pen


theta = theta - alpha * gradient

Pr. ADDOU ML  Ch.3  Cross-entropy 51/62


Exercice d'application
✎ TD  Exercice 1  Cross-entropy à la main
On considère un modèle de classication binaire. Pour chaque patient, p̂i = P(yi = 1 | xi ) désigne
la probabilité prédite de la classe positive.

i yi p̂i ℓi

1 1 0.95

2 0 0.20

3 1 0.10

4 0 0.70

1 Calculer la perte ℓi ℓi = −yi ln(p̂i ) − (1 − yi ) ln(1 − p̂i ).


pour chaque patient :
P4 1
2 J=
Calculer la cross-entropy moyenne : i=1 ℓi .
4
3 Quel patient contribue le plus à la fonction de coût ? Pourquoi ?

4 Si le modèle améliore sa prédiction pour le patient 3 de p̂3 = 0.10 à p̂3 = 0.80, calculer la nouvelle
valeur de ℓ3 . De combien la cross-entropy moyenne J diminue-t-elle ?

Pr. ADDOU ML  Ch.3  Cross-entropy 52/62


Correction  Exercice 1
✓ Solution  Exercice 1
1. Calcul des pertes individuelles
ℓ1 = − ln(0.95) ≈ 0.051 (bonne prédiction, coût faible)

ℓ2 = − ln(1 − 0.20) = − ln(0.80) ≈ 0.223


ℓ3 = − ln(0.10) ≈ 2.303 (erreur conante : y =1 mais p̂ = 0.10)
ℓ4 = − ln(1 − 0.70) = − ln(0.30) ≈ 1.204
2. Cross-entropy moyenne
J=
1
4
(0.051 + 0.223 + 2.303 + 1.204) =
3.781
4
≈ 0.945.
3. Contribution principale
Le patient 3 contribue le plus :
2.303
≈ 0.609,
3.781
soit environ 61% de la somme totale des pertes.
C'est une erreur conante : le modèle attribue une faible probabilité p̂ = 0.10 à la classe positive, alors que
le vrai label est y = 1. La cross-entropy pénalise fortement ce type d'erreur.

Pr. ADDOU ML  Ch.3  Cross-entropy 53/62


Correction  Exercice 1
✓ Solution  Exercice 1
4. Amélioration de la prédiction du patient 3
Si p̂3 passe de 0.10 à 0.80, alors :
ℓnouveau
3 = − ln(0.80) ≈ 0.223.
La perte du patient 3 diminue de :
2.303 − 0.223 = 2.080.
Le nouveau coût moyen devient :

Jnouveau =
0.051 + 0.223 + 0.223 + 1.204
4
=
1.701
4
≈ 0.425.
La diminution de la cross-entropy moyenne est donc :

0.945 − 0.425 = 0.520.


Cela correspond à une baisse d'environ :

0.520
0.945
× 100 ≈ 55%.
Pr. ADDOU ML  Ch.3  Cross-entropy 54/62
Exercice d'application
✎ TD  Exercice 2  Une itération de descente de gradient
On considère un modèle de régression logistique avec une seule caractéristique. Les données sont normalisées
   
b0 0
et p̂ = P(y = 1 | x). On xe le pas d'apprentissage : α = 1. On initialise : θ0 = = .
w0 0

i xi yi
1 −1 0
2 0 0
3 +1 1
Eectuer une itération de descente de gradient :

1 Construire la matrice augmentée X avec une colonne de 1.

2 Calculer les scores : z = X θ0 .


3 Calculer les probabilités prédites : p̂ = σ(z).
4 Calculer le vecteur d'erreurs probabilistes : p̂ − y.
5 1 T
Calculer le gradient : ∇J = 3 X (p̂ − y).
6 Calculer les nouveaux paramètres : θ 1 = θ 0 − α∇J.
7 Déterminer la nouvelle frontière de décision et vérier si elle est cohérente avec les données.
Pr. ADDOU ML  Ch.3  Cross-entropy 55/62
Correction  Exercice 2
✓ Solution  Exercice 2
1. Matrice augmentée et scores
 
1 −1  
0
X = 1 0 , θ0 = .
0
1 1
 
0
z = X θ 0 = 0 .
0

2. Probabilités prédites
 
0.5
p̂= σ(z) = 0.5 .
0.5

3. Erreurs probabilistes 
0.5 − 0
 
0.5

p̂ −y = 0.5 − 0 =  0.5  .
0.5 − 1 −0.5

Pr. ADDOU ML  Ch.3  Cross-entropy 56/62


Correction  Exercice 2
✓ Solution  Exercice 2
4. Gradient ∇J =
1
X T (p̂ − y)
3
 
  0.5
1 1 1 1
=  0.5 
3 −1 0 1
−0.5
   
1 0.5 0.167
= = .
3 −1 −0.333
5. Mise à jour Avec α=1 :  
0

0.167
 
−0.167

θ 1 = θ 0 − α∇J = − = .
0 −0.333 0.333

6. Interprétation On obtient : b = −0.167, w = 0.333.


7. frontière de décision La frontière de décision vérie : b + wx = 0.
Donc : −0.167 + 0.333x = 0 ⇐⇒ x ∗ ≈ 0.5.
Cette frontière est cohérente : elle se place entre x = 0, de classe 0, et x = 1, de classe 1. Le poids w > 0
indique que la probabilité de la classe positive augmente lorsque x augmente.

Pr. ADDOU ML  Ch.3  Cross-entropy 57/62


Exercice d'application

✎ TD  Exercice 3  Questions conceptuelles


Vrai ou Faux. Justiez brièvement.

1 La MSE est le critère statistique naturel pour entraîner une régression logistique.

2 La cross-entropy tend vers 0 quand le modèle attribue une probabilité proche de 1 à la classe
réellement observée.

3 Avec le couple sigmoïde + cross-entropy, le gradient a une structure algébrique analogue à celui de la
régression linéaire.

4 En régression logistique Ridge, le principe de régularisation L2 est le même qu'en régression linéaire,
mais il s'ajoute à une autre fonction de coût.

5 Sans régularisation, les poids peuvent diverger vers ±∞ si les classes sont parfaitement linéairement
séparables.

Pr. ADDOU ML  Ch.3  Cross-entropy 58/62


Correction  Exercice 3
✓ Solution  Exercice 3
1 ✗ Faux. La MSE n'est pas le critère statistique naturel pour la régression logistique. Pour une cible
Y | X = ∼ Bernoulli(p̂),
binaire, on modélise : x ce qui conduit naturellement à la log-vraisemblance
négative cross-entropy
, c'est-à-dire la . De plus, la MSE composée avec la sigmoïde conduit
généralement à une fonction de coût non convexe.

2 ✓ Vrai. y =
Si p̂ =
i 1 et ℓ = − ln( ) =
i 1, alors : i 1 0. Si yi = 0 et p̂i = 0, alors :
ℓ = − ln( − p̂ ) = − ln( ) = .
i 1 i 1 0 Ainsi, une prédiction parfaite donne une perte nulle.

3 ✓ Vrai, avec nuance. En régression linéaire, avec la convention J = 21n ∥ŷ − y∥2 , on obtient :
1 T 1 T
∇J = n X (ŷ − y). En régression logistique avec cross-entropy : ∇J = n X (p̂ − y). Les deux
gradients ont donc une structure algébrique analogue, mais l'interprétation est diérente : ŷ est une
sortie réelle, tandis que p̂ est une probabilité.

4 ✓ Vrai.
Le principe de la régularisation Ridge est le même qu'au Chapitre 2 : on ajoute une pénalité
L2 sur les poids, par exemple : 2
λ
Pd 2
j=1 wj . Cependant, cette pénalité s'ajoute ici à la , cross-entropy
alors qu'en régression linéaire elle s'ajoutait à la MSE. En général, le biais b n'est pas régularisé.

5 ✓ Vrai. Si les données sont parfaitement linéairement séparables, la régression logistique non
régularisée peut ne pas admettre de minimiseur ni : les poids peuvent croître indéniment an de
rendre les probabilités de plus en plus proches de 0 ou 1. La régularisation limite cette divergence en
pénalisant les grandes valeurs de ∥w∥.
Pr. ADDOU ML  Ch.3  Cross-entropy 59/62
Récapitulatif de la Partie 2
☞ À retenir

Concept Formule / idée


MSE mal adaptée Avec la sigmoïde, la MSE est généralement non convexe et
peut produire des gradients faibles dans les zones de satura-
tion.

Modèle probabiliste En classication binaire : Y | X = x ∼ Bernoulli(p̂), avec


p̂ = σ(wT x + b).
J = − n1 i=1 [yi ln(p̂i ) + (1 − yi ) ln(1 − p̂i )].
Pn
Cross-entropy

Origine statistique La cross-entropy est la log-vraisemblance négative du


modèle de Bernoulli. La minimiser revient à maximiser la
vraisemblance.

Convexité Pour la régression logistique linéaire, J est convexe en (w, b)


: pas de mauvais minima locaux.

Gradient ∇J = n1 X T (p̂ − y), avec p̂ = σ(X θ).

Pr. ADDOU ML  Ch.3  Cross-entropy 60/62


Récapitulatif de la Partie 2

☞ À retenir

Concept Formule / idée


Simplication clé Le terme σ ′ (z) = σ(z)(1 − σ(z)) se simplie avec le dénom-
inateur issu de la dérivée de la cross-entropy.

Algorithme GD Même logique d'optimisation que la régression linéaire :


score, prédiction, gradient, mise à jour. La prédiction de-
vient probabiliste.

+ λ2
Pd 2 Pd
|wj |.
Régularisation Ridge : j=1 wj ; Lasso : +λ j=1 En général, le
biais b n'est pas pénalisé.

Données séparables Sans régularisation, les poids peuvent diverger si les classes
sont linéairement séparables. La régularisation limite cette
divergence.

Pr. ADDOU ML  Ch.3  Cross-entropy 61/62


Fin de la Partie 2
Suite : Partie 3  Évaluation d'un modèle de classication
Matrice de confusion
Accuracy, précision, rappel et F1-score
Spécicité et interprétation médicale
Courbe ROC et AUC

Pause : 10 minutes

Pr. ADDOU ML  Ch.3  Cross-entropy 62/62


Module : Machine Learning
Chapitre 3  Partie 3/3 : Évaluer un modèle de classication

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  Ch.3  Évaluation 1/43


Ce que vous allez apprendre dans cette partie

1 Pourquoi l'accuracy seule peut être insusante en présence de classes déséquilibrées


2 La matrice de confusion : TP, FP, TN, FN
3 Les métriques clés : précision, rappel, F1-score, spécicité
4 Quand privilégier la précision ou le rappel selon le contexte applicatif
5 La courbe ROC et l'AUC : analyser la capacité de discrimination pour tous les seuils
6 Le choix du seuil de décision : pourquoi il peut être diérent de 0.5
7 Un exemple numérique complet

Message clé : en classication, un modèle peut obtenir une accuracy très élevée tout en étant peu
utile pour la classe d'intérêt (ex. détection de fraude rare). Cette partie montre comment choisir des
métriques d'évaluation adaptées au problème, aux données et au coût des erreurs.

Pr. ADDOU ML  Ch.3  Évaluation 2/43


L'accuracy peut être trompeuse avec des classes déséquilibrées
Exemple : Détection de fraude bancaire
Dataset : 10 000 transactions, dont 9 900 transactions légitimes et 100 transactions frauduleuses.
Modèle trivial : prédire toujours légitime (classe 0).

nombre de prédictions correctes 9 900


Accuracy = = = 99%.
nombre total d'exemples 10 000

Pr. ADDOU ML  Ch.3  Évaluation 3/43


L'accuracy peut être trompeuse avec des classes déséquilibrées
Exemple : Détection de fraude bancaire
Dataset : 10 000 transactions, dont 9 900 transactions légitimes et 100 transactions frauduleuses.
Modèle trivial : prédire toujours légitime (classe 0).

nombre de prédictions correctes 9 900


Accuracy = = = 99%.
nombre total d'exemples 10 000

★ Le problème
Le modèle obtient 99% d'accuracy, mais il ne détecte aucune transaction frauduleuse. Les
100 fraudes sont donc toutes classées comme légitimes. Dans un contexte médical analogue,
cela reviendrait à ne détecter aucun patient malade appartenant à la classe d'intérêt.

Pr. ADDOU ML  Ch.3  Évaluation 3/43


L'accuracy peut être trompeuse avec des classes déséquilibrées
Exemple : Détection de fraude bancaire
Dataset : 10 000 transactions, dont 9 900 transactions légitimes et 100 transactions frauduleuses.
Modèle trivial : prédire toujours légitime (classe 0).

nombre de prédictions correctes 9 900


Accuracy = = = 99%.
nombre total d'exemples 10 000

★ Le problème
Le modèle obtient 99% d'accuracy, mais il ne détecte aucune transaction frauduleuse. Les
100 fraudes sont donc toutes classées comme légitimes. Dans un contexte médical analogue,
cela reviendrait à ne détecter aucun patient malade appartenant à la classe d'intérêt.

☞ À retenir
L'accuracy est utile, mais elle peut être insusante seule lorsque les classes sont déséquilibrées. Il
faut analyser les types d'erreurs : confondre un patient malade avec un patient sain n'a pas le même
coût que confondre un patient sain avec un patient malade.

Pr. ADDOU ML  Ch.3  Évaluation 3/43


La matrice de confusion : les 4 cas possibles
Matrice de confusion (2 × 2)
La matrice de confusion compare les classes réelles y aux classes prédites ŷ . Dans cet exemple, la
classe positive correspond à la classe d'intérêt : malade.

Prédit positif (ŷ = 1) Prédit négatif (ŷ = 0)


Réel positif (y = 1) TP FN
Vrai positif Faux négatif

Réel négatif (y = 0) FP TN
Faux positif Vrai négatif

Lecture des quatre cas :


TP : le modèle prédit malade et le patient est eectivement malade ✓
TN : le modèle prédit sain et le patient est eectivement sain ✓
FP : le modèle prédit malade alors que le patient est sain ✗ ; c'est une fausse alarme
FN : le modèle prédit sain alors que le patient est malade ✗ ; c'est un cas positif manqué
Pr. ADDOU ML  Ch.3  Évaluation 4/43
Exemple numérique de matrice de confusion
Exemple : Détection de cancer sur 200 patients
La classe positive correspond ici à la classe Cancer. Le modèle a produit les prédictions suivantes :

Prédit Cancer Prédit Sain Total réel


Vrai Cancer TP = 25 FN = 25 50

Vrai Sain FP = 5 TN = 145 150

Total prédit 30 170 200

Lecture : parmi les 50 patients atteints d'un cancer, le modèle en détecte 25 (TP), mais en manque 25
(FN). Parmi les 150 patients sains, il en identie correctement 145 (TN), mais classe à tort 5 patients
comme atteints d'un cancer (FP).
TP + TN 25 + 145 170
Accuracy = = = = 85%.
Total 200 200

Pr. ADDOU ML  Ch.3  Évaluation 5/43


Exemple numérique de matrice de confusion
Exemple : Détection de cancer sur 200 patients
La classe positive correspond ici à la classe Cancer. Le modèle a produit les prédictions suivantes :

Prédit Cancer Prédit Sain Total réel


Vrai Cancer TP = 25 FN = 25 50

Vrai Sain FP = 5 TN = 145 150

Total prédit 30 170 200

Lecture : parmi les 50 patients atteints d'un cancer, le modèle en détecte 25 (TP), mais en manque 25
(FN). Parmi les 150 patients sains, il en identie correctement 145 (TN), mais classe à tort 5 patients
comme atteints d'un cancer (FP).
TP + TN 25 + 145 170
Accuracy = = = = 85%.
Total 200 200

Une accuracy de 85% peut sembler correcte, mais elle masque ici un problème important : 25
patients atteints d'un cancer ne sont pas détectés (FN = 25). En contexte médical, ce type
d'erreur peut avoir des conséquences graves. Il faut donc compléter l'accuracy par d'autres métriques,
comme le rappel, la précision, la spécicité et le F1-score.

Pr. ADDOU ML  Ch.3  Évaluation 5/43


Précision : abilité des prédictions positives
Précision (Precision)
TP
Précision = si TP + FP > 0.
TP + FP
Intuition : la précision mesure la abilité des alertes positives. Parmi les patients que le modèle
prédit comme atteints d'un cancer, quelle proportion est eectivement atteinte d'un cancer ?

Pr. ADDOU ML  Ch.3  Évaluation 6/43


Précision : abilité des prédictions positives
Précision (Precision)
TP
Précision = si TP + FP > 0.
TP + FP
Intuition : la précision mesure la abilité des alertes positives. Parmi les patients que le modèle
prédit comme atteints d'un cancer, quelle proportion est eectivement atteinte d'un cancer ?

Exemple : Sur notre exemple


25 25
Précision = 25+5 = 30 = 0.833 = 83.3%. Sur 30 patients prédits comme atteints d'un cancer, 25 le
sont eectivement, tandis que 5 sont des fausses alertes. Autrement dit, environ 16.7% des patients
prédits Cancer sont en réalité sains.

Pr. ADDOU ML  Ch.3  Évaluation 6/43


Précision : abilité des prédictions positives
Précision (Precision)
TP
Précision = si TP + FP > 0.
TP + FP
Intuition : la précision mesure la abilité des alertes positives. Parmi les patients que le modèle
prédit comme atteints d'un cancer, quelle proportion est eectivement atteinte d'un cancer ?

Exemple : Sur notre exemple


25 25
Précision = 25+5 = 30 = 0.833 = 83.3%. Sur 30 patients prédits comme atteints d'un cancer, 25 le
sont eectivement, tandis que 5 sont des fausses alertes. Autrement dit, environ 16.7% des patients
prédits Cancer sont en réalité sains.

☞ À retenir
Précision élevée = peu de faux positifs. Elle est importante lorsque le coût d'une fausse alerte
est élevé, par exemple lorsqu'une prédiction positive entraîne un examen invasif, un traitement inutile
ou une décision critique.

Pr. ADDOU ML  Ch.3  Évaluation 6/43


Rappel : proportion de positifs correctement détectés
Rappel (Recall, Sensitivity, Sensibilité)
TP
Rappel = si TP + FN > 0.
TP + FN
Intuition : le rappel mesure la capacité du modèle à retrouver les exemples positifs. Parmi tous les
patients eectivement atteints d'un cancer, quelle proportion est correctement détectée par le modèle ?

Pr. ADDOU ML  Ch.3  Évaluation 7/43


Rappel : proportion de positifs correctement détectés
Rappel (Recall, Sensitivity, Sensibilité)
TP
Rappel = si TP + FN > 0.
TP + FN
Intuition : le rappel mesure la capacité du modèle à retrouver les exemples positifs. Parmi tous les
patients eectivement atteints d'un cancer, quelle proportion est correctement détectée par le modèle ?

Exemple : Sur notre exemple


25 25
Rappel = 25+25 = 0.500 = 50%. Le modèle détecte 25 cancers sur 50. En revanche, 25
= 50
cancers ne sont pas détectés : ce sont les faux négatifs (FN), soit 50% des patients réellement
atteints d'un cancer.

Pr. ADDOU ML  Ch.3  Évaluation 7/43


Rappel : proportion de positifs correctement détectés
Rappel (Recall, Sensitivity, Sensibilité)
TP
Rappel = si TP + FN > 0.
TP + FN
Intuition : le rappel mesure la capacité du modèle à retrouver les exemples positifs. Parmi tous les
patients eectivement atteints d'un cancer, quelle proportion est correctement détectée par le modèle ?

Exemple : Sur notre exemple


25 25
Rappel = 25+25 = 0.500 = 50%. Le modèle détecte 25 cancers sur 50. En revanche, 25
= 50
cancers ne sont pas détectés : ce sont les faux négatifs (FN), soit 50% des patients réellement
atteints d'un cancer.

☞ À retenir
Rappel élevé = peu de faux négatifs. Il est particulièrement important lorsque manquer un
exemple positif peut avoir des conséquences graves, par exemple en détection de maladie, de fraude
ou d'anomalie critique.

Pr. ADDOU ML  Ch.3  Évaluation 7/43


Le compromis précision-rappel

☞ À retenir
Baisser le seuil augmente généralement le rappel, mais peut augmenter le nombre de fausses
alertes. Monter le seuil rend les prédictions positives plus sélectives, mais peut augmenter le
nombre de positifs manqués. Le choix du seuil dépend du contexte et du coût relatif des
faux positifs et des faux négatifs.

Pr. ADDOU ML  Ch.3  Évaluation 8/43


Quand privilégier la précision ou le rappel ?
Contexte Coût d'un FN Coût d'un FP Privilégier
Cancer Patient malade non détecté Examens complémentaires inutiles

Fraude Fraude non détectée Transaction légitime bloquée

Spam Spam qui reste en boîte de Email légitime envoyé en spam


réception

Justice Cas positif non identié Personne innocente accusée à tort

Pub ciblée Client potentiel manqué Publicité envoyée à un client peu


pertinent

☞ À retenir
Règle pratique :
Si manquer un positif est plus grave qu'une fausse alerte → privilégier le rappel .

Si une fausse alerte est plus coûteuse qu'un positif manqué → privilégier la précision.

Si l'on cherche un compromis entre précision et rappel → utiliser le F1-score.


Pr. ADDOU ML  Ch.3  Évaluation 9/43
Quand privilégier la précision ou le rappel ?
Contexte Coût d'un FN Coût d'un FP Privilégier
Cancer Patient malade non détecté Examens complémentaires inutiles Rappel
Fraude Fraude non détectée Transaction légitime bloquée Rappel
Spam Spam qui reste en boîte de Email légitime envoyé en spam Précision
réception

Justice Cas positif non identié Personne innocente accusée à tort Précision
Pub ciblée Client potentiel manqué Publicité envoyée à un client peu F1-score
pertinent

☞ À retenir
Règle pratique :
Si manquer un positif est plus grave qu'une fausse alerte → privilégier le rappel .

Si une fausse alerte est plus coûteuse qu'un positif manqué → privilégier la précision.

Si l'on cherche un compromis entre précision et rappel → utiliser le F1-score.


Pr. ADDOU ML  Ch.3  Évaluation 10/43
Le F1-score : moyenne harmonique de la précision et du rappel
F1-score
Précision × Rappel 2TP
F1 = 2 · = ,
Précision + Rappel 2TP + FP + FN
lorsque Précision + Rappel > 0.

Pourquoi utiliser une moyenne harmonique plutôt qu'une moyenne arithmétique ?


Exemple : Moyenne arithmétique vs moyenne harmonique
Supposons : Précision = 0.99, Rappel = 0.01. Ce cas correspond à un modèle qui prédit très
peu d'exemples comme positifs : ses alertes positives sont ables, mais il manque presque tous les
vrais positifs.
0.99+0.01
Moyenne arithmétique : 2 = 0.50 Cette valeur peut donner une impression trop favorable. ✗
2×0.99×0.01
Moyenne harmonique : F1 = 0.99+0.01 = 0.0198 ≈ 0.02 Elle révèle clairement le déséquilibre entre
précision et rappel. ✓

Pr. ADDOU ML  Ch.3  Évaluation 11/43


Le F1-score : moyenne harmonique de la précision et du rappel

☞ À retenir
La moyenne harmonique est fortement inuencée par la plus petite des deux valeurs. Le
F1-score n'est élevé que si la précision et le rappel sont toutes les deux élevées. Il est
particulièrement utile lorsque l'on veut évaluer la performance sur la classe positive, mais il
ne tient pas compte des vrais négatifs TN .

Pr. ADDOU ML  Ch.3  Évaluation 12/43


Spécicité

Spécicité (Specicity, True Negative Rate)


TN
Spécicité = si TN + FP > 0.
TN + FP
Elle mesure la proportion de vrais négatifs correctement identiés :

Spécicité = P(ŷ = 0 | y = 0).

Pr. ADDOU ML  Ch.3  Évaluation 13/43


Principales métriques

Résumé des principales métriques sur notre exemple


TP = 25, FP = 5, TN = 145, FN = 25.

Métrique Formule Valeur

Accuracy (TP + TN)/Total (25 + 145)/200 = 170/200 = 85.0%


Précision TP/(TP + FP) 25/(25 + 5) = 25/30 = 83.3%
Rappel TP/(TP + FN) 25/(25 + 25) = 25/50 = 50.0%
Spécicité TN/(TN + FP) 145/(145 + 5) = 145/150 = 96.7%
0.833×0.500
F1-score 2 · P×R
P+R 2 · 0.833+0.500 = 62.5%

Pr. ADDOU ML  Ch.3  Évaluation 14/43


Le seuil de décision n'est pas toujours 0.5
★ Rappel de la Partie 1
En Partie 1, on utilisait la règle :ŷ = 1 si p̂ ≥ 0.5.
Ce seuil est un choix courant, mais il n'est pas toujours optimal. On peut choisir un seuil
plus bas, par exemple s = 0.3, pour détecter davantage de positifs, ou un seuil plus haut, par
exemple s = 0.8, pour être plus sélectif.

Quand on change le seuil s , la matrice de confusion change, donc les métriques


changent :
Seuil s TP FP Précision Rappel F1-score
0.2 45 35 56.3% 90.0% 69.2%

0.5 25 5 83.3% 50.0% 62.5%

0.8 10 1 90.9% 20.0% 32.8%

Pr. ADDOU ML  Ch.3  Évaluation 15/43


Le seuil de décision n'est pas toujours 0.5
★ Rappel de la Partie 1
En Partie 1, on utilisait la règle :ŷ = 1 si p̂ ≥ 0.5.
Ce seuil est un choix courant, mais il n'est pas toujours optimal. On peut choisir un seuil
plus bas, par exemple s = 0.3, pour détecter davantage de positifs, ou un seuil plus haut, par
exemple s = 0.8, pour être plus sélectif.

Quand on change le seuil s , la matrice de confusion change, donc les métriques


changent :
Seuil s TP FP Précision Rappel F1-score
0.2 45 35 56.3% 90.0% 69.2%

0.5 25 5 83.3% 50.0% 62.5%

0.8 10 1 90.9% 20.0% 32.8%

Deux modèles peuvent être diciles à comparer à partir d'un seul seuil. La courbe ROC et l'AUC
permettent d'analyser la capacité de discrimination du modèle en considérant tous les seuils pos-
sibles.

Pr. ADDOU ML  Ch.3  Évaluation 15/43


Courbe ROC : objectif
ROC = Receiver Operating Characteristic
La courbe ROC sert à évaluer un modèle de classication binaire qui produit un score p̂(x),
par exemple une probabilité estimée :

p̂(x) ≈ P(y = 1 | x).

Pour transformer ce score en classe, on choisit un seuil s :


(
1 si p̂(x) ≥ s,
ŷ =
0 sinon.

Pr. ADDOU ML  Ch.3  Évaluation 16/43


Courbe ROC : objectif
ROC = Receiver Operating Characteristic
La courbe ROC sert à évaluer un modèle de classication binaire qui produit un score p̂(x),
par exemple une probabilité estimée :

p̂(x) ≈ P(y = 1 | x).

Pour transformer ce score en classe, on choisit un seuil s :


(
1 si p̂(x) ≥ s,
ŷ =
0 sinon.

☞ À retenir
La courbe ROC n'étudie pas un seul seuil. Elle étudie le comportement du modèle lorsque le seuil s
varie. Elle permet donc d'analyser le compromis entre la détection des positifs et la production de
faux positifs.

Pr. ADDOU ML  Ch.3  Évaluation 16/43


Les deux quantités de la ROC : TPR et FPR

Taux de vrais positifs Taux de faux positifs


TP FP
TPR = FPR =
TP + FN FP + TN
Le TPR mesure la proportion d'exemples posi- Le FPR mesure la proportion d'exemples né-
tifs correctement détectés. Il est aussi appelé : gatifs classés à tort comme positifs. Il vérie :

rappel ou sensibilité. FPR = 1 − spécicité.

Pr. ADDOU ML  Ch.3  Évaluation 17/43


Les deux quantités de la ROC : TPR et FPR

Taux de vrais positifs Taux de faux positifs


TP FP
TPR = FPR =
TP + FN FP + TN
Le TPR mesure la proportion d'exemples posi- Le FPR mesure la proportion d'exemples né-
tifs correctement détectés. Il est aussi appelé : gatifs classés à tort comme positifs. Il vérie :

rappel ou sensibilité. FPR = 1 − spécicité.

☞ À retenir
La courbe ROC trace :

FPR(s) en abscisse et TPR(s) en ordonnée,

lorsque le seuil de décision s varie.

Pr. ADDOU ML  Ch.3  Évaluation 17/43


Pourquoi la ROC commence en (0, 0) et nit en (1, 1) ?

Pr. ADDOU ML  Ch.3  Évaluation 18/43


Pourquoi la ROC commence en (0, 0) et nit en (1, 1) ?

Seuil très élevé


Si le seuil s est tellement élevé qu'aucun
exemple n'est prédit positif :

ŷ = 0 pour tous les exemples.

Alors : TP = 0, FP = 0.
Donc : TPR = 0, FPR = 0.
La courbe commence au point : (0, 0).

Pr. ADDOU ML  Ch.3  Évaluation 18/43


Pourquoi la ROC commence en (0, 0) et nit en (1, 1) ?

Seuil très élevé Seuil très faible


Si le seuil s est tellement élevé qu'aucun Si le seuil s est tellement faible que tous
exemple n'est prédit positif : les exemples sont prédits positifs :

ŷ = 0 pour tous les exemples. ŷ = 1 pour tous les exemples.

Alors : TP = 0, FP = 0. Alors : FN = 0, TN = 0.
Donc : TPR = 0, FPR = 0. Donc : TPR = 1, FPR = 1.
La courbe commence au point : (0, 0). La courbe se termine au point : (1, 1).

Pr. ADDOU ML  Ch.3  Évaluation 18/43


Pourquoi la ROC commence en (0, 0) et nit en (1, 1) ?

Seuil très élevé Seuil très faible


Si le seuil s est tellement élevé qu'aucun Si le seuil s est tellement faible que tous
exemple n'est prédit positif : les exemples sont prédits positifs :

ŷ = 0 pour tous les exemples. ŷ = 1 pour tous les exemples.

Alors : TP = 0, FP = 0. Alors : FN = 0, TN = 0.
Donc : TPR = 0, FPR = 0. Donc : TPR = 1, FPR = 1.
La courbe commence au point : (0, 0). La courbe se termine au point : (1, 1).

☞ À retenir
Une courbe ROC complète commence en (0, 0) et se termine en (1, 1). Les points intermé-
diaires correspondent aux diérents seuils possibles.

Pr. ADDOU ML  Ch.3  Évaluation 18/43


Construction d'une courbe ROC : exemple
On suppose que le modèle donne les scores suivants :

Exemple Vraie classe Score p̂


A Positif 0.95
B Positif 0.80
C Négatif 0.60
D Positif 0.40
E Négatif 0.30
F Négatif 0.10

En diminuant progressivement le seuil s, de plus en plus d'exemples sont classés positifs.

Seuil choisi Exemples prédits positifs TPR FPR


s > 0.95
s = 0.95
s = 0.80
s = 0.60
s = 0.40
s = 0.30
s = 0.10
Pr. ADDOU ML  Ch.3  Évaluation 19/43
Construction d'une courbe ROC : exemple
On suppose que le modèle donne les scores suivants :

Exemple Vraie classe Score p̂


A Positif 0.95
B Positif 0.80
C Négatif 0.60
D Positif 0.40
E Négatif 0.30
F Négatif 0.10

En diminuant progressivement le seuil s, de plus en plus d'exemples sont classés positifs.

Seuil choisi Exemples prédits positifs TPR FPR


s > 0.95 aucun 0/3 =0 0/3 =0
s = 0.95 A 1/3 0/3
s = 0.80 A, B 2/3 0/3
s = 0.60 A, B, C 2/3 1/3
s = 0.40 A, B, C, D 3/3 1/3
s = 0.30 A, B, C, D, E 3/3 2/3
s = 0.10 tous 3/3 3/3

Pr. ADDOU ML  Ch.3  Évaluation 20/43


La courbe ROC : lecture graphique
Lecture :
1 Chaque point de la courbe correspond à un seuil
parfait
possible.
ROC du modèle
Le point (0, 0) correspond au cas où aucun

e exemple n'est prédit positif.


oir
TPR

0.5 at
alé Le point (1, 1) correspond au cas où tous les
exemples sont prédits positifs.

La diagonale correspond à un score non informatif.

0 Plus la courbe est proche du coin supérieur


0 0.5 1 gauche, meilleure est la discrimination.
FPR
☞ À retenir
Un modèle parfait passe par le point
(FPR, TPR) = (0, 1) puis suit le bord supérieur
de la gure. Dans ce cas, l'AUC vaut 1.

Pr. ADDOU ML  Ch.3  Évaluation 21/43


AUC : aire sous la courbe ROC

★ Dénition
L'AUC signie Area Under the Curve , c'est-à-dire l'aire sous la courbe ROC.

Mathématiquement, si la courbe ROC est vue comme une fonction reliant TPR à FPR , alors :
1
AUC =
Z
TPR(FPR) dFPR.
0
1
☞ À retenir
hasard Plus l'AUC est grande, plus la courbe ROC est
TPR

proche du coin supérieur gauche. Une AUC


0.5
AUC
proche de 1 indique une forte capacité à dis-
tinguer les exemples positifs des exemples négat-
ifs.
0
0 0.5 1
FPR
Pr. ADDOU ML  Ch.3  Évaluation 22/43
AUC : aire sous la courbe ROC

Valeur de l'AUC Interprétation


1 Classement parfait : tous les positifs reçoivent un score
supérieur aux négatifs.

0.5 Score non informatif : comportement proche du hasard.

< 0.5 Le score ordonne souvent les exemples dans le mauvais


sens.

☞ À retenir
La ROC est une courbe obtenue en variant le seuil.
L'AUC est une valeur numérique qui mesure l'aire sous cette courbe :
1
AUC =
Z
TPR(FPR) dFPR.
0

Pr. ADDOU ML  Ch.3  Évaluation 23/43


AUC : interprétation par paires positifnégatif
★ Idée principale
L'AUC peut s'interpréter comme une mesure de classement. On compare les scores de tous
les couples formés par :

x + : un exemple positif et x − : un exemple négatif.

Le modèle associe à chaque exemple un score p̂(x). Une paire (x + , x − ) est dite bien ordonnée si :
p̂(x + ) > p̂(x − ).

Pr. ADDOU ML  Ch.3  Évaluation 24/43


AUC : interprétation par paires positifnégatif
★ Idée principale
L'AUC peut s'interpréter comme une mesure de classement. On compare les scores de tous
les couples formés par :

x + : un exemple positif et x − : un exemple négatif.

Le modèle associe à chaque exemple un score p̂(x). Une paire (x + , x − ) est dite bien ordonnée si :
p̂(x + ) > p̂(x − ).

Si le jeu de test contient n+ exemples positifs et n− exemples négatifs, alors le nombre total de paires
positifnégatif est :
n+ × n − .
L'AUC mesure la proportion de ces paires dans lesquelles le positif reçoit un score plus élevé que le
négatif.

Pr. ADDOU ML  Ch.3  Évaluation 24/43


AUC : proportion de paires bien ordonnées
Notons :
P = {xi : yi = 1} et N = {xj : yj = 0}.
Lorsque les scores ne présentent pas d'égalités, l'AUC peut s'écrire :

+
, x − ) ∈ P × N : p̂(x + ) > p̂(x − )}
AUC = # {(x |P| |N |
.

Pr. ADDOU ML  Ch.3  Évaluation 25/43


AUC : proportion de paires bien ordonnées
Notons :
P = {xi : yi = 1} et N = {xj : yj = 0}.
Lorsque les scores ne présentent pas d'égalités, l'AUC peut s'écrire :

+
, x − ) ∈ P × N : p̂(x + ) > p̂(x − )}
AUC = # {(x |P| |N |
.

☞ À retenir
Une AUC de 0,92 signie que, parmi tous les couples positifnégatif possibles, environ 92 % sont bien
ordonnés : le modèle attribue un score plus grand au positif qu'au négatif.

Pr. ADDOU ML  Ch.3  Évaluation 25/43


AUC : proportion de paires bien ordonnées
Notons :
P = {xi : yi = 1} et N = {xj : yj = 0}.
Lorsque les scores ne présentent pas d'égalités, l'AUC peut s'écrire :

+
, x − ) ∈ P × N : p̂(x + ) > p̂(x − )}
AUC = # {(x |P| |N |
.

☞ À retenir
Une AUC de 0,92 signie que, parmi tous les couples positifnégatif possibles, environ 92 % sont bien
ordonnés : le modèle attribue un score plus grand au positif qu'au négatif.

En présence d'égalités de scores, une paire avec p̂(x + ) = p̂(x − ) est généralement comptée comme
une demi-victoire.

Pr. ADDOU ML  Ch.3  Évaluation 25/43


Pourquoi cette interprétation est liée à la ROC ?
★ Deux lectures de la même quantité
L'AUC peut être comprise de deux manières équivalentes :

AUC = aire sous la courbe ROC

AUC = P
 1
p̂(x + ) > p̂(x − ) + P p̂(x + ) = p̂(x − )

2

La courbe ROC étudie tous les seuils possibles. Si les exemples positifs reçoivent généralement des
scores plus élevés que les exemples négatifs, alors il existe beaucoup de seuils pour lesquels :

TPR est grand et FPR est faible.

La courbe ROC se rapproche alors du coin supérieur gauche, et l'AUC devient grande.

Pr. ADDOU ML  Ch.3  Évaluation 26/43


Pourquoi cette interprétation est liée à la ROC ?
★ Deux lectures de la même quantité
L'AUC peut être comprise de deux manières équivalentes :

AUC = aire sous la courbe ROC

AUC = P
 1
p̂(x + ) > p̂(x − ) + P p̂(x + ) = p̂(x − )

2

La courbe ROC étudie tous les seuils possibles. Si les exemples positifs reçoivent généralement des
scores plus élevés que les exemples négatifs, alors il existe beaucoup de seuils pour lesquels :

TPR est grand et FPR est faible.

La courbe ROC se rapproche alors du coin supérieur gauche, et l'AUC devient grande.

☞ À retenir
L'AUC résume donc la qualité du classement des scores, indépendamment d'un seuil particulier.
Pr. ADDOU ML  Ch.3  Évaluation 26/43
Exemple 1 : AUC parfaite
Exemple : Tous les positifs sont mieux classés que les négatifs
Exemple Vraie classe Score p̂
A Positif 0.90
B Positif 0.70
C Négatif 0.40
D Négatif 0.20

Les paires positifnégatif sont :


(A, C ), (A, D), (B, C ), (B, D).

Dans chaque paire, le score du positif est supérieur au score du négatif :

0.90 > 0.40, 0.90 > 0.20, 0.70 > 0.40, 0.70 > 0.20.

☞ À retenir
Les 4 paires sur 4 sont bien ordonnées : AUC = 44 = 1. Le modèle classe parfaitement les positifs
avant les négatifs.
Pr. ADDOU ML  Ch.3  Évaluation 27/43
Exemple 2 : une paire mal ordonnée
Exemple : Un positif reçoit un score plus faible qu'un
négatif
Exemple Vraie classe Score p̂
A Positif 0.90
B Positif 0.30
C Négatif 0.40
D Négatif 0.20
Exemple 2 : une paire mal ordonnée
Exemple : Un positif reçoit un score plus faible qu'un
négatif
Exemple Vraie classe Score p̂
A Positif 0.90
B Positif 0.30
C Négatif 0.40
D Négatif 0.20

Comparons les paires positifnégatif :

(A, C ) : 0.90 > 0.40 3

(A, D) : 0.90 > 0.20 3

(B, C ) : 0.30 < 0.40 7

(B, D) : 0.30 > 0.20 3

Pr. ADDOU ML  Ch.3  Évaluation 28/43


Exemple 2 : une paire mal ordonnée
Exemple : Un positif reçoit un score plus faible qu'un ☞ À retenir
négatif Ici, 3 paires sur 4 sont bien
ordonnées :
Exemple Vraie classe Score p̂
A Positif 0.90 AUC = 43 = 0.75.
B Positif 0.30
C Négatif 0.40 Cela signie que, dans 75 %
D Négatif 0.20 des paires positifnégatif, le
modèle donne un score plus
Comparons les paires positifnégatif : élevé au positif.

(A, C ) : 0.90 > 0.40 3

(A, D) : 0.90 > 0.20 3

(B, C ) : 0.30 < 0.40 7

(B, D) : 0.30 > 0.20 3

Pr. ADDOU ML  Ch.3  Évaluation 28/43


Attention : AUC et accuracy sont diérentes
★ Deux mesures diérentes
L'accuracy évalue les classes obtenues après avoir choisi un seuil. L'AUC évalue le classement
des scores avant de xer un seuil particulier.

Mesure Ce qu'elle évalue


Accuracy Proportion de prédictions correctes pour un seuil donné

ROC Évolution de TPR et FPR lorsque le seuil varie

AUC Qualité globale du classement des scores, indépendamment


d'un seuil xe

☞ À retenir
Une AUC élevée signie que le modèle ordonne bien les exemples : les positifs ont tendance à recevoir
des scores plus grands que les négatifs. Cela ne signie pas automatiquement que l'accuracy sera
maximale pour n'importe quel seuil.

Pr. ADDOU ML  Ch.3  Évaluation 29/43


Comment choisir le seuil en pratique ?
★ Le seuil 0.5 n'est pas toujours optimal
Le seuil 0.5 est un choix naturel lorsque p̂ est une probabilité bien calibrée et lorsque les coûts
des faux positifs et des faux négatifs sont comparables. Dans beaucoup d'applications, le
seuil doit être choisi en fonction de l'objectif du modèle et du coût des erreurs.

Pr. ADDOU ML  Ch.3  Évaluation 30/43


Comment choisir le seuil en pratique ?
★ Le seuil 0.5 n'est pas toujours optimal
Le seuil 0.5 est un choix naturel lorsque p̂ est une probabilité bien calibrée et lorsque les coûts
des faux positifs et des faux négatifs sont comparables. Dans beaucoup d'applications, le
seuil doit être choisi en fonction de l'objectif du modèle et du coût des erreurs.

Stratégies courantes :
Maximiser une métrique cible : tester plusieurs seuils s sur le jeu de validation et garder celui
qui maximise la métrique choisie, par exemple le F1-score, le rappel ou la précision.

Pr. ADDOU ML  Ch.3  Évaluation 30/43


Comment choisir le seuil en pratique ?
★ Le seuil 0.5 n'est pas toujours optimal
Le seuil 0.5 est un choix naturel lorsque p̂ est une probabilité bien calibrée et lorsque les coûts
des faux positifs et des faux négatifs sont comparables. Dans beaucoup d'applications, le
seuil doit être choisi en fonction de l'objectif du modèle et du coût des erreurs.

Stratégies courantes :
Maximiser une métrique cible : tester plusieurs seuils s sur le jeu de validation et garder celui
qui maximise la métrique choisie, par exemple le F1-score, le rappel ou la précision.

Point de Youden sur la courbe ROC :


s ∗ = arg max
 
Rappel(s) − FPR(s) = arg max Sensibilité(s) + Spécicité(s) − 1 .
s s

Ce critère cherche un compromis entre sensibilité et spécicité.

Pr. ADDOU ML  Ch.3  Évaluation 30/43


Comment choisir le seuil en pratique ?
★ Le seuil 0.5 n'est pas toujours optimal
Le seuil 0.5 est un choix naturel lorsque p̂ est une probabilité bien calibrée et lorsque les coûts
des faux positifs et des faux négatifs sont comparables. Dans beaucoup d'applications, le
seuil doit être choisi en fonction de l'objectif du modèle et du coût des erreurs.

Stratégies courantes :
Maximiser une métrique cible : tester plusieurs seuils s sur le jeu de validation et garder celui
qui maximise la métrique choisie, par exemple le F1-score, le rappel ou la précision.

Point de Youden sur la courbe ROC :


s ∗ = arg max
 
Rappel(s) − FPR(s) = arg max Sensibilité(s) + Spécicité(s) − 1 .
s s

Ce critère cherche un compromis entre sensibilité et spécicité.

Coût applicatif : si un faux négatif est beaucoup plus coûteux qu'un faux positif, on choisit
souvent un seuil plus bas an d'augmenter le rappel. Inversement, si les faux positifs sont très
coûteux, on choisit souvent un seuil plus élevé.

Pr. ADDOU ML  Ch.3  Évaluation 30/43


Comment choisir le seuil en pratique ?

Règle : le seuil de décision se choisit sur le jeu de validation, jamais sur le jeu de test. Il
doit être considéré comme un hyperparamètre du système de classication.

Pr. ADDOU ML  Ch.3  Évaluation 31/43


Python  calcul des métriques avec scikit-learn
Exemple : Matrice de confusion, rapport de classication et ROC
from [Link] import (confusion_matrix, classification_report,
roc_curve, roc_auc_score)
y_pred = (p_hat >= 0.5).astype(int)
# Matrice de confusion : lignes = vraies classes, colonnes = classes prédites
cm = confusion_matrix(y_test, y_pred, labels=[0, 1])
print(cm) # [[TN, FP], [FN, TP]]
# Rapport complet : précision, rappel, F1-score
print(classification_report(y_test, y_pred))
# Courbe ROC : utiliser un score continu, pas les labels prédits
fpr, tpr, seuils = roc_curve(y_test, p_hat)
auc = roc_auc_score(y_test, p_hat)
print(f"AUC = {auc:.4f}")
# Tracer la courbe ROC
[Link](fpr, tpr)
[Link]([0, 1], [0, 1], '')
[Link]("FPR")
[Link]("TPR")
[Link]()
Pr. ADDOU ML  Ch.3  Évaluation 32/43
Python  calcul des métriques avec scikit-learn

Attention : roc_curve et roc_auc_score utilisent un score continu : par exemple la


probabilité de la classe positive p_hat = model.predict_proba(X_test)[:, 1] ou un
score produit par decision_function. Il ne faut pas leur donner les labels binaires y_pred,
car cela réduirait fortement l'information disponible pour tracer la ROC.

Pr. ADDOU ML  Ch.3  Évaluation 33/43


Exemple complet : 10 patients

Exemple : Données
Dans cet exemple, la classe positive est la classe malade : y = 1 signie patient malade et y = 0 signie
patient sain. Le score p̂ représente la probabilité estimée de la classe positive.

Patient y (réel) p̂ ŷ avec s = 0.5 Cas

1 1 0.95 1 ✓ TP
2 1 0.85 1 ✓ TP
3 1 0.70 1 ✓ TP
4 1 0.40 0 ✗ FN
5 1 0.30 0 ✗ FN
6 0 0.60 1 ✗ FP
7 0 0.20 0 ✓ TN
8 0 0.15 0 ✓ TN
9 0 0.10 0 ✓ TN
10 0 0.05 0 ✓ TN

Avec le seuil s = 0.5, on obtient :    


TN FP 4 1
TP = 3, FN = 2, FP = 1, TN = [Link] de confusion = = .
FN TP 2 3

Pr. ADDOU ML  Ch.3  Évaluation 34/43


Calcul des métriques sur les 10 patients

Métrique Calcul Valeur


Accuracy (TP + TN)/10 = (3 + 4)/10 70%

Précision TP/(TP + FP) = 3/(3 + 1) 75%

Rappel TP/(TP + FN) = 3/(3 + 2) 60%

Spécicité TN/(TN + FP) = 4/(4 + 1) 80%


0.75×0.60
F1-score 2×
0.75+0.60 66.7%

Interprétation : un rappel de 60% signie que le modèle détecte 3 patients malades sur 5,
mais en manque 2. En contexte médical, ce taux de faux négatifs peut être problématique.
Si l'objectif est d'augmenter le rappel, on peut choisir un seuil plus bas, par exemple
s = 0.35. Dans ce cas, le patient 4 (p̂ = 0.40) passe de ŷ = 0 à ŷ = 1.
TP = 4, FN = 1, FP = 1, TN = 4. Le rappel devient alors : Rappel = 4+4 1 = 45 = 80%.
Cependant, le choix du seuil doit être eectué sur un jeu de validation, car modier le seuil change
aussi les autres métriques.

Pr. ADDOU ML  Ch.3  Évaluation 35/43


✎ TD  Exercice 1  Matrice de confusion et métriques (12 min)
Un ltre anti-spam est testé sur 500 emails : 400 emails légitimes et 100 spams. Les résultats sont
les suivants :
Prédit Spam Prédit Légitime
Vrai Spam 85 15

Vrai Légitime 30 370

1 Identier TP , FP , TN et FN . Quelle est la classe positive ici ?

2 Calculer l'accuracy. Est-elle susante pour juger la qualité du ltre ?

3 Calculer la précision. Interpréter le résultat : parmi les emails prédits comme spam, quelle proportion
est réellement un spam ?

4 Calculer le rappel. Interpréter le résultat : parmi les vrais spams, quelle proportion est correctement
détectée ?

5 Calculer le F1-score.

6 Ici, 30 emails légitimes sont envoyés à tort dans le dossier spam (FP = 30). Si l'on veut éviter de
perdre des emails professionnels importants, faut-il privilégier la précision ou le rappel ? Justier.

Pr. ADDOU ML  Ch.3  Évaluation 36/43


✓ Solution  Exercice 1
1. La classe positive est Spam. Ainsi :

TP = 85, FP = 30, TN = 370, FN = 15.

TP = 85 : vrais spams correctement détectés ; FP = 30 : emails légitimes classés à tort comme spams ;
TN = 370 : emails légitimes correctement classés ; FN = 15 : spams non détectés.
2.
Accuracy =
TP + TN
500
=
85 + 370
500
=
455
500
= 91%.
Cette valeur est informative, car le déséquilibre n'est pas extrême (100 spams contre 400 emails légitimes).
Cependant, elle ne sut pas à elle seule : il faut aussi regarder les faux positifs et les faux négatifs.
3.
Précision =
TP
TP + FP
=
85
85
+ 30
=
85
115
= 73.9%.
Parmi les emails prédits comme spam, environ 73.9% sont réellement des spams. Autrement dit, environ
26.1% des emails classés comme spams sont en réalité légitimes.
4.
Rappel =
TP
TP + FN
=
85
85
+ 15
=
85
100
= 85%.
Le ltre détecte 85 spams sur 100. Les 15 spams restants passent dans la boîte de réception.

Pr. ADDOU ML  Ch.3  Évaluation 37/43


✓ Solution  Exercice 1
5.
F1 = 2 ×
0.739
0.739
× 0.85
+ 0.85
≈ 0.791 = 79.1%.

6. On devrait privilégier la précision pour la classe Spam. En eet, un faux positif correspond à un email
légitime envoyé à tort dans le dossier spam. Pour des emails professionnels importants, ce type d'erreur peut
être coûteux. Il vaut donc mieux réduire les faux positifs, quitte à laisser passer quelques spams.

Pr. ADDOU ML  Ch.3  Évaluation 38/43


✎ TD  Exercice 2  Courbe ROC, AUC et choix du seuil (10 min)
Deux modèles sont testés sur le même jeu de données. Leurs AUC sont :

Modèle A = 0.88, Modèle B = 0.72.

1 Quel modèle discrimine le mieux les classes selon l'AUC ? Justier.

2 L'AUC de 0.72 du modèle B signie que, si l'on choisit au hasard un exemple positif et un exemple
négatif, le modèle B attribue un score plus élevé à l'exemple positif dans environ . . . % des cas.

3 Un modèle a une AUC égale à 0.50. Que peut-on conclure ?

4 Un modèle a une AUC égale à 0.45. Comment interpréter ce résultat ? Quelle vérication simple
peut-on faire ?

5 Pourquoi l'AUC peut-elle être plus informative que l'accuracy pour comparer deux modèles produisant
des scores ?

Pr. ADDOU ML  Ch.3  Évaluation 39/43


✓ Solution  Exercice 2
1. Selon l'AUC, le modèle A est meilleur : AUCA = 0.88 > AUCB = 0.72. Cela signie que le modèle A
discrimine mieux les exemples positifs des exemples négatifs sur l'ensemble des seuils possibles.
2. L'AUC de 0.72 signie que, dans environ 72% des paires formées d'un exemple positif et d'un exemple
négatif, le modèle attribue un score plus élevé à l'exemple positif qu'à l'exemple négatif.
3. Une AUC de 0.50 indique que le score du modèle n'est pas plus discriminant qu'un score aléatoire. Le
modèle ne parvient pas à ordonner correctement les positifs au-dessus des négatifs.
4. Une AUC de 0.45 < 0.50 suggère que le score est peut-être orienté dans le mauvais sens, ou que la classe
positive a été mal dénie. Une vérication simple consiste à inverser le score :

p̂ ′ = 1 − p̂.

Dans ce cas, l'AUC deviendrait approximativement :

1 − 0.45 = 0.55.

Cela reste faible, mais cela permet de vérier si le problème vient de l'orientation du score.
5. L'AUC peut être plus informative que l'accuracy pour comparer des modèles produisant des scores, car elle
ne dépend pas d'un seuil de décision xe. Elle résume la capacité du modèle à classer les positifs au-dessus des
négatifs. Cependant, elle ne remplace pas toujours les autres métriques : en cas de classes très déséquilibrées,
la courbe Precision-Recall et le F1-score peuvent aussi être importants.

Pr. ADDOU ML  Ch.3  Évaluation 40/43


Récapitulatif de la Partie 3
☞ À retenir

Concept Dénition / idée


Matrice de confusion TP, FP, TN, FN : les quatre types de résultats possibles

Accuracy (TP + TN)/Total : utile, mais insusante seule si les classes sont
déséquilibrées

Précision TP/(TP + FP) : abilité des prédictions positives

Rappel TP/(TP + FN) : capacité à détecter les exemples positifs

F1-score Moyenne harmonique de la précision et du rappel ; ne tient pas compte


de TN
Spécicité TN/(TN +FP) : capacité à identier correctement les exemples négatifs

Compromis P/R Seuil ↓ : rappel généralement ↑ ; seuil ↑ : prédictions positives plus


sélectives

Courbe ROC TPR en fonction du FPR lorsque le seuil varie

AUC Aire sous la courbe ROC ; mesure la capacité de discrimination des scores

Choix du seuil Se choisit sur le jeu de validation, selon l'objectif et le coût des erreurs
Pr. ADDOU ML  Ch.3  Évaluation 41/43
Récapitulatif complet du Chapitre 3

Partie 1 : Modèle Partie 2 : Entraînement Partie 3 : Évaluation


✓ Fonction sigmoïde σ(z) ✓ Fonction de coût ✓ Matrice de confusion
cross-entropy
✓ p̂ = σ(wT x + b) ✓ Précision, rappel, F1-score
1 T
✓ Frontière de décision linéaire
✓ Gradient n X (p̂ − y) ✓ Spécicité

✓ Odds et log-odds
✓ Descente de gradient
✓ Courbe ROC et AUC

✓ Interprétation des coecients


✓ Régularisation
✓ Choix du seuil de décision
wj ✓ Dérivée

σ (z) = σ(z)(1 − σ(z))

Chapitre suivant  Ch. 4

Arbres de décision et forêts aléatoires


Entropie, gain d'information, bagging, Random Forest.

Pr. ADDOU ML  Ch.3  Évaluation 42/43


Fin du Chapitre 3
Régression logistique
Vous savez maintenant :

modéliser une probabilité avec la sigmoïde • utiliser la cross-entropy

entraîner le modèle par descente de gradient • interpréter la frontière de décision

évaluer un classieur avec la matrice de confusion, la précision, le rappel, le F1-score, la ROC et l'AUC

Pr. ADDOU ML  Ch.3  Évaluation 43/43


Module : Machine Learning
Chapitre 4  Partie 1/3 : Arbres de décision  structure et prédiction

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.4  Arbres de décision 1/34


Plan du Chapitre 4  Arbres de décision et forêts aléatoires

▶ Partie 1 : Structure et prédiction


1 Pourquoi dépasser les modèles linéaires ?
2 Anatomie d'un arbre : racine, n÷uds, branches, feuilles
3 Comment un arbre déjà appris prédit
4 Frontières de décision : régions rectangulaires et structure en escalier
5 Arbres de classication vs arbres de régression
Partie 2 : Construction de l'arbre (critères d'impureté, gain d'information, algorithme glouton)
Partie 3 : Forêts aléatoires (bagging, Random Forest, erreur OOB, importance des variables)

Prérequis : Chapitres 1 à 3. On comparera souvent les arbres de décision à la régression logistique


étudiée au Chapitre 3. Dans cette première partie, on considère un arbre déjà construit : l'objectif est
de comprendre sa structure, sa lecture et son mécanisme de prédiction. La construction automatique
de l'arbre sera étudiée dans la Partie 2.

Pr. ADDOU ML  Ch.4  Arbres de décision 2/34


La limite des modèles linéaires

★ Rappel du Chapitre 3
La régression logistique linéaire, appliquée aux variables d'origine, apprend une frontière
de décision linéaire (droite en 2D, plan en 3D, hyperplan en dimension supérieure). Cette
simplicité est un avantage en termes d'interprétabilité et de coût de calcul, mais elle devient
limitante lorsque la séparation entre classes est fortement non linéaire.

Régression logistique Arbre de décision

x2
x2

x1
Des frontières en escalier. L'arbre peut séparer cette
x1
Une seule frontière linéaire. Elle ne peut pas séparer
correctement cette structure non linéaire. structure par des régions rectangulaires.
Pr. ADDOU ML  Ch.4  Arbres de décision 3/34
La limite des modèles linéaires

☞ À retenir
Un arbre de décision standard partitionne l'espace des variables en régions rectangulaires
en 2D (et plus généralement en hyperrectangles). Il peut ainsi représenter des frontières de
décision non linéaires, contrairement à une régression logistique linéaire appliquée directement
aux variables d'origine.

Pr. ADDOU ML  Ch.4  Arbres de décision 4/34


Une idée intuitive : une série de questions
★ Intuition : un raisonnement par questions successives
Dans un scénario simplié, une décision peut être obtenue par une série de questions. Un
arbre de décision formalise cette idée : chaque question correspond à un test sur une variable.

Visites site >3 ?

Oui Non

Accepte
Achats préc. >1 ?

Oui Non

Accepte Refuse

Pr. ADDOU ML  Ch.4  Arbres de décision 5/34


Une idée intuitive : une série de questions
★ Intuition : un raisonnement par questions successives
Dans un scénario simplié, une décision peut être obtenue par une série de questions. Un
arbre de décision formalise cette idée : chaque question correspond à un test sur une variable.

Visites site >3 ?

Oui Non

Accepte
Achats préc. >1 ?

Oui Non

Accepte Refuse

☞ À retenir
Un arbre de décision applique une cascade de tests simples : la variable dépasse-t-elle un seuil
?. Chaque exemple suit un seul chemin, de la racine jusqu'à une feuille, qui fournit la prédiction
nale. L'arbre est un modèle interprétable : la prédiction peut être expliquée par la suite des tests
rencontrés sur ce chemin.
Pr. ADDOU ML  Ch.4  Arbres de décision 5/34
Avantages et limites des arbres de décision
Avantages Limites

Interprétables (modèles boîte blanche) Risque d'overtting lorsque l'arbre est


trop profond

Peu sensibles à l'échelle des variables Instables : petites variations des données
peuvent changer l'arbre

Gèrent des variables numériques et caté- Frontières en escalier, parallèles aux axes
gorielles

Capturent des interactions et des non- Un arbre unique présente souvent une
linéarités forte variance

Prédiction rapide Performance parfois inférieure aux méth-


odes ensemblistes

Les forêts aléatoires, étudiées en Partie 3, combinent plusieurs arbres an de réduire la variance,
l'instabilité et le risque d'overtting d'un arbre unique. Elles améliorent souvent la performance, au
prix d'une interprétabilité globale plus faible.

Pr. ADDOU ML  Ch.4  Arbres de décision 6/34


Le vocabulaire d'un arbre de décision

Racine
← n÷ud racine
Terminologie
Racine : n÷ud initial de l'arbre, où
x1 > 5 ?

Oui Non
commence la prédiction
N÷ud interne : n÷ud contenant un
test sur une variable
Classe A
n÷ud interne → x2 > 3 ?

Oui Non
Branche : issue possible d'un test, par
Classe A Classe B exemple Oui ou Non
feuilles Feuille : n÷ud terminal fournissant la
prédiction

Pr. ADDOU ML  Ch.4  Arbres de décision 7/34


Le vocabulaire d'un arbre de décision

Racine
← n÷ud racine
Terminologie
Racine : n÷ud initial de l'arbre, où
x1 > 5 ?

Oui Non
commence la prédiction
N÷ud interne : n÷ud contenant un
test sur une variable
Classe A
n÷ud interne → x2 > 3 ?

Oui Non
Branche : issue possible d'un test, par
Classe A Classe B exemple Oui ou Non
feuilles Feuille : n÷ud terminal fournissant la
prédiction

Profondeur : nombre d'arêtes du plus long chemin allant de la racine à une feuille. Taille : nombre
total de n÷uds de l'arbre. Ces deux quantités caractérisent la complexité structurelle de l'arbre :
plus elles augmentent, plus le risque d' overtting peut devenir important.

Pr. ADDOU ML  Ch.4  Arbres de décision 7/34


La forme d'un test

Test à un n÷ud
Pour une variable numérique xj , un test standard a la forme : xj ≤ s ? avec s ∈ R.
Le seuil s dénit une coupure entre deux sous-ensembles d'observations.
Pour une variable catégorielle, un test peut prendre la forme : xj ∈ A ?
où A est un sous-ensemble des modalités possibles de la variable.

Pr. ADDOU ML  Ch.4  Arbres de décision 8/34


La forme d'un test

Test à un n÷ud
Pour une variable numérique xj , un test standard a la forme : xj ≤ s ? avec s ∈ R.
Le seuil s dénit une coupure entre deux sous-ensembles d'observations.
Pour une variable catégorielle, un test peut prendre la forme : xj ∈ A ?
où A est un sous-ensemble des modalités possibles de la variable.

Convention : on dirige souvent l'observation vers la gauche si le test est vrai, et vers la
droite sinon. Cette convention peut varier selon les bibliothèques.

Pr. ADDOU ML  Ch.4  Arbres de décision 8/34


La forme d'un test

Test à un n÷ud
Pour une variable numérique xj , un test standard a la forme : xj ≤ s ? avec s ∈ R.
Le seuil s dénit une coupure entre deux sous-ensembles d'observations.
Pour une variable catégorielle, un test peut prendre la forme : xj ∈ A ?
où A est un sous-ensemble des modalités possibles de la variable.

Convention : on dirige souvent l'observation vers la gauche si le test est vrai, et vers la
droite sinon. Cette convention peut varier selon les bibliothèques.
Exemple : Tests valides
glucose ≤ 126 ? (variable numérique)
age ≤ 50 ? (variable numérique)
couleur ∈ {rouge, bleu} ? (variable catégorielle)

Pr. ADDOU ML  Ch.4  Arbres de décision 8/34


La forme d'un test

☞ À retenir
Dans un arbre de décision standard, chaque test porte sur une seule variable à la fois. Les
coupures sont donc parallèles aux axes, ce qui produit des frontières de décision en escalier.
Les tests obliques, comme x1 + x2 > 3, appartiennent à des variantes plus avancées appelées
arbres obliques.

Pr. ADDOU ML  Ch.4  Arbres de décision 9/34


Un arbre est-il toujours binaire ?

★ Remarque importante
Un arbre de décision n'est pas nécessairement binaire. Cependant, dans les arbres standards
de type CART, très utilisés en pratique, chaque n÷ud interne eectue un test binaire et
possède donc deux branches.

Pr. ADDOU ML  Ch.4  Arbres de décision 10/34


Un arbre est-il toujours binaire ?

★ Remarque importante
Un arbre de décision n'est pas nécessairement binaire. Cependant, dans les arbres standards
de type CART, très utilisés en pratique, chaque n÷ud interne eectue un test binaire et
possède donc deux branches.

Arbre binaire Arbre non binaire


xj ≤ s ? Couleur ?

Oui Non Rouge Vert


Bleu

Classe A Classe B Rouge Vert


Classe A Bleu Classe C

Chaque test donne deux issues : vrai ou faux. C'est le


Classe B

cas typique des arbres CART et des forêts aléatoires. Avec certaines variables catégorielles, un n÷ud peut
avoir plus de deux branches, par exemple une branche
par modalité.
Pr. ADDOU ML  Ch.4  Arbres de décision 10/34
Un arbre est-il toujours binaire ?

☞ À retenir
Dans ce chapitre, sauf mention contraire, on considère principalement des arbres binaires,
car les tests utilisés sont de la forme xj ≤ s ? ou xj ∈ A ?. Mais, en général, certains
algorithmes comme ID3 ou certaines variantes de C4.5 peuvent produire des arbres avec
plusieurs branches par n÷ud.

Pr. ADDOU ML  Ch.4  Arbres de décision 11/34


Une même variable peut apparaître plusieurs fois
★ Idée importante
Dans un arbre de décision standard, chaque n÷ud teste une seule variable à la fois. Cepen-
dant, une même variable peut réapparaître dans plusieurs n÷uds de l'arbre :
dansdes branches diérentes,
ou même sur un même chemin, avec des seuils diérents.

x1 ≤ 5 ? Ce qu'on observe :
Oui Non
La variable x2 apparaît dans deux
branches diérentes :
x2 ≤ 3 ? x2 ≤ 7 ?

Oui Oui
x2 ≤ 3 et x2 ≤ 7.
Non Non

Classe A
x1 ≤ 2 ?
Classe B Classe C
La variable x1 apparaît aussi deux fois sur
Oui Non
un même chemin :
Classe D Classe E x1 ≤ 5 −→ x1 ≤ 2.

Pr. ADDOU ML  Ch.4  Arbres de décision 12/34


Prédire avec un arbre : descendre jusqu'à une feuille
Algorithme de prédiction
Pour classier un nouvel exemple x :
1 Partir de la racine
2 Évaluer le test du n÷ud courant sur x

3 Suivre la branche correspondante selon le résultat du test

4 Répéter jusqu'à atteindre une feuille


5 Retourner la classe associée à cette feuille

☞ À retenir
La prédiction suit un seul chemin de la racine jusqu'à une feuille. Si chaque test a un coût constant,
la complexité de prédiction est
O(h),
où h est la profondeur de l'arbre. Pour un arbre bien équilibré, h peut être de l'ordre de log L, où
L est le nombre de feuilles. En revanche, un arbre très déséquilibré peut conduire à une profondeur
beaucoup plus grande.
Pr. ADDOU ML  Ch.4  Arbres de décision 13/34
Exemple de prédiction détaillé

Visites site ≤3 ?
Exemple : Client A : Visites = 5,
Oui Non
Achats préc. = 3, Âge = 22
1 Racine : Visites site ≤ 3 ? 5 ≤ 3 ? Non
Âge ≤ 30 ? Achats préc. ≤1 ? → droite
Oui Non Oui Non 2 N÷ud : Achats préc. ≤ 1 ? 3 ≤ 1 ? Non
→ droite
Non Oui Non Oui

3 Feuille atteinte : Oui


Le chemin suivi est surligné en rouge. Le
modèle prédit que le client accepte l'ore, car
ce chemin conduit à la feuille Oui.

Pr. ADDOU ML  Ch.4  Arbres de décision 14/34


Exemple de prédiction détaillé

Visites site ≤3 ?
Exemple : Client A : Visites = 5,
Oui Non
Achats préc. = 3, Âge = 22
1 Racine : Visites site ≤ 3 ? 5 ≤ 3 ? Non
Âge ≤ 30 ? Achats préc. ≤1 ? → droite
Oui Non Oui Non 2 N÷ud : Achats préc. ≤ 1 ? 3 ≤ 1 ? Non
→ droite
Non Oui Non Oui

3 Feuille atteinte : Oui


Le chemin suivi est surligné en rouge. Le
modèle prédit que le client accepte l'ore, car
ce chemin conduit à la feuille Oui.
Remarque : l'âge du client n'a pas été consulté dans ce chemin. Selon les réponses aux tests
précédents, certaines variables peuvent ne pas intervenir dans une prédiction donnée.

Pr. ADDOU ML  Ch.4  Arbres de décision 14/34


Un autre client sur le même arbre

Visites site ≤3 ?
Exemple : Client B : Visites = 2,
Oui Non
Achats préc. = 5, Âge = 24
1 Racine : Visites site ≤ 3 ? 2 ≤ 3 ? Oui
Âge ≤ 30 ? Achats préc. ≤1 ? → gauche
Oui Non Oui Non 2 N÷ud : Âge ≤ 30 ? 24 ≤ 30 ? Oui →
Non Oui Non Oui
gauche
3 Feuille atteinte : Non
Dans ce chemin, le nombre d'achats précédents
n'est pas consulté. Le modèle prédit que le
client n'accepte pas l'ore, car la suite des
tests conduit à la feuilleNon.

Pr. ADDOU ML  Ch.4  Arbres de décision 15/34


De l'arbre aux régions rectangulaires
★ Chaque feuille correspond à une région de l'espace
Dans un arbre de décision standard, chaque test découpe l'espace selon une variable. En dimension 2,
cela produit des régions rectangulaires. En dimension plus grande, on obtient des hyperrectangles.
Tous les points d'une même région atteignent la même feuille et reçoivent donc la même prédiction.

L'arbre
x1 ≤ 4 ?

Oui Non

B
x2 ≤ 3 ?

Oui Non

A B

Pr. ADDOU ML  Ch.4  Arbres de décision 16/34


De l'arbre aux régions rectangulaires
★ Chaque feuille correspond à une région de l'espace
Dans un arbre de décision standard, chaque test découpe l'espace selon une variable. En dimension 2,
cela produit des régions rectangulaires. En dimension plus grande, on obtient des hyperrectangles.
Tous les points d'une même région atteignent la même feuille et reçoivent donc la même prédiction.

L'arbre Les régions correspondantes


x1 ≤ 4 ?

Oui Non B

x2
B B
x2 ≤ 3 ?

Oui Non A

A B

4
x1

Pr. ADDOU ML  Ch.4  Arbres de décision 16/34


De l'arbre aux régions rectangulaires
★ Chaque feuille correspond à une région de l'espace
Dans un arbre de décision standard, chaque test découpe l'espace selon une variable. En dimension 2,
cela produit des régions rectangulaires. En dimension plus grande, on obtient des hyperrectangles.
Tous les points d'une même région atteignent la même feuille et reçoivent donc la même prédiction.

L'arbre Les régions correspondantes


x1 ≤ 4 ?

Oui Non B

x2
B B
x2 ≤ 3 ?

Oui Non A

A B

4
x1

La région de classe A est : {(x1 , x2 ) : x1 ≤ 4 et x2 ≤ 3}. Les deux régions de classe B sont
distinctes dans l'espace, mais elles atteignent des feuilles portant la même étiquette. Cette partition
rectangulaire est la traduction géométrique de l'arbre.
Pr. ADDOU ML  Ch.4  Arbres de décision 16/34
Comparaison des frontières : logistique vs arbre

Régression logistique Arbre de décision


ŷ = 1
ŷ = 1

x2
x2

ŷ = 0 ŷ = 0

x1 x1

Frontière linéaire : une droite en dimension 2. Frontière en escalier : segments parallèles aux axes.
☞ À retenir
Diérence fondamentale : une régression logistique linéaire, appliquée aux variables d'origine, pro-
duit une frontière de décision linéaire. Un arbre de décision standard produit une frontière par
morceaux, composée de segments parallèles aux axes. Avec une profondeur susante, il peut
représenter des frontières complexes par une partition en régions rectangulaires, mais cela augmente
le risque d'overtting.
Pr. ADDOU ML  Ch.4  Arbres de décision 17/34
Arbre de régression : principe
★ Même structure, sortie numérique
Un arbre de régression utilise la même structure qu'un arbre de classication : des n÷uds
internes, des tests, des branches et des feuilles. La diérence est que la variable cible y est
numérique.
Classication Régression
x1 ≤ 5 ? Surface ≤ 80 ?

Oui Non Oui Non

Classe A Classe B ŷ = 210 ŷ = 340

La feuille retourne une classe, par exemple A ou B. La feuille retourne une valeur numérique, par
exemple un prix.
☞ À retenir
Dans un arbre de régression, la prédiction d'une feuille est souvent la moyenne des valeurs cibles
des exemples d'entraînement arrivant dans cette feuille.

Pr. ADDOU ML  Ch.4  Arbres de décision 18/34


Exemple : prédire une valeur numérique
Surface ≤ 80 ? Exemple : Maison ctive
Oui Non
On veut prédire le prix d'une maison en kMAD.

Distance centre ≤5 ? Surface ≤ 120 ?

Oui Non Oui Non


Surface = 70, Distance centre = 8.
ŷ = 230 ŷ = 180 ŷ = 320 ŷ = 450

1 Surface ≤ 80 ? 70 ≤ 80 ? Oui → gauche


2 Distance centre ≤ 5 ? 8 ≤ 5 ? Non → droite
3 Feuille atteinte :
ŷ = 180

Le modèle prédit donc un prix de 180 kMAD.

Pr. ADDOU ML  Ch.4  Arbres de décision 19/34


Exemple : prédire une valeur numérique
Surface ≤ 80 ? Exemple : Maison ctive
Oui Non
On veut prédire le prix d'une maison en kMAD.

Distance centre ≤5 ? Surface ≤ 120 ?

Oui Non Oui Non


Surface = 70, Distance centre = 8.
ŷ = 230 ŷ = 180 ŷ = 320 ŷ = 450

1 Surface ≤ 80 ? 70 ≤ 80 ? Oui → gauche


2 Distance centre ≤ 5 ? 8 ≤ 5 ? Non → droite
3 Feuille atteinte :
ŷ = 180

Le modèle prédit donc un prix de 180 kMAD.


Comme en classication, la prédiction suit un seul chemin. La diérence est que la feuille ne contient
pas une classe, mais une valeur numérique.
Pr. ADDOU ML  Ch.4  Arbres de décision 19/34
Pourquoi la feuille prédit-elle une moyenne ?
★ Idée statistique
Dans un arbre de régression, une feuille regroupe des exemples d'entraînement ayant des prols
similaires selon les tests de l'arbre. La prédiction naturelle est alors une valeur représentative
des y observés dans cette feuille.

Exemple : Feuille d'un arbre de régression


Supposons qu'une feuille contienne les prix suivants, en kMAD :

200, 210, 190, 205, 195.

La prédiction de cette feuille est la moyenne :

200 + 210 + 190 + 205 + 195


ŷ = = 200.
5

Ainsi, tout nouvel exemple qui arrive dans cette feuille recevra la prédiction : ŷ = 200 kMAD.

Pr. ADDOU ML  Ch.4  Arbres de décision 20/34


Probabilités dans une feuille (classication)

★ Un arbre peut aussi estimer des probabilités


Dans un arbre de classication, une feuille ne fournit pas seulement une classe : elle peut
aussi donner une probabilité empirique estimée. Pour une classe donnée, cette probabilité
correspond à la proportion d'exemples de cette classe parmi les exemples d'entraînement
arrivant dans la feuille.

Exemple : Estimation de probabilité


Une feuille contient 8 exemples : 6 de classe 1 et 2 de classe 0.
Prédiction par classe majoritaire : classe 1
Probabilité empirique estimée : p̂(y = 1) = 86 = 0.75
Interprétation : parmi les exemples d'entraînement de cette feuille, 75% appartiennent à la classe 1

Pr. ADDOU ML  Ch.4  Arbres de décision 21/34


Probabilités dans une feuille (classication)

★ Une feuille donne une classe et des probabilités


Dans un arbre de classication, une feuille fournit généralement :
une classe prédite, obtenue par vote majoritaire ;
une probabilité empirique pour chaque classe, obtenue à partir des proportions des exemples
d'entraînement arrivant dans cette feuille.

Exemple : Estimation de probabilité


Une feuille contient 8 exemples : 6 de classe 1 et 2 de classe 0.
Probabilité empirique de la classe 1 : p̂(y = 1) = 68 = 0.75.
Probabilité empirique de la classe 0 : p̂(y = 0) = 28 = 0.25.
Classe prédite par la feuille : ŷ = 1, car la classe 1 est majoritaire.

Pr. ADDOU ML  Ch.4  Arbres de décision 22/34


✎ TD  Exercice 1  Prédiction avec un arbre plus profond (15 min)
On donne l'arbre suivant, utilisé pour prédire si un client accepte une ore ( Oui / Non) :
Revenu ≤ 3000 ?

Oui Non

Âge ≤ 30 ? Ancienneté ≤2 ?
Oui Non Oui Non

Visites ≤3 ? Achats ≤1 ? Visites ≤5 ? Achats ≤0 ?

Oui Non Oui Non Oui Non Oui Non

Non Oui Non Oui Non Oui Non Oui

Prédire la décision de l'arbre pour les clients suivants :


1 Client A : Revenu = 2500, Âge = 24, Ancienneté = 4, Visites = 2, Achats préc. = 0

2 Client B : Revenu = 2500, Âge = 24, Ancienneté = 1, Visites = 6, Achats préc. = 0

3 Client C : Revenu = 2800, Âge = 45, Ancienneté = 3, Visites = 8, Achats préc. = 0

4 Client D : Revenu = 4200, Âge = 28, Ancienneté = 1, Visites = 7, Achats préc. = 2

5 Donner la profondeur de l'arbre et le nombre de feuilles.

6 Donner les variables non consultées pour le client A.

Pr. ADDOU ML  Ch.4  Arbres de décision 23/34


✓ Solution  Exercice 1
Client A :
Revenu ≤ 3000 ? 2500 ≤ 3000 : Oui → gauche
Âge ≤ 30 ? 24 ≤ 30 : Oui → gauche
Visites ≤ 3 ? 2 ≤ 3 : Oui → gauche
Feuille atteinte : Non
Client B :
Revenu ≤ 3000 ? Oui
Âge ≤ 30 ? Oui
Visites ≤ 3 ? 6 ≤ 3 : Non
Feuille atteinte : Oui
Client C :
Revenu ≤ 3000 ? 2800 ≤ 3000 : Oui
Âge ≤ 30 ? 45 ≤ 30 : Non
Achats préc. ≤ 1 ? 0 ≤ 1 : Oui
Feuille atteinte : Non
Pr. ADDOU ML  Ch.4  Arbres de décision 24/34
✓ Solution  Exercice 1
Client D :
Revenu ≤ 3000 ? 4200 ≤ 3000 : Non
Ancienneté ≤ 2 ? 1 ≤ 2 : Oui
Visites ≤ 5 ? 7 ≤ 5 : Non
Feuille atteinte : Oui
Profondeur : 3 arêtes. Nombre de feuilles : 8.
Variables non consultées pour A : ancienneté et achats précédents.

Pr. ADDOU ML  Ch.4  Arbres de décision 25/34


✎ TD  Exercice 2  Tracer des régions plus complexes (15 min)
On considère un arbre de décision à deux variables x1 , x2 ∈ [0, 10] :

x1 ≤ 4 ?

Oui Non

x2 ≤ 6 ? x2 ≤ 3 ?

Oui Non Oui Non

Classe 0 Classe 1 Classe 1


x1 ≤ 8 ?

Oui Non

Classe 0 Classe 1

1 Décrire toutes les régions de l'espace et leur classe.


2 Tracer ces régions dans le plan (x1 , x2 ).
3 Prédire la classe des points : (2, 5), (3, 8), (6, 2), (7, 7), (9, 5).
4 Quelle est la profondeur de cet arbre ?
Pr. ADDOU ML  Ch.4  Arbres de décision 26/34
✓ Solution  Exercice 2
1. Les régions :
R1 : x1 ≤ 4 et x2 ≤ 6 → Classe 0.
R2 : x1 ≤ 4 et x2 > 6 → Classe 1.
R3 : x1 > 4 et x2 ≤ 3 → Classe 1.
R4 : x1 > 4, x2 > 3 et x1 ≤ 8 → Classe 0.
R5 : x1 > 8 et x2 > 3 → Classe 1.
2. Tracé des régions :

C1

6 C0 C1

x2

3 C0

C1

4 8
x1

Pr. ADDOU ML  Ch.4  Arbres de décision 27/34


✓ Solution  Exercice 2  suite
3. Prédictions des points :
2 5 : x1 = 2 ≤ 4 → gauche ; x2 = 5 ≤ 6 → Classe 0.
( , )
(3, 8) : x1 = 3 ≤ 4 → gauche ; x2 = 8 > 6 → Classe 1.
(6, 2) : x1 = 6 > 4 → droite ; x2 = 2 ≤ 3 → Classe 1.
(7, 7) : x1 = 7 > 4 → droite ; x2 = 7 > 3 → droite ; x1 = 7 ≤ 8 → Classe 0.
(9, 5) : x1 = 9 > 4 → droite ; x2 = 5 > 3 → droite ; x1 = 9 > 8 → Classe 1.

4. Complexité de l'arbre :
Profondeur = 3, car le plus long chemin contient trois tests.

Pr. ADDOU ML  Ch.4  Arbres de décision 28/34


✎ TD  Exercice 3  Probabilités dans les feuilles (15 min)
On considère l'arbre suivant pour prédire si un client accepte une ore. Dans chaque feuille, on
indique le nombre d'exemples d'entraînement : (Oui, Non).
Revenu ≤ 3000 ?

Oui Non

Âge ≤ 30 ? Ancienneté ≤2 ?

Oui Non Oui Non

(2, 8) (6, 4) (4, 6) (9, 1)

1 Calculer, pour chaque feuille, la probabilité empirique : p̂(Oui) = Oui OuiNon . #


#
+#

2 Donner la classe prédite par chaque feuille avec le seuil standard 0.5.
3 Prédire la classe et la probabilité estimée pour : A : (Revenu = 2500, ge = 25, Anciennet = 5)
B : (Revenu = 4200, ge = 40, Anciennet = 4) C : (Revenu = 2500, ge = 40, Anciennet = 1)
4 Si l'on exige un seuil plus strict 0.7 pour prédire Oui, quelles prédictions obtient-on pour A, B et C ?
Pr. ADDOU ML  Ch.4  Arbres de décision 29/34
✓ Solution  Exercice 3  Probabilités dans les feuilles
1. Probabilité empirique dans chaque feuille :

p̂( Oui) = #Oui#+Oui#Non .

Feuille Eectifs (Oui, Non) Oui)


p̂( Classe avec seuil 0.5
F1 28
( , ) 10 = 0.20
2
Non
F2 64
( , ) 10 = 0.60
6
Oui
F3 (4, 6) 10 = 0.40
4
Non
F4 (9, 1) 10 = 0.90
9
Oui
☞ À retenir
La classe prédite correspond à la classe majoritaire dans la feuille. La probabilité estimée corre-
spond à la proportion d'exemples de classe Oui dans cette feuille.

Pr. ADDOU ML  Ch.4  Arbres de décision 30/34


✓ Solution  Exercice 3  Prédiction de nouveaux clients
Client A : Revenu = 2500, ge = 25, Anciennet = 5.
Revenu ≤ 3000 ? 2500 ≤ 3000 : Oui → gauche.
Âge ≤ 30 ? 25 ≤ 30 : Oui → gauche.
Feuille atteinte : F1 = (2, 8). 2
p̂(Oui | A) =
10 = 0.20 ⇒ Non avec t = 0.5.
Client B : Revenu = 4200, ge = 40, Anciennet = 4.
Revenu ≤ 3000 ? 4200 ≤ 3000 : Non → droite.
Ancienneté ≤ 2 ? 4 ≤ 2 : Non → droite.
Feuille atteinte : F4 = (9, 1). 9
p̂(Oui | B) =
10 = 0.90 ⇒ Oui avec t = 0.5.
Client C : Revenu = 2500, ge = 40, Anciennet = 1.
Revenu ≤ 3000 ? 2500 ≤ 3000 : Oui → gauche.
Âge ≤ 30 ? 40 ≤ 30 : Non → droite.
Feuille atteinte : F2 = (6, 4). 6
p̂(Oui | C ) =
10 = 0.60 ⇒ Oui avec t = 0.5.
Pr. ADDOU ML  Ch.4  Arbres de décision 31/34
✓ Solution  Exercice 3  Eet du seuil de décision
On compare maintenant deux seuils de décision :

Prédire Oui si p̂(Oui) ≥ t.

Client p̂(Oui) Seuil t = 0.5 Seuil t = 0.7


A 0.20 Non Non

B 0.90 Oui Oui

C 0.60 Oui Non

☞ À retenir
Changer le seuil peut modier la classe prédite. Le client C illustre ce cas :

0.60 ≥ 0.5 ⇒ Oui,

mais 0.60 < 0.7 ⇒ Non.

Avec un seuil plus élevé, le modèle devient plus exigeant pour prédire Oui.
Pr. ADDOU ML  Ch.4  Arbres de décision 32/34
Récapitulatif de la Partie 1

☞ À retenir

Concept Idée clé


Motivation Dépasser les frontières linéaires par des frontières en escalier

Principe Cascade de tests simples, interprétable comme un modèle boîte


blanche

Vocabulaire Racine, n÷ud interne, branche, feuille, profondeur

Test xj ≤ s ? dans un arbre standard : une seule variable à la fois

Prédiction Suivre un chemin racine → feuille, avec une complexité O(h)


Frontière Partition en régions rectangulaires parallèles aux axes

Classication Feuille = classe majoritaire des exemples d'entraînement

Régression Feuille = moyenne des valeurs cibles y


Probabilité Proportion empirique des classes dans la feuille

Pr. ADDOU ML  Ch.4  Arbres de décision 33/34


Fin de la Partie 1
Suite : Partie 2  Construction de l'arbre
Entropie de Shannon et indice de Gini
Gain d'information et réduction d'impureté
Algorithmes gloutons de construction : ID3 et CART

Pause 10 minutes

Pr. ADDOU ML  Ch.4  Arbres de décision 34/34


Module : Machine Learning
Chapitre 4  Partie 2/3 : Construction des arbres de décision

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.4  Construction 1/95


Ce que vous allez apprendre dans cette partie

1 Le problème : comment choisir automatiquement les tests ?


2 Mesurer le désordre d'un groupe : entropie de Shannon et indice de Gini

3 Le gain d'information : comment évaluer un split ?

4 Le principe de construction gloutonne dans CART

5 Construire un arbre complet à la main sur un petit jeu de données


6 L'overtting et les moyens de le limiter : critères d'arrêt et élagage

Transition depuis la Partie 1 : dans la Partie 1, nous avons appris à lire un arbre déjà construit.
Dans cette partie, nous allons comprendre comment construire automatiquement un arbre à partir
des données.
L'idée centrale est simple : dans CART, à chaque n÷ud, on cherche le test binaire qui produit le
meilleur split, c'est-à-dire le meilleur découpage des exemples en deux groupes enfants. Un bon split
rend ces groupes les plus purs possible.

Pr. ADDOU ML  Ch.4  Construction 2/95


Comment choisir les tests automatiquement ?

★ La question centrale de la Partie 2


Un arbre peut prendre un très grand nombre de formes possibles. Dans CART, à chaque
n÷ud, il faut choisir le meilleur test binaire, c'est-à-dire le meilleur couple :

variable + split .
Pour une variable numérique, le split est souvent de la forme :
xj ≤ s ?
où s est un seuil à choisir.
Pour une variable catégorielle, le split peut être de la forme :
X ∈A ?
où A est une modalité ou un groupe de modalités.
Idée directrice : un bon test produit un bon split. Après le test, on veut que les deux groupes
enfants soient les plus purs possible, c'est-à-dire composés principalement d'une seule classe.

Pr. ADDOU ML  Ch.4  Construction 3/95


L'entropie de Shannon

Entropie
Pour un groupe contenant des exemples répartis en K classes, on note pk la proportion
d'exemples appartenant à la classe k :
K
nk X
pk = et pk = 1.
n
k=1
L'entropie de Shannon est dénie par :
K
X
H=− pk log2 (pk ).
k=1

Par convention :
0 log2 (0) = 0.

☞ À retenir
L'entropie mesure le désordre ou l'incertitude dans un groupe. Elle vaut 0 lorsque le groupe est
pur.

Pr. ADDOU ML  Ch.4  Construction 4/95


L'entropie de Shannon : cas binaire

Cas binaire : si p est la proportion de la classe 1, alors 1 −p est la proportion de la classe 0 :

H = −p log2 (p) − (1 − p) log2 (1 − p).

Exemple : Calculs
Groupe pur (10 Oui, 0 Non) : p = 1
H = −1 log2 (1) − 0 = 0.

Groupe équilibré (5 Oui, 5 Non) : p = 0.5


H = −0.5 log2 (0.5) − 0.5 log2 (0.5) = 1.

Groupe (8 Oui, 2 Non) : p = 0.8


H = −0.8 log2 (0.8) − 0.2 log2 (0.2) ≈ 0.722.

Pr. ADDOU ML  Ch.4  Construction 5/95


Visualisation de l'entropie binaire

1 Propriétés de H :
Maximum : H = 1
H = 0 si le groupe est pur : p = 0 ou p = 1.
H est en binaire si le groupe est
H(p)

maximale
0.5
équilibré :
p = 0.5.
Pur Pur H est symétrique : H(p) = H(1 − p).
0
0 0.5 1

p (proportion de la classe 1)
Pour K classes, l'entropie maximale est :
Hmax = log2 (K ),

atteinte lorsque les classes sont équilibrées.


L'entropie mesure l'incertitude sur la classe. En théorie de l'information, elle s'interprète comme le
nombre moyen minimal de bits nécessaire pour coder la classe d'un exemple tiré au hasard.

Pr. ADDOU ML  Ch.4  Construction 6/95


L'indice de Gini

Indice de Gini
Pour un groupe contenant des exemples répartis en K classes, on note pk la proportion
d'exemples appartenant à la classe k. L' indice de Gini est déni par :

K
pk2 .
X
G =1−
k=1

☞ À retenir
L'indice de Gini mesure aussi l'impureté d'un groupe. Il vaut 0 lorsque le groupe est pur. Pour K
classes, sa valeur maximale est :
1
Gmax = 1 − ,
K
atteinte lorsque les classes sont équilibrées.

Pr. ADDOU ML  Ch.4  Construction 7/95


L'indice de Gini : cas binaire

Cas binaire : si p est la proportion de la classe 1, alors :

G = 1 − p 2 − (1 − p)2 = 2p(1 − p).

Exemple : Calculs
Groupe pur (p = 1) :
G = 1 − 12 − 02 = 0.

Groupe équilibré (p = 0.5) :


G = 1 − 0.52 − 0.52 = 0.5.

Groupe (8 Oui, 2 Non, p = 0.8) :


G = 1 − 0.82 − 0.22 = 0.32.

☞ À retenir
Le Gini est plus simple à calculer que l'entropie, car il ne contient pas de logarithme.

Pr. ADDOU ML  Ch.4  Construction 8/95


Comparaison entropie vs Gini

1 Les deux mesures ont la même logique : elles valent


0 pour un groupe pur et sont maximales lorsque les
classes sont équilibrées, c'est-à-dire lorsque p = 0.5.
Impureté

0.5
L'entropie atteint 1 en binaire, tandis que le Gini at-
teint 0.5. En pratique, ces deux critères conduisent
Entropie
Gini souvent à des arbres proches, mais ils ne garantissent
0 pas toujours exactement les mêmes splits.
0 0.5 1

p (proportion de la classe 1)

☞ À retenir
Avec l'entropie, on parle souvent de gain d'information.
Avec le Gini, on parle plutôt de réduction de Gini.
Dans les deux cas, CART choisit le test qui réduit le plus l'impureté.

Pr. ADDOU ML  Ch.4  Construction 9/95


Le gain d'information : mesurer l'amélioration

★ Idée
Un split est utile s'il transforme un n÷ud parent mélangé en deux groupes enfants plus purs.
Dans CART, chaque test produit un split binaire :

groupe gauche et groupe droit.

Gain d'information d'un split binaire


Soit un n÷ud parent contenant n exemples. Un test binaire le divise en deux groupes :

Eg et Ed ,

de tailles respectives ng et nd .
Le gain d'information est :

Gain = H(parent) −
hn nd i
g
H(Eg ) + H(Ed ) .
n n
Le terme entre crochets est l' entropie moyenne pondérée après le split.
Pr. ADDOU ML  Ch.4  Construction 10/95
Le gain d'information : mesurer l'amélioration

☞ À retenir
Un bon split est celui qui diminue fortement l'entropie :
gain élevé ⇐⇒ groupes enfants plus purs.

Pr. ADDOU ML  Ch.4  Construction 11/95


Que choisit CART à chaque n÷ud ?

☞ À retenir
Dans CART, on ne choisit pas seulement une variable. On choisit le test binaire qui maximise le
gain d'information.
Autrement dit, CART choisit le meilleur couple :

variable + split .
Pour une variable numérique, un test est souvent de la forme :
xj ≤ s ?
où s est un seuil.
Pour une variable catégorielle, un test est souvent de la forme :
X ∈A ?
où A est une modalité ou un groupe de modalités.
Le test retenu est celui qui donne la plus forte réduction d'impureté.
Pr. ADDOU ML  Ch.4  Construction 12/95
Cas d'une variable numérique

★ Chercher le meilleur seuil


Pour une variable numérique X, CART teste plusieurs seuils candidats :

X ≤ s1 ?, X ≤ s2 ?, ...

Chaque seuil produit un split binaire :

X ≤s et X > s.

Pour chaque seuil s, on calcule :

Gain(X , s) = H(parent) −
hn n>s i
≤s
H(E≤s ) + H(E>s ) .
n n
On garde le seuil qui donne le gain maximal :

Gain(X ) = max
s
Gain(X , s)
Pr. ADDOU ML  Ch.4  Construction 13/95
Cas d'une variable numérique

☞ À retenir
Pour une variable numérique, CART cherche le meilleur seuil.

Pr. ADDOU ML  Ch.4  Construction 14/95


Cas d'une variable catégorielle

★ Chercher le meilleur split binaire


Pour une variable catégorielle, CART ne crée pas une branche par modalité. Il cherche un
regroupement binaire des modalités.

Par exemple, si :
X ∈ {A, B, C },
CART peut tester :

X ∈ {A} ? X ∈ {B} ? X ∈ {C } ?
Ces tests correspondent aux splits binaires :

{A}/{B, C }, {B}/{A, C }, {C }/{A, B}.


Pour chaque split binaire, on calcule un gain. On garde celui qui donne le gain maximal :

Gain(X ) = splits binaires


max
de X
Gain(X , split)
Pr. ADDOU ML  Ch.4  Construction 15/95
Cas d'une variable catégorielle

☞ À retenir
Pour une variable catégorielle, CART cherche le meilleur regroupement binaire des modal-
ités.

Pr. ADDOU ML  Ch.4  Construction 16/95


Remarque : variable catégorielle à deux modalités

★ Cas simple
Si une variable catégorielle possède seulement deux modalités :

X ∈ {A, B},
alors les deux tests : X =A ? et X =B ?
sont équivalents.

En eet : X =A ?
donne : branche Oui :A branche Non : B.
Tandis que : X =B ?
donne : branche Oui :B branche Non : A.
☞ À retenir
Les deux tests produisent le même split, seulement avec les branches inversées. Il sut donc de
calculer le gain d'un seul des deux tests.
Pr. ADDOU ML  Ch.4  Construction 17/95
Exemple de calcul du gain d'un split binaire

Exemple : N÷ud parent : 6 Oui, 4 Non (n = 10)


H(parent) = −0.6 log2 (0.6) − 0.4 log2 (0.4) = 0.442 + 0.529 = 0.971.

Test binaire candidat : Canal = Email ?

Ce test divise les exemples en deux groupes :

gauche :4 Oui, 0 Non

droite :2 Oui, 4 Non.

Groupe gauche : H(gauche) = 0 car le groupe est pur.

Groupe droite : H(droite) = − 62 log2 2


6 − 46 log2 4
6 = 0.918.
4 6
Entropie moyenne pondérée après le split : Haprès split = 10 (0) + 10 (0.918) = 0.551.
Gain du test : Gain = H(parent) − Haprès split = 0.971 − 0.551 = 0.420.
Pr. ADDOU ML  Ch.4  Construction 18/95
Synthèse : que maximise-t-on ?

☞ À retenir
Dans CART, à chaque n÷ud, on maximise le gain d'information d'un test binaire.

Meilleur test = arg max


tests binaires possibles
Gain(test)

Pour une variable numérique, les tests possibles sont des seuils :
X ≤s ?

Pour une variable catégorielle, les tests possibles sont des regroupements binaires de modalités
:
X ∈A ?

On choisit donc le meilleur couple :


variable + split .

Pr. ADDOU ML  Ch.4  Construction 19/95


L'algorithme glouton de construction

Construction récursive d'un arbre CART


Fonction construire(groupe) :
1 Si le groupe est pur, ou si un critère d'arrêt est atteint : créer une feuille.

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


En régression : la feuille prédit la moyenne des valeurs y .
2 Sinon :
Générer les tests binaires candidats.
Pour chaque test binaire candidat, calculer la réduction d'impureté.
Choisir le test qui réduit le plus l'impureté.
Diviser le groupe en deux groupes enfants :
groupe gauche et groupe droit.
Appeler construire récursivement sur chaque groupe enfant.

Glouton (greedy) signie qu'à chaque n÷ud, CART choisit le meilleur test localement, sans garantir
que l'arbre nal soit globalement optimal. Cette stratégie est utilisée car elle est simple, rapide et
ecace en pratique.
Pr. ADDOU ML  Ch.4  Construction 20/95
Quels sont les tests binaires candidats ?

★ Rappel
Dans CART, chaque n÷ud est binaire. L'algorithme ne choisit donc pas seulement une
variable : il choisit un test binaire, c'est-à-dire un couple :

variable + split .

Pour une variable numérique, CART teste des seuils :


xj ≤ s ?
Pour une variable catégorielle, CART teste des regroupements binaires :
X ∈A ?
où A est une modalité ou un groupe de modalités.
☞ À retenir
L'algorithme compare tous les tests binaires candidats autorisés, puis garde celui qui maximise la
réduction d'impureté.
Pr. ADDOU ML  Ch.4  Construction 21/95
Critères d'arrêt

★ Quand arrêter de diviser ?


Si on laisse un arbre croître sans contrôle, il peut devenir très profond et mémoriser une
grande partie des données d'entraînement. Cela augmente le risque d' overtting.
Il faut donc xer des critères d'arrêt pour limiter la complexité de l'arbre.

Critères d'arrêt usuels :


N÷ud pur : tous les exemples ont la même classe (H = 0 ou G = 0) → on crée une feuille.
Profondeur maximale atteinte : l'arbre a atteint max_depth.
Eectif minimal pour diviser : le n÷ud contient moins de min_samples_split exemples.
Taille minimale d'une feuille : un split créerait une feuille avec moins de min_samples_leaf
exemples.
Amélioration trop faible : aucun test ne réduit susamment l'impureté.

☞ À retenir
Ces critères sont des hyperparamètres. Ils contrôlent la complexité de l'arbre et donc le compromis
biaisvariance. Un arbre trop profond risque l'overtting, tandis qu'un arbre trop simple risque
l'undertting. En pratique, ces hyperparamètres sont souvent choisis par validation croisée.
Pr. ADDOU ML  Ch.4  Construction 22/95
Exemple complet : le jeu de données

Exemple : Exemple pédagogique ctif : ☞ À retenir


prédire un risque de diabète Dans CART, on ne choisit pas seulement
On considère un petit jeu de données ctif de 8 pa- une variable. On choisit le test binaire qui
tients, avec deux variables catégorielles simpliées. maximise le gain d'information.
Ici, comme chaque variable possède seule-
i Glucose Âge Risque de diabète ment deux modalités, il sut de tester :
1 Haut Vieux Oui
2 Haut Jeune Oui Glucose = Haut ? et Âge = Vieux ?.
3 Haut Vieux Oui
4 Bas Vieux Oui
5 Bas Jeune Non
6 Bas Jeune Non
7 Bas Vieux Oui
8 Bas Jeune Non

Bilan : 5 exemples Oui (1, 2, 3, 4, 7) et 3 exemples Non (5, 6, 8) sur n = 8.


H(racine) = − 58 log2 5
8 − 38 log2 3
8 = 0.424 + 0.531 = 0.954.
Pr. ADDOU ML  Ch.4  Construction 23/95
Étape 1a : gain du test Glucose = Haut ?
Le test binaire candidat est :
Glucose = Haut ?
Il divise les exemples en deux groupes :
Glucose = Haut : exemples 1, 2, 3
3 Oui, 0 Non ⇒ H(Haut) = 0.
Glucose = Bas : exemples 4, 5, 6, 7, 8
2 Oui, 3 Non.

2 2 3 3
H(Bas) = − log2 − log2 = 0.529 + 0.442 = 0.971.
5 5 5 5

3 5
Haprès split = (0) + (0.971) = 0.607.
8 8

Gain(Glucose = Haut ?) = 0.954 − 0.607 = 0.347


Pr. ADDOU ML  Ch.4  Construction 24/95
Étape 1b : gain du test Âge = Vieux ?
Le test binaire candidat est :
Âge = Vieux ?
Il divise les exemples en deux groupes :
Âge = Vieux : exemples 1, 3, 4, 7
4 Oui, 0 Non ⇒ H(Vieux) = 0.
Âge = Jeune : exemples 2, 5, 6, 8
1 Oui, 3 Non.

1 1 3 3
H(Jeune) = − log2 − log2 = 0.500 + 0.311 = 0.811.
4 4 4 4

4 4
Haprès split = (0) + (0.811) = 0.406.
8 8

Gain(Âge = Vieux ?) = 0.954 − 0.406 = 0.548


Pr. ADDOU ML  Ch.4  Construction 25/95
Étape 1c : choix du meilleur test

Test binaire candidat Gain d'information

Glucose = Haut ? 0.347

Âge = Vieux ? 0.548 ✓

Le meilleur test à la racine est donc : Âge = Vieux ?


car : 0.548 > 0.347.

CART choisit le test binaire qui maximise le gain d'information. Ici, le test Âge = Vieux ? sépare
mieux ce petit jeu de données ctif que le test Glucose = Haut ?.

Après ce split :
Âge = Vieux → groupe pur : 4 Oui, 0 Non → feuille Risque Oui .
Âge = Jeune → groupe impur : 1 Oui, 3 Non → il faut continuer la construction.
Pr. ADDOU ML  Ch.4  Construction 26/95
Remarque : variables catégorielles dans CART

☞ À retenir
Ici, les variables catégorielles possèdent seulement deux modalités.
Par exemple : Age ∈ {Vieux, Jeune}.
Les deux tests suivants sont donc équivalents :
Age = Vieux ? et Age = Jeune ?
Ils produisent le même split, seulement avec les branches inversées.
Si une variable catégorielle possède plus de deux modalités, par exemple :
X ∈ {A, B, C },
CART ne crée pas trois branches. Il cherche un split binaire, par exemple :
X ∈ {A} ?
ce qui donne deux groupes : {A} et {B, C }.
CART teste les regroupements binaires possibles et garde celui qui donne la plus forte réduction
d'impureté.
Pr. ADDOU ML  Ch.4  Construction 27/95
Pourquoi ne pas retester Âge dans la branche Jeune ?
Après le test :
Age = Vieux ?
la branche droite correspond à :
Age = Jeune.
Dans cette branche, tous les exemples ont donc la même modalité :

Age = Jeune.
Dans CART, une variable peut être retestée plus bas seulement si elle possède encore plusieurs valeurs
possibles dans le n÷ud courant.

☞ À retenir
Ici, dans le n÷ud Âge = Jeune, la variable Âge est constante. Elle ne peut donc plus séparer les
exemples de ce n÷ud.
En revanche, une variable numérique peut souvent être retestée plus bas avec un autre seuil, car ses
valeurs peuvent rester variées dans les branches.

Pr. ADDOU ML  Ch.4  Construction 28/95


Étape 2 : diviser le n÷ud Âge = Jeune
Dans la branche Âge = Jeune, il reste un groupe impur :

1 Oui, 3 Non, H(parent) = 0.811.


On teste alors le split binaire sur Glucose : Glucose = Haut ?
Glucose = Haut : exemple 2
1 Oui, 0 Non ⇒ H = 0.
Glucose = Bas : exemples 5, 6, 8
0 Oui, 3 Non ⇒ H = 0.
Les deux groupes enfants sont purs, donc :

Haprès split = 0.
Ainsi : Gain(Glucose = Haut ?) = 0.811 − 0 = 0.811
☞ À retenir
Le split sur Glucose est parfait dans cette branche : il transforme le groupe impur en deux feuilles
pures.
Pr. ADDOU ML  Ch.4  Construction 29/95
L'arbre nal

Âge = Vieux ? Lecture de l'arbre :

Vieux Jeune Si Âge = Vieux → Risque Oui.


Si Âge = Jeune et Glucose = Haut
Risque Oui Glucose = Haut ? → Risque Oui.
(4 ex.)
Haut Bas Si Âge = Jeune et Glucose = Bas →
Risque Non.
Risque Oui Risque Non
(1 ex.) (3 ex.)
Les 3 feuilles sont pures. L'arbre classie
correctement les 8 exemples d'entraînement.

Profondeur = 2, Nombre de feuilles = 3.


☞ À retenir
On a construit l'arbre de haut en bas, en choisissant à chaque n÷ud le test binaire qui maximise le
gain d'information. C'est le principe de construction gloutonne utilisé dans un arbre de type CART.
Pr. ADDOU ML  Ch.4  Construction 30/95
Le problème de l'overtting

★ Un arbre trop profond peut mémoriser


Si on laisse l'arbre croître sans contrôle, il peut devenir très profond et créer des règles très
spéciques aux données d'entraînement.
Il obtient alors souvent un score très élevé sur les données d'entraînement, parfois même
100 %, mais il peut mal généraliser sur de nouvelles données. C'est le problème de
l'overtting ou sur-apprentissage.

Arbre peu profond Arbre trop profond


x2

x2
x1 x1
Frontière simple : moins de variance, mais risque Frontière trop complexe : elle suit fortement les
d'undertting si l'arbre est trop simple. points du train et risque l'overtting.
Pr. ADDOU ML  Ch.4  Construction 31/95
Le problème de l'overtting

☞ À retenir
Un arbre très profond a souvent un biais faible, mais une variance élevée : il devient instable
et sensible au bruit. Un arbre trop simple a moins de variance, mais peut avoir un biais plus
fort. C'est le compromis biaisvariance.

Pr. ADDOU ML  Ch.4  Construction 32/95


Comment limiter l'overtting

Deux stratégies principales


Pré-élagage (pre-pruning) : arrêter la croissance de l'arbre pendant sa construction, à l'aide
d'hyperparamètres comme :

max_depth : profondeur maximale de l'arbre ;


min_samples_split : eectif minimal pour diviser un n÷ud ;
min_samples_leaf : eectif minimal dans une feuille ;
min_impurity_decrease : réduction minimale d'impureté exigée.
Post-élagage (post-pruning) : construire d'abord un arbre assez grand, puis supprimer
certaines branches qui n'améliorent pas la généralisation.
Dans CART, une stratégie classique est l' élagage complexitécoût (cost-complexity prun-
ing).

Pr. ADDOU ML  Ch.4  Construction 33/95


Comment limiter l'overtting

Exemple : Eet de max_depth


max_depth = 1 : arbre très simple, risque d'undertting.
max_depth = 3 : complexité intermédiaire, parfois bon compromis.
max_depth = None : arbre non limité en profondeur, risque élevé d'overtting.

☞ À retenir
Ces hyperparamètres contrôlent la complexité de l'arbre. On les choisit souvent par validation
croisée ou sur un jeu de validation. Le jeu de test ne doit être utilisé qu'à la n, pour
l'évaluation nale.

Pr. ADDOU ML  Ch.4  Construction 34/95


Synthèse : contrôler la complexité de l'arbre

Arbre Eet Risque

Trop simple Peu de règles, frontière Undertting


grossière
Trop profond Beaucoup de règles, frontière Overtting
très spécique
Bien réglé Complexité contrôlée Meilleure généralisation

☞ À retenir
L'objectif n'est pas d'obtenir l'arbre le plus profond possible, mais un arbre qui généralise bien. On
cherche donc un compromis entre la simplicité du modèle et sa capacité à capturer la structure des
données.

Pr. ADDOU ML  Ch.4  Construction 35/95


✎ TD  Exercice 4  Variable catégorielle avec plus de deux modalités

On veut prédire si un client achète un


produit à partir de deux variables : Canal de
contact et Coupon utilisé. 1 Calculer l'entropie de la racine.
La variable Canal de contact possède trois 2 Lister les splits binaires possibles pour la variable
modalités : Canal.

3 Calculer le meilleur split binaire produit par Canal.


Canal ∈ {Email, Réseaux, Boutique}.
4 Comparer ce split avec le test Coupon = Oui ?.
i Canal de contact Coupon utilisé Achat 5 Choisir le meilleur split à la racine.
1 Email Non Oui 6 Continuer la construction sur le groupe impur.
2 Email Non Oui 7 Dessiner l'arbre nal.
3 Email Non Oui
4 Email Non Oui
5 Réseaux Non Non
6 Réseaux Non Non
7 Boutique Oui Oui
8 Boutique Oui Oui
9 Boutique Non Non
10 Boutique Non Non

Pr. ADDOU ML  Ch.4  Construction 36/95


Correction  entropie de la racine

La racine contient 10 exemples :


6 Oui et 4 Non.
Donc :
6 6 4 4
H(racine) = − log − log ≈ 0.971.
10 2 10 10 2 10
☞ À retenir

Dans CART, même si une variable catégorielle possède plusieurs modalités, on cherche toujours un
split binaire. On ne crée pas directement une branche par modalité.

Pr. ADDOU ML  Ch.4  Construction 37/95


Splits binaires possibles pour la variable Canal
La variable Canal possède trois modalités :
{Email, Réseaux, Boutique}.

Dans CART, on teste des questions binaires :


Canal = Email ?

Canal = Réseaux ?

Canal = Boutique ?
Chaque question produit deux groupes :
Oui au test et Non au test.
Par exemple, le test : Canal = Email ?
sépare les exemples en deux groupes :
Email et Non Email.
Pr. ADDOU ML  Ch.4  Construction 38/95
Meilleur split binaire pour la variable Canal
On a :
H(racine) ≈ 0.971.
On calcule le gain des splits binaires possibles produits par Canal :

Split binaire Groupe Oui au test Groupe Non au test Gain


Canal = Email ? 4 Oui, 0 Non 2 Oui, 4 Non 0.420 ✓
Canal = Réseaux ? 0 Oui, 2 Non 6 Oui, 2 Non 0.322
Canal = Boutique ? 2 Oui, 2 Non 4 Oui, 2 Non 0.020

☞ À retenir

Le meilleur split produit par la variable Canal est :

Canal = Email ?
avec un gain :
Gain = 0.420.
Pr. ADDOU ML  Ch.4  Construction 39/95
Comparaison des meilleurs splits à la racine

Pour choisir le test à la racine, on compare les meilleurs splits candidats.


Variable Meilleur split trouvé Gain

Canal Canal = Email ? 0.420 ✓


Coupon Coupon = Oui ? 0.171

Le meilleur test à la racine est donc :


Canal = Email ?
car :
0.420 > 0.171.

☞ À retenir

Dans CART, on choisit toujours le meilleur test binaire. Pour une variable catégorielle avec plusieurs
modalités, on teste plusieurs regroupements binaires, puis on garde celui qui donne le gain maximal.
Pr. ADDOU ML  Ch.4  Construction 40/95
Après la racine : quel groupe continuer ?

Après le split :
Canal = Email ?
on obtient deux groupes :
Canal = Email : exemples 1, 2, 3, 4
4 Oui, 0 Non.
Ce groupe est pur ⇒ feuille Achat Oui.
Canal ̸= Email : exemples 5, 6, 7, 8, 9, 10

2 Oui, 4 Non.
Ce groupe est impur ⇒ il faut continuer à le diviser.
Canal = Email ?
Email ̸= Email

Achat Oui Groupe impur


4 ex. 2 Oui, 4 Non

Pr. ADDOU ML  Ch.4  Construction 41/95


Choisir le split dans le groupe impur

On travaille maintenant sur le groupe :


Canal ̸= Email.
Ce groupe contient les exemples 5, 6, 7, 8, 9 et 10 :

i Canal de contact Coupon utilisé Achat


5 Réseaux Non Non
6 Réseaux Non Non
7 Boutique Oui Oui
8 Boutique Oui Oui
9 Boutique Non Non
10 Boutique Non Non

Dans ce groupe :
2 Oui, 4 Non ⇒ H(parent) ≈ 0.918.
On compare maintenant les tests binaires possibles dans ce n÷ud.

Pr. ADDOU ML  Ch.4  Construction 42/95


Calcul des gains dans le groupe impur

Dans le groupe Canal ̸= Email, on compare les splits suivants :

Split candidat Groupe Oui au test Groupe Non au test Gain

Canal = Réseaux ? 0 Oui, 2 Non 2 Oui, 2 Non 0.251


Canal = Boutique ? 2 Oui, 2 Non 0 Oui, 2 Non 0.251
Coupon = Oui ? 2 Oui, 0 Non 0 Oui, 4 Non 0.918 ✓

Le meilleur split dans ce groupe impur est :


Coupon = Oui ?

car il rend les deux groupes enfants purs.

Pr. ADDOU ML  Ch.4  Construction 43/95


Interprétation du deuxième split

Dans le groupe Canal ̸= Email, on teste :

Coupon = Oui ?
Coupon = Oui : exemples 7 et 8
2 Oui, 0 Non ⇒ H = 0.
Ce groupe devient une feuille Achat Oui.
Coupon = Non : exemples 5, 6, 9 et 10

0 Oui, 4 Non ⇒ H = 0.
Ce groupe devient une feuille Achat Non.

Gain = H(parent) − 0 = 0.918.


☞ À retenir
Le deuxième split est parfait : il transforme le groupe impur en deux feuilles pures.

Pr. ADDOU ML  Ch.4  Construction 44/95


Arbre nal

Canal = Email ?
Email ̸= Email

Achat Oui Coupon = Oui ?


4 ex.
Oui Non

Achat Oui Achat Non


2 ex. 4 ex.

Lecture de l'arbre :

Si Canal = Email → Achat Oui.


Si Canal ̸= Email et Coupon = Oui → Achat Oui.
Si Canal ̸= Email et Coupon = Non → Achat Non.

Pr. ADDOU ML  Ch.4  Construction 45/95


Pourquoi les attributs numériques posent un nouveau problème ?

★ Où en sommes-nous ?
Dans la construction à la main précédente, les variables étaient catégorielles :

Glucose ∈ {Haut, Bas}, Âge ∈ {Vieux, Jeune}.

Dans ce cas simple, CART pouvait utiliser des tests binaires comme :

Glucose = Haut ? ou Âge = Vieux ?


Mais en pratique, beaucoup de variables sont numériques :
Glucose = 126 mg/dL ;
Âge = 47 ans ;
Revenu = 3 250 MAD ;
Température = 38.4◦ C.

Pr. ADDOU ML  Ch.4  Construction 46/95


Pourquoi les attributs numériques posent un nouveau problème ?

★ La question de ce complément
Pour une variable numérique xj , un test CART standard a la forme :

xj ≤ s ?

La question devient donc :

Quelle valeur de seuil s faut-il choisir ?

En théorie, il existe une innité de valeurs réelles possibles pour s.

Pr. ADDOU ML  Ch.4  Construction 47/95


Pourquoi les attributs numériques posent un nouveau problème ?

★ La question de ce complément
Pour une variable numérique xj , un test CART standard a la forme :

xj ≤ s ?

La question devient donc :

Quelle valeur de seuil s faut-il choisir ?

En théorie, il existe une innité de valeurs réelles possibles pour s.

☞ À retenir
On n'a pas besoin de tester une innité de seuils. Il sut de construire un ensemble ni de seuils
candidats. Ensuite, la logique reste la même : pour chaque seuil, on calcule le gain, puis on choisit
le test binaire qui réduit le plus l'impureté.

Pr. ADDOU ML  Ch.4  Construction 47/95


Pourquoi on ne teste pas tous les seuils ?

★ Une innité de seuils, mais peu de splits diérents


Pour une variable numérique, il existe une innité de seuils possibles.
Cependant, entre deux valeurs consécutives distinctes observées dans les données, tous les
seuils donnent le même découpage des exemples.
Donc, il est inutile de tester tous les nombres réels possibles.

Exemple : Exemple : glucose trié 85, 90, 110


Les seuils s = 95, s = 100 et s = 105 donnent tous le même split :
{85, 90} et {110}.

Il sut donc de choisir un seul seuil entre 90 et 110, par exemple le milieu :
90 + 110
s= = 100.
2

Pr. ADDOU ML  Ch.4  Construction 48/95


Pourquoi on ne teste pas tous les seuils ?

☞ À retenir
Il sut de tester un seuil entre chaque paire de valeurs consécutives distinctes. Pour m
valeurs distinctes, il y a au plus m−1 seuils candidats.
On choisit généralement le milieu entre deux valeurs consécutives :

vi + vi+1
si = .
2

Pr. ADDOU ML  Ch.4  Construction 49/95


Méthode : construire les seuils candidats

Seuils candidats pour une variable numérique


Pour une variable numérique xj , on procède ainsi :
1 Trier les valeurs distinctes observées :
v1 < v2 < · · · < vm .

2 Calculer les milieux entre valeurs consécutives :


vi + vi+1
si = , i = 1, . . . , m − 1.
2
3 Chaque seuil si dénit un test binaire :
xj ≤ si ?

4 Pour chaque seuil, calculer la réduction d'impureté.


5 Garder le seuil qui donne le gain maximal.

Pr. ADDOU ML  Ch.4  Construction 50/95


Méthode : construire les seuils candidats

Exemple : Valeurs distinctes {85, 90, 110, 125}


Les seuils candidats sont :
85 + 90 90 + 110 110 + 125
s1 = = 87.5, s2 = = 100, s3 = = 117.5.
2 2 2
On obtient donc 3 seuils candidats pour 4 valeurs distinctes.

☞ À retenir
Pour une variable numérique, CART transforme le problème en une recherche du meilleur seuil :
xj ≤ s ?

Chaque seuil produit deux groupes, puis on choisit celui qui réduit le plus l'impureté.

Pr. ADDOU ML  Ch.4  Construction 51/95


Exemple ctif : prédire un risque à partir du glucose

Exemple : 6 patients, 1 variable numérique : Glucose


On considère un petit jeu de données ctif, déjà trié par glucose croissant :

i 1 2 3 4 5 6
Glucose 85 90 110 125 140 160
Risque Non Non Non Oui Oui Oui

Bilan : 3 exemples Non (1, 2, 3) et 3 exemples Oui (4, 5, 6) sur n = 6.


3 3 3 3
H(racine) = − log2 − log2 = 1.
6 6 6 6
Le n÷ud racine est donc parfaitement équilibré.

☞ À retenir
Comme la variable Glucose est numérique, CART doit chercher le meilleur seuil dans un test de la
forme : Glucose ≤ s ?
Pr. ADDOU ML  Ch.4  Construction 52/95
Seuils candidats pour la variable Glucose

Les valeurs distinctes de glucose sont :

85, 90, 110, 125, 140, 160.

On prend les milieux entre deux valeurs consécutives :

85 + 90 90 + 110
s1 = = 87.5, s2 = = 100,
2 2

110 + 125 125 + 140 140 + 160


s3 = = 117.5, s4 = = 132.5, s5 = = 150.
2 2 2

☞ À retenir
Chaque seuil candidat dénit un test binaire :
Glucose ≤ s ?
Pour chaque seuil, on calcule le gain d'information, puis on choisit celui qui donne le gain maximal.

Pr. ADDOU ML  Ch.4  Construction 53/95


Seuils candidats pour la variable Glucose

Les valeurs distinctes de glucose sont :

85, 90, 110, 125, 140, 160.

On prend les milieux entre deux valeurs consécutives :

85 + 90 90 + 110
s1 = = 87.5, s2 = = 100,
2 2

110 + 125 125 + 140 140 + 160


s3 = = 117.5, s4 = = 132.5, s5 = = 150.
2 2 2

☞ À retenir
Chaque seuil candidat dénit un test binaire :
Glucose ≤ s ?
Pour chaque seuil, on calcule le gain d'information, puis on choisit celui qui donne le gain maximal.

Pr. ADDOU ML  Ch.4  Construction 54/95


Exemple de calcul : seuil s = 117.5
Pour le seuil : Glucose ≤ 117.5 ?
on obtient deux groupes :
Glucose ≤ 117.5 : exemples 1, 2, 3
0 Oui, 3 Non ⇒ H = 0.
Glucose > 117.5 : exemples 4, 5, 6
3 Oui, 0 Non ⇒ H = 0.
Les deux groupes enfants sont purs, donc :
3 3
Haprès split = (0) + (0) = 0.
6 6

Gain(s = 117.5) = 1 − 0 = 1.000


☞ À retenir
Le seuil s = 117.5 sépare parfaitement les deux classes. Son gain est donc maximal et vaut l'entropie
de la racine.
Pr. ADDOU ML  Ch.4  Construction 55/95
Tableau récapitulatif des seuils

Seuil s Groupe ≤s Groupe >s Gain

87.5 0 Oui, 1 Non 3 Oui, 2 Non 0.191


100 0 Oui, 2 Non 3 Oui, 1 Non 0.459
117.5 0 Oui, 3 Non 3 Oui, 0 Non 1.000 ✓
132.5 1 Oui, 3 Non 2 Oui, 0 Non 0.459
150 2 Oui, 3 Non 1 Oui, 0 Non 0.191

Le meilleur seuil est donc : s = 117.5


Le test retenu est :
Glucose ≤ 117.5 ?
★ Observation importante
Dans cet exemple, le seuil s= 117.5 se trouve entre le dernier exemple de classe Non et le
premier exemple de classe Oui. Il sépare donc parfaitement les deux classes.
En pratique, les seuils intéressants se trouvent souvent autour des zones où les classes
changent dans la liste triée.
Pr. ADDOU ML  Ch.4  Construction 56/95
Le test retenu et sa visualisation

Le n÷ud créé Sur l'axe du glucose


s = 117.5
Glucose ≤ 117.5 ?
≤ 117.5 > 117.5

Classe Non Classe Oui 8590 110 125 140 160

(3 ex.) (3 ex.) Glucose

• Classe Non ▲ Classe Oui.


Le seuil sépare nettement les deux classes.
☞ À retenir
Dans CART, une variable numérique est testée avec un seuil :
xj ≤ s ?
Ce test produit toujours deux branches :
xj ≤ s et xj > s.
CART reste donc un arbre binaire, même avec des variables numériques.
Pr. ADDOU ML  Ch.4  Construction 57/95
Remarque 1 : seuils autour des changements de classe

★ Idée pratique
Lorsque les valeurs d'une variable numérique sont triées, les seuils les plus intéressants se
trouvent souvent aux endroits où la classe change.
Ainsi, on peut souvent réduire le nombre de seuils candidats en testant en priorité les seuils
situés entre deux exemples de classes diérentes.
Exemple : Sur notre exemple
La liste triée est : 85(N), 90(N), 110(N), 125(O), 140(O), 160(O).
Les classes changent entre 110 et 125. Le seuil candidat correspondant est :
110 + 125
s= = 117.5.
2
C'est justement ce seuil qui donne le meilleur split dans cet exemple.

Pr. ADDOU ML  Ch.4  Construction 58/95


Remarque 2 : réutilisation d'une variable numérique

★ Une même variable peut apparaître plusieurs fois


Dans un arbre de type CART, une même variable numérique peut être testée plusieurs fois,
mais avec des seuils diérents.

Par exemple, on peut avoir à la racine :

Glucose ≤ 117.5 ?

puis, plus bas dans une autre branche :

Glucose ≤ 145 ?

☞ À retenir
Pour une variable numérique, l'algorithme cherche le meilleur seuil parmi un ensemble ni de seuils
candidats. Une même variable peut ensuite réapparaître plus bas dans l'arbre avec un autre seuil.

Pr. ADDOU ML  Ch.4  Construction 59/95


Complexité du traitement d'une variable numérique

Math  Coût au niveau d'un n÷ud


P

Pour un n÷ud contenant n exemples et une variable numérique :

Trier les valeurs observées : O(n log n).


Tester les ≤ n − 1 seuils candidats :
naïvement : recalculer les groupes pour chaque seuil peut coûter O(n2 ) ;
ecacement : en balayant les valeurs triées et en mettant à jour les comptes de classes, on
obtient O(n) après le tri.
Ainsi, si le tri est fait au niveau du n÷ud, le coût par variable est généralement :

O(n log n).

☞ À retenir
L'idée importante pour les étudiants est la suivante : CART ne teste pas une innité de seuils. Il
construit un ensemble ni de seuils candidats, puis choisit celui qui maximise la réduction d'impureté.

Pr. ADDOU ML  Ch.4  Construction 60/95


Récapitulatif : variables catégorielles vs numériques

☞ À retenir

Type de variable Traitement dans CART

Variable catégorielle CART cherche un split binaire entre les modalités, par exemple
X ∈A?
Variable numérique CART cherche un seuil s dans un test de la forme xj ≤ s ?
Test produit Dans les deux cas, le test est binaire : il produit deux groupes
enfants.
Choix du test CART choisit le test qui donne la plus forte réduction
d'impureté.
Réutilisation Une variable numérique peut être retestée plus bas avec un
autre seuil.

Avec l'entropie, cette réduction correspond au gain d'information. Avec le Gini, on parle plutôt de
réduction de Gini. Dans les deux cas, l'objectif est le même : choisir le meilleur test binaire.

Pr. ADDOU ML  Ch.4  Construction 61/95


✎ TD  Exercice 1  Seuil optimal
On veut prédire si un étudiant réussit (Oui / Non) selon le nombre d'heures de révision. Les données
sont déjà triées :

i 1 2 3 4
Heures de révision 2 4 6 8
Réussite Non Non Oui Oui

1 Calculer l'entropie de la racine H(racine).


2 Lister les seuils candidats.
3 Calculer le gain d'information pour chaque seuil.
4 Quel seuil choisir ? Donner le test retenu et dessiner le n÷ud correspondant.

Gain = H(parent) −
hn nd i
Rappels : g
H(Eg ) +
H(Ed ) ,
n n
H(1 Oui, 2 Non) = H(2 Oui, 1 Non) = 0.918.

Pr. ADDOU ML  Ch.4  Construction 62/95


✓ Solution  Exercice 1  Correction
1. Entropie de la racine

La racine contient 2 Oui et 2 Non : H(racine) = 1.


2. Seuils candidats

Les valeurs triées sont : 2, 4, 6, 8.


Les seuils candidats sont :
2+4 4+6 6+8
s1 = = 3, s2 = = 5, s3 = = 7.
2 2 2
3. Calcul des gains
Seuil Groupe ≤s Groupe >s Gain

s=3 0 Oui, 1 Non 2 Oui, 1 Non 0.311


s=5 0 Oui, 2 Non 2 Oui, 0 Non 1.000 ✓
s=7 1 Oui, 2 Non 1 Oui, 0 Non 0.311

4. Le meilleur seuil est : s=5 .


Le test retenu est donc : Heures de révision ≤ 5 ?

Pr. ADDOU ML  Ch.4  Construction 63/95


Visualisation de la solution de l'exercice 1

Heures ≤ 5 ?
≤5 >5

Réussite Non Réussite Oui


(2 ex.) (2 ex.)

☞ À retenir
Le seuil s = 5 sépare parfaitement les deux classes. Les deux groupes enfants sont purs, donc le gain
vaut 1.

Pr. ADDOU ML  Ch.4  Construction 64/95


✎ TD  Exercice 2  Quand aucun seuil n'est parfait
On prédit si un client achète (Oui / Non) selon son âge. Les données sont déjà triées :

i 1 2 3 4 5 6
Âge 22 25 30 35 40 45
Achat Non Non Oui Non Oui Oui

1 Calculer l'entropie de la racine H(racine).


2 Identier les seuils situés entre deux exemples de classes diérentes.
3 Calculer le gain d'information de ces seuils.
4 Choisir un seuil à la racine.
5 Continuer la construction sur les groupes impurs.
6 Dessiner l'arbre nal.
Rappels :

H(3 Oui, 1 Non) = H(1 Oui, 3 Non) = 0.811, H(1 Oui, 2 Non) = H(2 Oui, 1 Non) = 0.918.
Pr. ADDOU ML  Ch.4  Construction 65/95
Correction  racine et seuils candidats

✓ Solution  Exercice 2  Correction (1/5)


1. Entropie de la racine

La racine contient 3 Oui et 3 Non :


H(racine) = 1.
2. Seuils situés aux changements de classe

On parcourt les classes dans l'ordre des âges triés :


22(N), 25(N), 30(O), 35(N), 40(O), 45(O).
Les changements de classe se produisent entre :
25(N) et 30(O) : 25 + 30
s1 = = 27.5.
2
30(O) et 35(N) : 30 + 35
s2 = = 32.5.
2
35(N) et 40(O) : 35 + 40
s3 = = 37.5.
2

Pr. ADDOU ML  Ch.4  Construction 66/95


Correction  gains à la racine

✓ Solution  Exercice 2  Correction (2/5)


3. Gains des seuils à la racine

Seuil Groupe ≤ s Groupe > s Gain


27.5 0 Oui, 2 Non 3 Oui, 1 Non 0.459
32.5 1 Oui, 2 Non 2 Oui, 1 Non 0.082
37.5 1 Oui, 3 Non 2 Oui, 0 Non 0.459

Les deux seuils 27.5 et 37.5 donnent le même gain maximal :


Gain = 0.459.
En cas d'égalité, l'algorithme applique une règle de départage xée à l'avance. Ici, on choisit par
exemple le premier seuil rencontré :
ge ≤ 27.5 ?

Pr. ADDOU ML  Ch.4  Construction 67/95


Après la racine : quel groupe continuer ?

Après le test :
Age ≤ 27.5 ?
on obtient deux groupes :
Âge ≤ 27.5 : exemples 1 et 2
0 Oui, 2 Non.
Ce groupe est pur ⇒ feuille Achat Non.
Âge > 27.5 : exemples 3, 4, 5 et 6
3 Oui, 1 Non.
Ce groupe est impur ⇒ il faut continuer à le diviser.
Âge ≤ 27.5 ?
≤ 27.5 > 27.5

Achat Non Groupe impur


2 ex. 3 Oui, 1 Non

Pr. ADDOU ML  Ch.4  Construction 68/95


Correction  diviser le groupe impur

✓ Solution  Exercice 2  Correction (3/5)


On travaille maintenant sur le groupe :
Age > 27.5.
Ce groupe contient les exemples 3, 4, 5 et 6 :
30(O), 35(N), 40(O), 45(O).
Il contient 3 Oui et 1 Non :
H(parent) = H(3 Oui, 1 Non) = 0.811.
Les changements de classe dans ce groupe sont :
30 + 35
30(O) et 35(N) ⇒ s1 = = 32.5.
2
35 + 40
35(N) et 40(O) ⇒ s2 = = 37.5.
2

Pr. ADDOU ML  Ch.4  Construction 69/95


Correction  gains dans le groupe impur

✓ Solution  Exercice 2  Correction (4/5)


Gain du seuil s = 32.5 :
≤ 32.5 : 1 Oui, 0 Non > 32.5 : 2 Oui, 1 Non

1 3
Hpond = (0) + (0.918) = 0.689.
4 4
Gain(32.5) = 0.811 − 0.689 = 0.122.
Gain du seuil s = 37.5 :
≤ 37.5 : 1 Oui, 1 Non > 37.5 : 2 Oui, 0 Non

2 2
Hpond = (1) + (0) = 0.5.
4 4
Gain(37.5) = 0.811 − 0.5 = 0.311.
Le meilleur test dans ce groupe est donc :
ge ≤ 37.5 ?

Pr. ADDOU ML  Ch.4  Construction 70/95


Encore un groupe impur

Après le test : ge ≤ 37.5 ?


dans le groupe ge > 27.5, on obtient :
Âge > 37.5 : exemples 5 et 6
2 Oui, 0 Non.
Ce groupe est pur ⇒ feuille Achat Oui.
Âge ≤ 37.5 : exemples 3 et 4
1 Oui, 1 Non.
Ce groupe est encore impur ⇒ il faut continuer.
Dans ce dernier groupe, il reste :
30(O), 35(N).

Le seul seuil candidat est : 30 + 35


s= = 32.5.
2

☞ À retenir
Le test suivant sera donc :
ge ≤ 32.5 ?
Pr. ADDOU ML  Ch.4  Construction 71/95
Dernier split

Dans le groupe contenant :


30(O), 35(N),

l'entropie est :
H(1 Oui, 1 Non) = 1.
On teste :
Age ≤ 32.5 ?
Âge ≤ 32.5 : exemple 3
1 Oui, 0 Non ⇒ H = 0.
Âge > 32.5 : exemple 4
0 Oui, 1 Non ⇒ H = 0.
Les deux groupes enfants sont purs, donc :

Haprès split = 0.
Gain = 1 − 0 = 1.
☞ À retenir
Tous les groupes terminaux sont maintenant purs. On peut tracer l'arbre nal.
Pr. ADDOU ML  Ch.4  Construction 72/95
Arbre nal de l'exercice 2

Âge ≤ 27.5 ?
≤ 27.5 > 27.5

Achat Non Âge ≤ 37.5 ?


2 ex.
≤ 37.5 > 37.5

Âge ≤ 32.5 ? Achat Oui


2 ex.
≤ 32.5 > 32.5

Achat Oui Achat Non


1 ex. 1 ex.

☞ À retenir
Le premier split n'était pas parfait. CART continue donc uniquement sur les groupes impurs jusqu'à
obtenir des feuilles susamment pures ou jusqu'à atteindre un critère d'arrêt.
Pr. ADDOU ML  Ch.4  Construction 73/95
Récapitulatif  variables numériques

☞ À retenir
Étape Action

1. Trier Ordonner les valeurs distinctes de la variable numérique.


2. Seuils candidats Calculer les milieux vi +v2 i+1 entre valeurs consécutives.
3. Optimisation possible Tester en priorité les seuils situés entre deux exemples de
classes diérentes.
4. Calcul du gain Pour chaque seuil, couper en deux groupes : xj ≤ s et xj > s ,
puis calculer la réduction d'impureté.
5. Choix du seuil Garder le seuil qui donne la plus forte réduction d'impureté.
Test produit Test binaire : xj ≤ s ? donc deux branches.
Réutilisation Une variable numérique peut être retestée plus bas avec un
autre seuil.

Message essentiel : gérer une variable numérique consiste à générer des seuils candidats, puis à
choisir celui qui réduit le plus l'impureté des groupes enfants.
Pr. ADDOU ML  Ch.4  Construction 74/95
Exemple : arbre avec deux variables numériques

Exemple : Prédire l'achat d'un client Bilan : 2 Oui et 8 Non.

On considère deux variables numériques : Âge et


Visites site. Les données sont ctives.
2 2 8 8
H(racine) = − log2 − log2 ≈ 0.722
10 10 10 10
i Âge Visites site Achat
1 22 1 Non ☞ À retenir
2 25 2 Non Avec plusieurs variables numériques, CART
3 28 5 Oui doit choisir le meilleur couple :
4 31 6 Oui
5 45 1 Non variable + seuil .
6 50 2 Non
7 55 1 Non Chaque test reste binaire :
8 60 5 Non
9 65 6 Non xj ≤ s ?
10 70 6 Non

Pr. ADDOU ML  Ch.4  Construction 75/95


Seuils candidats pour les deux variables

1. Seuils pour l'Âge 2. Seuils pour Visites site


Les âges triés sont : Les valeurs distinctes sont :

22, 25, 28, 31, 45, 50, 55, 60, 65, 70. 1, 2, 5, 6.

Les classes correspondantes sont : Comme il y a peu de valeurs distinctes, on peut


tester tous les seuils candidats :
N, N, O, O, N, N, N, N, N, N.
1+2
s1 = = 1.5,
Les changements de classe se produisent entre : 2
25(N) et 28(O), 31(O) et 45(N). 2+5
s2 = = 3.5,
2
Donc les seuils candidats retenus sont :
5+6
s1 = 26.5, s2 = 38. s3 = = 5.5.
2
☞ À retenir
Pour chaque variable, on cherche le seuil qui donne le meilleur gain.
Pr. ADDOU ML  Ch.4  Construction 76/95
Calcul du meilleur seuil pour l'Âge

La racine contient 2 Oui et 8 Non :


H(racine) ≈ 0.722.
Les deux seuils candidats retenus pour l'Âge sont :
26.5 et 38.
Seuil Groupe ≤s Groupe >s Gain

26.5 0 Oui, 2 Non 2 Oui, 6 Non 0.073


38 2 Oui, 2 Non 0 Oui, 6 Non 0.322 ✓

☞ À retenir

Le meilleur seuil pour la variable Âge est donc :


ge ≤ 38 ?

avec un gain :
Gain = 0.322.
Pr. ADDOU ML  Ch.4  Construction 77/95
Calcul du meilleur seuil pour Visites site

La racine est la même : H(racine) ≈ 0.722.


Les seuils candidats pour Visites site sont :
1.5, 3.5, 5.5.
Seuil Groupe ≤s Groupe >s Gain

1.5 0 Oui, 3 Non 2 Oui, 5 Non 0.118


3.5 0 Oui, 5 Non 2 Oui, 3 Non 0.236 ✓
5.5 1 Oui, 6 Non 1 Oui, 2 Non 0.032

☞ À retenir

Le meilleur seuil pour la variable Visites site est donc :


Visites site ≤ 3.5 ?
avec un gain : Gain = 0.236.
Pr. ADDOU ML  Ch.4  Construction 78/95
Choix de la racine avec deux variables numériques

Après avoir calculé le meilleur seuil de chaque variable, on compare les deux meilleurs tests
binaires :
Âge ≤ 38 et Visites site ≤ 3.5.

Test candidat Groupe gauche Groupe droit Gain

Âge ≤ 38 2 Oui, 2 Non 0 Oui, 6 Non 0.322 ✓


Visites site ≤ 3.5 0 Oui, 5 Non 2 Oui, 3 Non 0.236

Le meilleur test à la racine est : Âge ≤ 38 ?


car : 0.322 > 0.236.
☞ À retenir
Avec plusieurs variables numériques, CART choisit le couple variable + seuil qui donne la plus forte
réduction d'impureté.
Pr. ADDOU ML  Ch.4  Construction 79/95
Après la racine : quel groupe continuer ?

Après le split racine : Âge ≤ 38 ?


on obtient deux groupes :
Âge > 38 : exemples 5, 6, 7, 8, 9, 10
0 Oui, 6 Non.
Ce groupe est pur ⇒ feuille Achat Non.
Âge ≤ 38 : exemples 1, 2, 3, 4
2 Oui, 2 Non.
Ce groupe est impur ⇒ il faut continuer à le diviser.
Âge ≤ 38 ?
≤ 38 > 38

Groupe impur Achat Non


2 Oui, 2 Non 6 ex.

☞ À retenir
On ne continue pas à diviser les groupes purs. On continue seulement les groupes impurs.
Pr. ADDOU ML  Ch.4  Construction 80/95
Choisir le split dans le groupe impur

On travaille maintenant uniquement sur le groupe impur :

Âge ≤ 38.
Ce groupe contient les exemples 1, 2, 3 et 4 :

i Âge Visites site Achat


1 22 1 Non
2 25 2 Non
3 28 5 Oui
4 31 6 Oui
L'entropie de ce groupe est :
H(2 Oui, 2 Non) = 1.

Dans CART, à chaque nouveau n÷ud, on cherche de nouveau le meilleur couple variable + seuil.
On peut donc retester Âge, ou tester une autre variable comme Visites site.

Pr. ADDOU ML  Ch.4  Construction 81/95


Comparer les variables dans le groupe impur

Dans le groupe impur, deux tests donnent un gain maximal :

Test candidat Groupe ≤s Groupe >s Gain

Âge ≤ 26.5 0 Oui, 2 Non 2 Oui, 0 Non 1


Visites site ≤ 3.5 0 Oui, 2 Non 2 Oui, 0 Non 1

Les deux tests donnent deux groupes purs. Ils ont donc le même gain maximal :
Gain = 1.
☞ À retenir

Dans cet exemple, il existe une égalité entre deux tests candidats. Les deux choix sont scientique-
ment corrects.

Pr. ADDOU ML  Ch.4  Construction 82/95


Quel split choisir en cas d'égalité ?

Dans le groupe impur, deux tests donnent le même gain maximal :

Âge ≤ 26.5 et Visites site ≤ 3.5.


Dans les deux cas :
Gain = 1.
En cas d'égalité, l'algorithme applique une règle de choix xée à l'avance : par exemple choisir la pre-
mière variable rencontrée, le premier seuil rencontré, ou suivre une règle interne de l'implémentation.

☞ À retenir
Le choix de Visites site ≤ 3.5 n'est donc pas le seul choix possible. Le test Âge ≤ 26.5 est aussi
correct.
Dans cet exemple, on garde Visites site ≤ 3.5 pour montrer qu'un arbre peut combiner plusieurs
variables numériques.

Pr. ADDOU ML  Ch.4  Construction 83/95


Arbre nal avec deux variables numériques

Âge ≤ 38 ?
≤ 38 > 38

Visites ≤ 3.5 ? Achat Non


(6 ex.)
≤ 3.5 > 3.5

Achat Non Achat Oui


(2 ex.) (2 ex.)

☞ À retenir
Cet arbre utilise deux variables numériques : Âge à la racine, puis Visites site dans la branche
gauche.
Ce choix est possible car, dans le groupe impur, le test
Visites site ≤ 3.5 ?
donne un gain maximal.
Pr. ADDOU ML  Ch.4  Construction 84/95
✎ TD  Exercice 3  Arbre avec deux variables numériques
On veut prédire si un client achète un produit à partir de deux variables numériques : Distance
magasin et Visites site.
Les données sont ctives :
i Distance magasin Visites site Achat 1 Calculer l'entropie de la racine.
1 1 1 Non 2 Calculer le meilleur seuil pour Distance magasin.
2 2 6 Oui
3 3 2 Non 3 Calculer le meilleur seuil pour Visites site.
4 4 7 Oui 4 Choisir le meilleur test binaire à la racine.
5 8 1 Non
6 9 2 Non 5 Continuer la construction sur le groupe impur.
7 10 1 Non
8 11 6 Non
6 Dessiner l'arbre nal.
9 12 7 Non
10 13 7 Non

Pr. ADDOU ML  Ch.4  Construction 85/95


Correction  entropie de la racine

La racine contient 10 exemples :


2 Oui et 8 Non.
Donc :
H(racine) = H(2 Oui, 8 Non)

2 2 8 8
=− log2 − log2 ≈ 0.722.
10 10 10 10
☞ À retenir

L'entropie de la racine vaut environ :

H(racine) = 0.722.

Cette valeur servira à calculer les gains d'information des tests candidats.

Pr. ADDOU ML  Ch.4  Construction 86/95


Calcul du meilleur seuil pour Distance magasin

La racine contient 2 Oui et 8 Non : H(racine) ≈ 0.722.


Les distances triées et les classes correspondantes sont :
1(N), 2(O), 3(N), 4(O), 8(N), 9(N), 10(N), 11(N), 12(N), 13(N).
Les changements de classe donnent quatre seuils candidats :
1.5, 2.5, 3.5, 6.
Seuil Groupe ≤ s Groupe > s Gain
1.5 0 Oui, 1 Non 2 Oui, 7 Non 0.034
2.5 1 Oui, 1 Non 1 Oui, 7 Non 0.087
3.5 1 Oui, 2 Non 1 Oui, 6 Non 0.032
6 2 Oui, 2 Non 0 Oui, 6 Non 0.322 ✓

Le meilleur test pour cette variable est donc :


Distance magasin ≤ 6 ?
car il donne le gain maximal : 0.322.
Pr. ADDOU ML  Ch.4  Construction 87/95
Calcul du meilleur seuil pour Visites site

La racine est la même : H(racine) ≈ 0.722.


Les valeurs distinctes de Visites site sont : 1, 2, 6, 7.
Comme le nombre de valeurs distinctes est faible, on peut tester tous les seuils candidats :
1+2 2+6 6+7
s1 = = 1.5, s2 = = 4, s3 = = 6.5.
2 2 2
Données triées par Visites site

i Distance Visites Achat


Seuil ≤s >s Gain
1 1 1 Non 1.5 0 O, 3 N 2 O, 5 N 0.118
5 8 1 Non 4 0 O, 5 N 2 O, 3 N 0.236 ✓
7 10 1 Non 6.5 1 O, 6 N 1 O, 2 N 0.032
3 3 2 Non
6 9 2 Non Le meilleur test pour cette variable est donc :
2 2 6 Oui
8 11 6 Non
4 4 7 Oui
Visites site ≤ 4 ?
9 12 7 Non
10 13 7 Non
car il donne le gain maximal : 0.236.
Pr. ADDOU ML  Ch.4  Construction 88/95
Choix de la racine
Après avoir calculé le meilleur seuil de chaque variable, on compare les deux meilleurs tests
binaires :

Distance magasin ≤6 ? et Visites site ≤4 ?

Test candidat Groupe gauche Groupe droit Gain

Distance magasin ≤ 6 2 Oui, 2 Non 0 Oui, 6 Non 0.322 ✓


Visites site ≤ 4 0 Oui, 5 Non 2 Oui, 3 Non 0.236

Le meilleur test binaire à la racine est :


Distance magasin ≤ 6 ?
car :
0.322 > 0.236.
Pr. ADDOU ML  Ch.4  Construction 89/95
Après la racine : quel groupe continuer ?

Après le split racine :


Distance magasin ≤6 ?
on obtient deux groupes :
Distance magasin > 6 : exemples 5, 6, 7, 8, 9, 10 :
0 Oui, 6 Non.
Ce groupe est pur ⇒ feuille Achat Non.
Distance magasin ≤ 6 : exemples 1, 2, 3, 4 :

2 Oui, 2 Non.
Ce groupe est impur ⇒ il faut continuer à le diviser.
Distance ≤ 6 ?
≤6 >6

Groupe impur Achat Non


2 Oui, 2 Non 6 ex.

Pr. ADDOU ML  Ch.4  Construction 90/95


Comparer les variables dans le groupe impur

On travaille maintenant uniquement sur le groupe impur :

Distance magasin ≤ 6.
Ce groupe contient les exemples 1, 2, 3 et 4 :

i Distance magasin Visites site Achat


1 1 1 Non
2 2 6 Oui
3 3 2 Non
4 4 7 Oui
L'entropie de ce groupe est :
H(2 Oui, 2 Non) = 1.

Dans ce nouveau n÷ud, CART recherche encore le meilleur couple variable + seuil. On compare
donc Distance magasin et Visites site.

Pr. ADDOU ML  Ch.4  Construction 91/95


Meilleur test dans le groupe impur

1. Retester Distance magasin 2. Tester Visites site


Distances triées : Visites triées :
1(N), 2(O), 3(N), 4(O). 1(N), 2(N), 6(O), 7(O).
Seuils candidats : Seuils candidats :
1.5, 2.5, 3.5. 1.5, 4, 6.5.

Seuil Gain Seuil Gain


1.5 0.311 1.5 0.311
2.5 0 4 1✓
3.5 0.311 6.5 0.311

Le meilleur gain avec Distance magasin est : Le meilleur gain avec Visites site est :
0.311. 1.
Dans le groupe impur, le meilleur test est donc : Visites site ≤ 4 ? car il donne un gain parfait :
Gain = 1.
Pr. ADDOU ML  Ch.4  Construction 92/95
Arbre nal avec deux variables numériques

Distance ≤ 6 ?
≤6 >6

Visites ≤ 4 ? Achat Non


(6 ex.)
≤4 >4

Achat Non Achat Oui


(2 ex.) (2 ex.)

☞ À retenir
Cet arbre utilise deux variables numériques : Distance magasin à la racine, puis Visites site dans
la branche gauche.
Dans le groupe impur, Visites site est choisi car le test :
Visites site ≤ 4 ?
donne le gain maximal.
Pr. ADDOU ML  Ch.4  Construction 93/95
Récapitulatif de la Partie 2

☞ À retenir
Concept Formule / idée

Entropie k pk log2 (pk ) ; nulle si le groupe est pur, maximale si les classes sont
P
H=−
équilibrées.
Gini G = 1 − k pk2 ; autre  mesure d'impureté,plus simple à calculer que l'entropie.
P
Gain Gain = H(parent)− nng H(Eg ) + nnd H(Ed ) ; réduction d'entropie après un split
d'information binaire.
Test binaire Dans CART, chaque n÷ud choisit un test binaire de la forme xj ≤ s ? pour
une variable numérique, ou X ∈ A ? pour une variable catégorielle.
Choix du split Choisir le test binaire qui réduit le plus l'impureté des deux groupes enfants.
Algorithme Construction gloutonne et récursive : choisir le meilleur test local à chaque
n÷ud, puis continuer sur les groupes impurs.
Critères d'arrêt N÷ud pur, max_depth, min_samples_split, min_samples_leaf, améliora-
tion trop faible, etc.
Overtting Un arbre trop profond peut mémoriser les données d'entraînement, avoir une
variance élevée et mal généraliser.
Élagage Pré-élagage : limiter la croissance ; post-élagage : supprimer des branches après
construction.
Pr. ADDOU ML  Ch.4  Construction 94/95
Fin de la Partie 2
Suite : Partie 3  Forêts aléatoires
Bagging (Bootstrap Aggregating)

Random Forest : construire plusieurs arbres décorrélés

Erreur Out-of-Bag et importance des variables

Pause 10 minutes

Pr. ADDOU ML  Ch.4  Construction 95/95


Module : Machine Learning
Chapitre 4  Partie 3/3 : Forêts aléatoires et méthodes d'ensemble

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

20252026

Pr. ADDOU ML  Ch.4  Forêts aléatoires 1/39


Ce que vous allez apprendre dans cette partie

1 Le problème de l'arbre seul : forte variance, instabilité


2 Le bagging (Bootstrap Aggregating)
3 Pourquoi le bagging réduit la variance
4 La forêt aléatoire (Random Forest) : arbres décorrélés
5 L'erreur Out-Of-Bag (validation gratuite)
6 L'importance des features
7 Comparaison nale : arbre vs forêt vs régression logistique

Pour l'étudiant absent : un arbre seul est puissant mais instable. L'idée géniale de cette partie :
combiner des centaines d'arbres pour obtenir un modèle robuste. C'est le principe de la sagesse
des foules appliqué au machine learning.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 2/39


L'instabilité d'un arbre unique

★ Rappel de la Partie 2
Un arbre profond peut capturer des relations complexes : il a souvent un biais faible.
Mais il peut aussi avoir une variance élevée : il devient alors très sensible aux données
d'entraînement.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 3/39


L'instabilité d'un arbre unique
Exemple : Expérience
On entraîne un arbre sur un jeu de données. Puis on modie légèrement les données, par exemple en
changeant ou en retirant un seul exemple, et on ré-entraîne l'arbre.

Résultat possible : l'arbre obtenu peut être très diérent : autre racine, autres seuils, autres branches.

Arbre sur données A Arbre sur données A'


x1 ≤ 5 ? (données légèrement modiées)
x2 ≤ 3 ?
A B

B x1 ≤ 7 ?

A B

☞ À retenir
Cette instabilité correspond à une variance élevée. Une solution consiste à ne pas utiliser un seul
arbre, mais à combiner plusieurs arbres an d'obtenir une prédiction plus stable.
Pr. ADDOU ML  Ch.4  Forêts aléatoires 4/39
L'idée : la sagesse des foules
★ Analogie
Pour estimer le nombre de billes dans un bocal, l'estimation d'une seule personne peut être très
imprécise. Mais si l'on moyenne les estimations de nombreuses personnes, les erreurs individuelles
peuvent se compenser.

Application au machine learning :


Au lieu d'entraîner un seul arbre, on entraîne plusieurs arbres.
Chaque arbre peut faire des erreurs, mais pas toujours sur les mêmes exemples.
On agrège leurs prédictions :
vote majoritaire en classication ;
moyenne en régression.
L'agrégation rend la prédiction nale plus stable.
☞ À retenir
C'est le principe des méthodes d'ensemble : combiner plusieurs modèles instables mais diversiés
pour obtenir un modèle global plus robuste.
Cependant, pour que cette idée fonctionne bien, les arbres doivent être susamment diérents les
uns des autres. La première méthode pour créer cette diversité est le bagging.
Pr. ADDOU ML  Ch.4  Forêts aléatoires 5/39
Le bootstrap : créer des jeux de données diérents

Échantillon bootstrap
À partir d'un jeu de données contenant n exemples, un échantillon bootstrap est obtenu
en tirant n exemples avec remise.
Cela signie qu'un même exemple peut être tiré plusieurs fois, tandis que d'autres exemples
peuvent ne pas être tirés du tout.

Exemple : Bootstrap sur 6 exemples


Jeu de données original : {1, 2, 3, 4, 5, 6}.
Exemples d'échantillons bootstrap :

Échantillon 1 : {1, 1, 3, 4, 4, 6} Les exemples 2 et 5 sont absents ; les exemples 1 et 4 apparaissent


deux fois.
Échantillon 2 : {2, 2, 2, 3, 5, 6} Les exemples 1 et 4 sont absents ; l'exemple 2 apparaît trois fois.
Échantillon 3 : {1, 2, 3, 3, 5, 5} Les exemples 4 et 6 sont absents.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 6/39


Le bootstrap : créer des jeux de données diérents

☞ À retenir
Un échantillon bootstrap a toujours n tirages, mais il contient souvent moins de n exemples
distincts. C'est cette diérence qui permet de construire des arbres diérents.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 7/39


Exemples Out-Of-Bag dans le bootstrap

★ Que deviennent les exemples non tirés ?


Dans un échantillon bootstrap, certains exemples du jeu de données original ne sont pas tirés.
Pour un arbre donné, ces exemples non tirés sont appelés :

Out-Of-Bag ou simplement OOB.

Pour un jeu de données de grande taille, un échantillon bootstrap contient en moyenne environ :

63.2%

des exemples distincts du jeu de données original.


Les exemples restants, environ :
36.8%,

ne sont pas tirés et sont donc Out-Of-Bag.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 8/39


Exemples Out-Of-Bag dans le bootstrap
Math  Pourquoi environ 37% OOB ?
P

Pour un exemple donné, la probabilité de ne pas être tiré lors d'un tirage est :
1
1− .
n
La probabilité de ne jamais être tiré pendant les n tirages est donc :
1 n
 
1− .
n
Lorsque n est grand : 
1 n

1
1− −→ ≈ 0.368.
n e

☞ À retenir
En moyenne, chaque arbre est entraîné sur un échantillon bootstrap et laisse de côté environ 37%
des exemples. Ces exemples OOB serviront plus tard à estimer l'erreur du modèle.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 9/39


Le bagging (Bootstrap Aggregating)
Bagging
Le bagging consiste à entraîner plusieurs modèles sur des échantillons bootstrap diérents,
puis à agréger leurs prédictions.
1 Créer B échantillons bootstrap à partir du jeu de données initial.

2 Entraîner un arbre séparément sur chaque échantillon :


B échantillons bootstrap ⇒ B arbres.

3 Agréger les prédictions :


en classication : vote majoritaire ;
en régression : moyenne des prédictions.

Arbre 1
bootstrap 1

bootstrap 2
Jeu de données Arbre 2 Vote / Moyenne Prédiction

bootstrap B ···
Arbre B

Pr. ADDOU ML  Ch.4  Forêts aléatoires 10/39


Le bagging (Bootstrap Aggregating)

☞ À retenir
Comme chaque arbre est entraîné sur un échantillon bootstrap diérent, les arbres obtenus
sont généralement diérents. L'agrégation de leurs prédictions permet de réduire la variance
et de rendre le modèle plus stable.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 11/39


Exemple de vote majoritaire
Exemple : 5 arbres classient un patient test

Arbre 1 Arbre 2 Arbre 3 Arbre 4 Arbre 5

Prédiction Oui Oui Non Oui Non

Vote majoritaire :
3 votes Oui contre 2 votes Non.
La prédiction nale de l'ensemble est donc :
Oui .
Score de conance associé à la classe Oui :
3
p̂(Oui) = = 0.6.
5
☞ À retenir
En classication, le bagging agrège les arbres par vote majoritaire. La classe nale est celle qui
reçoit le plus grand nombre de votes.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 12/39


Pourquoi le bagging réduit la variance
Math  Intuition mathématique
P

Supposons d'abord que l'on dispose de B prédictions indépendantes, chacune ayant une
variance σ 2 . La variance de leur moyenne est alors :
B 2
!
1 X
Var B Xb = σB .
b=1

Ainsi, si B = 100, la variance de la moyenne est divisée par 100.

Mais attention : dans le bagging, les arbres ne sont pas totalement indépendants. Ils sont entraînés
sur des échantillons bootstrap issus du même jeu de données, donc leurs prédictions peuvent être
corrélées.
Si les arbres ont une corrélation moyenne ρ, alors la variance moyenne peut s'écrire approximativement
:
1 −ρ 2
ρσ 2 + σ .
B
Quand B augmente, le second terme diminue, mais le premier terme ρσ 2 reste présent.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 13/39


Pourquoi le bagging réduit la variance

☞ À retenir
Le bagging réduit surtout la variance en moyennant plusieurs arbres. Cependant, pour réduire
encore davantage la variance, il faut aussi rendre les arbres moins corrélés.
C'est exactement l'idée de la forêt aléatoire : ajouter de l'aléatoire dans le choix des variables
pour décorréler les arbres.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 14/39


Random Forest : bagging + variables aléatoires
Forêt aléatoire (Random Forest)
Une forêt aléatoire est une extension du bagging d'arbres.
Elle ajoute une deuxième source d'aléa :

À chaque n÷ud, on ne considère qu'un sous-ensemble aléatoire de variables.


Au lieu de chercher le meilleur split parmi toutes les d variables, CART tire au hasard m < d
variables, puis cherche le meilleur split uniquement parmi ces m variables.

Valeurs usuelles de m :
en classication : √
m≈ d
par exemple, si d = 100, alors m ≈ 10 ;
en régression :
d
m≈ .
3

Pr. ADDOU ML  Ch.4  Forêts aléatoires 15/39


Random Forest : bagging + variables aléatoires

Pourquoi cela fonctionne ?


Si une variable est très prédictive, beaucoup d'arbres du bagging peuvent l'utiliser très tôt
dans l'arbre. Les arbres deviennent alors similaires, donc corrélés.
En limitant aléatoirement les variables disponibles à chaque n÷ud, on force les arbres à
explorer des splits diérents. Les arbres deviennent plus diversiés, leur corrélation diminue,
et la variance de l'ensemble diminue aussi.

☞ À retenir
Une Random Forest combine deux idées :

bootstrap sur les exemples + sous-ensemble aléatoire de variables à chaque n÷ud.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 16/39


Les deux sources d'aléa de la forêt

Aléa 1 : bootstrap Aléa 2 : variables aléatoires


Chaque arbre est entraîné sur un échantil- À chaque n÷ud, CART ne considère qu'un
lon bootstrap diérent, obtenu par tirage sous-ensemble aléatoire de variables
avec remise à partir du jeu de données ini- pour choisir le meilleur split.
tial.
Eet : diversier les arbres par les variables
Eet : diversier les arbres par les exemples disponibles.
utilisés.

☞ À retenir
Ces deux sources d'aléa rendent les arbres plus diérents les uns des autres. Leur corrélation moyenne
ρ diminue, ce qui permet de réduire la variance de l'ensemble.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 17/39


Hyperparamètres principaux :

Hyperparamètres principaux :
n_estimators : nombre d'arbres, par exemple 100, 300 ou 500 ;
max_features : nombre de variables candidates à chaque n÷ud ;
max_depth : profondeur maximale des arbres ;
min_samples_leaf : nombre minimal d'exemples dans une feuille.
Augmenter le nombre d'arbres améliore souvent la stabilité jusqu'à saturation, mais augmente
le temps de calcul.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 18/39


Algorithme complet de la Random Forest

Entraînement
Pour b = 1 à B :
1 Tirer un échantillon bootstrap de n exemples à partir du jeu de données d'entraînement.
2 Construire un arbre sur cet échantillon. À chaque n÷ud :
tirer au hasard m variables parmi les d variables disponibles ;
chercher le meilleur split uniquement parmi ces m variables ;
diviser le n÷ud selon le meilleur test trouvé.
3 Laisser l'arbre croître assez profondément, souvent sans élagage fort, an de garder un biais
faible.

Prédiction
Pour un nouvel exemple x :
Classication : chaque arbre vote pour une classe, puis on prend la classe majoritaire.
Régression : chaque arbre donne une valeur, puis on moyenne les prédictions des B arbres.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 19/39


L'erreur Out-Of-Bag (OOB)
★ Rappel
Chaque échantillon bootstrap laisse de côté environ 37% des exemples du jeu de données
original. Pour un arbre donné, ces exemples non tirés sont appelés :
Out-Of-Bag ou OOB.
Ils n'ont pas servi à entraîner cet arbre.
Erreur OOB
Pour chaque exemple i du jeu de données :
1 Identier les arbres pour lesquels l'exemple i est OOB, c'est-à-dire les arbres qui ne l'ont pas
vu pendant l'entraînement.

2 Faire prédire l'exemple i uniquement par ces arbres :


en classication : vote majoritaire ;
en régression : moyenne des prédictions.
3 Comparer la prédiction obtenue avec la vraie valeur de i.
L'erreur OOB est le taux d'erreur calculé sur l'ensemble des exemples ainsi évalués.
Pr. ADDOU ML  Ch.4  Forêts aléatoires 20/39
L'erreur Out-Of-Bag (OOB)

Avantage : l'erreur OOB fournit une estimation interne de la performance en généralisation,


sans refaire une validation croisée complète.
Elle est très utile pour suivre la qualité du modèle pendant l'entraînement, notamment lorsque
les données sont peu nombreuses.

☞ À retenir
L'erreur OOB est une estimation pratique de la performance du modèle. Cependant, pour
une évaluation nale rigoureuse, un jeu de test indépendant reste préférable lorsqu'il est
disponible.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 21/39


L'importance des features
★ Quelle feature compte le plus ?
Une Random Forest permet d'estimer l'importance de chaque feature dans les décisions du
modèle.
L'idée est de mesurer quelles features contribuent le plus à réduire l'impureté dans les arbres
de la forêt.

Importance par réduction d'impureté


Pour chaque feature xj , on additionne, sur tous les arbres et tous les n÷uds, la réduction
d'impureté apportée par les splits qui utilisent cette feature.
Cette réduction peut être mesurée par :
la réduction de Gini ;
ou la réduction d'entropie.
Les contributions sont pondérées par le nombre d'exemples concernés, puis normalisées pour
que la somme des importances vaille 1.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 22/39


L'importance des features

Exemple : Résultat type


Pour un modèle de diagnostic, on peut obtenir par exemple :
Glucose : importance 0.45 (feature la plus utilisée pour réduire l'impureté) ;
IMC : importance 0.30 ;
Âge : importance 0.20 ;
Sexe : importance 0.05 (feature moins contributive dans ce modèle).

☞ À retenir
L'importance des features aide à interpréter globalement une forêt et peut guider la sélection
de features.
Mais elle ne doit pas être interprétée comme une preuve causale : une feature importante
pour le modèle n'est pas forcément une cause directe du phénomène étudié.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 23/39


Limites de l'importance par impureté

L'importance par réduction d'impureté est utile, mais elle a des limites.
Elle peut favoriser :
les features numériques continues ;

les features ayant beaucoup de modalités ;

les features corrélées avec d'autres features importantes.

★ Alternative : importance par permutation


Une autre approche consiste à mesurer la baisse de performance lorsque les valeurs d'une
feature sont mélangées aléatoirement.
Si mélanger une feature dégrade fortement la performance, cela signie que le modèle dépend
beaucoup de cette feature.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 24/39


Limites de l'importance par impureté

☞ À retenir
Il existe donc deux idées principales :
Importance par impureté : combien la feature réduit Gini ou l'entropie dans les arbres ?
Importance par permutation : combien la performance baisse si on perturbe cette feature ?
Dans les deux cas, l'importance reste une mesure d'association avec le modèle, pas une preuve
de causalité.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 25/39


Comparaison : arbre, Random Forest et régression logistique
Arbre seul Random Forest Rég. logistique

Type de frontière En escalier, par régions Combinaison de nom- Linéaire dans l'espace des
rectangulaires breuses frontières en features
escalier
Biais Faible si l'arbre est pro- Faible à modéré Faible si relation linéaire,
fond plus élevé si relation très non
linéaire
Variance Élevée Réduite par agrégation Généralement faible à mod-
érée
Risque d'overtting Important si arbre trop Plus robuste qu'un arbre Contrôlable par régularisa-
profond seul tion
Interprétabilité Très bonne : règles ex- Moyenne : importance Bonne : coecients inter-
plicites des features, mais beau- prétables avec prudence
coup d'arbres
Normalisation des Pas nécessaire Pas nécessaire Souvent recommandée,
features surtout avec régularisation
Temps Rapide Plus coûteux : plusieurs Rapide à modéré
d'entraînement arbres
Probabilités Proportions dans les Proportion de votes ou Probabilités via sigmoïde ou
feuilles moyenne des probabilités softmax

Pr. ADDOU ML  Ch.4  Forêts aléatoires 26/39


Comparaison : arbre, Random Forest et régression logistique

☞ À retenir
En résumé : un arbre seul est facile à interpréter mais instable. La Random Forest améliore la
robustesse en combinant plusieurs arbres diversiés. Elle garde une bonne capacité à capturer
des relations non linéaires, mais elle devient moins interprétable qu'un arbre unique.
La régression logistique reste un modèle simple, rapide et interprétable, mais elle est moins
adaptée si la frontière de décision est fortement non linéaire.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 27/39


En Python  scikit-learn
Exemple : Random Forest en quelques lignes
from [Link] import RandomForestClassifier
rf = RandomForestClassifier(
n_estimators=100, # nombre d'arbres
max_features='sqrt', # m = sqrt(d) en classification
max_depth=None, # arbres profonds
bootstrap=True, # tirage bootstrap
oob_score=True, # estimation OOB
random_state=0, # reproductibilite
n_jobs=-1 # utiliser tous les coeurs disponibles
)
[Link](X_train, y_train)
print("Score OOB :", rf.oob_score_)
print("Erreur OOB :", 1 - rf.oob_score_)
print("Importances :", rf.feature_importances_)
y_pred = [Link](X_test)

Avec les arbres et les forêts, il n'est généralement pas nécessaire de normaliser les features.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 28/39


✎ TD  Exercice 1  Vote majoritaire et score de conance
Une forêt de 7 arbres classie 3 patients. Voici les votes obtenus :

Patient A1 A2 A3 A4 A5 A6 A7
P1 Oui Oui Non Oui Oui Non Oui
P2 Non Non Oui Non Oui Non Non
P3 Oui Non Oui Oui Non Oui Non

1 Pour chaque patient, donner la prédiction nale de la forêt par vote majoritaire.
2 Pour chaque patient, calculer le score de conance associé à la classe Oui :
nombre d'arbres votant Oui
p̂(Oui) = .
nombre total d'arbres
3 Quel patient a la prédiction la plus incertaine ? Pourquoi ?

Pr. ADDOU ML  Ch.4  Forêts aléatoires 29/39


✓ Solution  Exercice 1  Correction
1 et 2. Vote majoritaire et score de conance

Patient Votes Oui / Non p̂(Oui) Prédiction


P1 5 Oui, 2 Non 5/7 = 0.714 Oui
P2 2 Oui, 5 Non 2/7 = 0.286 Non
P3 4 Oui, 3 Non 4/7 = 0.571 Oui

3. Prédiction la plus incertaine


Le patient P3 a la prédiction la plus incertaine, car :
4
p̂(Oui) = = 0.571
7
est proche de 0.5.
Le vote est donc serré :
4 votes Oui contre 3 votes Non.
Cela signie que les arbres sont davantage en désaccord pour P3 que pour P1 ou P2.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 30/39


✎ TD  Exercice 2  Bootstrap et OOB
On considère un jeu de données de 5 exemples :

{1, 2, 3, 4, 5}.

On tire 3 échantillons bootstrap :

Bootstrap 1 : {1, 1, 3, 4, 5} ;
Bootstrap 2 : {2, 2, 3, 3, 4} ;
Bootstrap 3 : {1, 2, 4, 5, 5}.

1 Pour chaque bootstrap, donner les exemples Out-Of-Bag (OOB), c'est-à-dire les exemples non tirés.
2 L'exemple 3 est OOB pour quel(s) arbre(s) ? Pour prédire sa classe par OOB, quels arbres feraient
voter ?
3 Théoriquement, quel pourcentage d'exemples est OOB en moyenne ? Comparer avec ce qu'on observe
ici.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 31/39


✓ Solution  Exercice 2  Correction (1/3)
1. Exemples Out-Of-Bag
Bootstrap 1 :
{1, 1, 3, 4, 5}
Les exemples présents sont 1, 3, 4, 5. L'exemple manquant est donc :
OOB1 = {2}.
Bootstrap 2 :
{2, 2, 3, 3, 4}
Les exemples présents sont 2, 3, 4. Les exemples manquants sont donc :
OOB2 = {1, 5}.
Bootstrap 3 :
{1, 2, 4, 5, 5}
Les exemples présents sont 1, 2, 4, 5. L'exemple manquant est donc :
OOB3 = {3}.
Pr. ADDOU ML  Ch.4  Forêts aléatoires 32/39
✓ Solution  Exercice 2  Correction (2/3)
2. Exemple 3
L'exemple 3 apparaît dans les bootstraps 1 et 2 :

3 ∈ {1, 1, 3, 4, 5}, 3 ∈ {2, 2, 3, 3, 4}.


Il n'apparaît pas dans le bootstrap 3 :

3∈
/ {1, 2, 4, 5, 5}.
Donc l'exemple 3 est OOB uniquement pour l'arbre 3.
Pour prédire sa classe par OOB, on ferait voter uniquement :

l'arbre 3.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 33/39


✓ Solution  Exercice 2  Correction (2/3)
3. Pourcentage théorique d'exemples OOB
Pour un exemple donné, la probabilité de ne jamais être tiré dans un bootstrap de taille n est :
1 n
 
1− .
n
Quand n est grand : 
1
n
1
1− −→ ≈ 0.368.
n e
Donc, en moyenne, environ :
36.8%
des exemples sont OOB pour un arbre donné.
Ici, comme n = 5 : 
1 5

1− = 0.85 = 0.328.
5
On s'attend donc à environ :
5 × 0.328 = 1.64
exemples OOB par bootstrap.
Dans notre exemple, on observe 1, 2 et 1 exemples OOB, soit une moyenne :
1+2+1
= 1.33.
3
Pr. ADDOU ML  Ch.4  Forêts aléatoires 34/39
✎ TD  Exercice 3  Questions conceptuelles
Vrai ou Faux. Justiez.

1 Augmenter le nombre d'arbres dans une forêt est généralement la principale cause du
sur-apprentissage.
2 Dans une Random Forest, on élague fortement chaque arbre.
3 La sélection aléatoire de features sert à décorréler les arbres.
4 L'erreur OOB fournit une estimation interne de la performance du modèle.
5 Une forêt a une variance plus élevée qu'un arbre seul.
6 Une forêt nécessite de normaliser les features.

Pr. ADDOU ML  Ch.4  Forêts aléatoires 35/39


✓ Solution  Exercice 3  Correction
1 ✗ Faux. Augmenter le nombre d'arbres B améliore souvent la stabilité du modèle jusqu'à saturation.
En pratique, le sur-apprentissage est surtout lié à la complexité des arbres, à la qualité des données et
au protocole d'évaluation, pas simplement au nombre d'arbres.
2 ✗ Faux. Dans une Random Forest, les arbres sont souvent laissés assez profonds an de garder un
biais faible. C'est l'agrégation de nombreux arbres diversiés qui réduit la variance, pas un élagage fort
de chaque arbre.
3 ✓ Vrai. La sélection aléatoire de features empêche les arbres d'utiliser toujours les mêmes features
dominantes. Les arbres deviennent plus diérents, leur corrélation moyenne ρ diminue, et la variance
de l'ensemble diminue aussi.
4 ✓ Vrai. L'erreur OOB utilise, pour chaque exemple, les arbres qui ne l'ont pas vu pendant
l'entraînement. Elle fournit donc une estimation interne de la performance. Cependant, pour une
évaluation nale rigoureuse, un jeu de test indépendant reste préférable lorsqu'il est disponible.
5 ✗ Faux. Une Random Forest a en général une variance plus faible qu'un arbre seul, grâce au bagging,
aux features aléatoires et à l'agrégation des prédictions.
6 ✗ Faux. Les arbres et les forêts n'ont généralement pas besoin de normalisation des features, car les
splits sont de la forme xj ≤ s . La normalisation est surtout importante pour les modèles sensibles à
l'échelle, comme KNN, SVM ou certains modèles entraînés par descente de gradient.
Pr. ADDOU ML  Ch.4  Forêts aléatoires 36/39
Récapitulatif de la Partie 3
☞ À retenir
Concept Idée clé
Problème d'un arbre Arbre puissant mais souvent instable : faible biais si profond, mais variance
seul élevée.
Sagesse des foules Agréger plusieurs modèles diversiés pour obtenir une prédiction plus stable.
Bootstrap Tirage de n exemples avec remise ; environ 63.2% d'exemples distincts et
36.8% d'exemples OOB.
Bagging Entraîner B arbres sur des échantillons bootstrap diérents, puis agréger par
vote ou moyenne.
Réduction de variance Si les arbres sont indépendants : σ2 /B ; s'ils sont corrélés : ρσ2 + 1−ρ
B
σ2 .
Random Forest Bagging
√ + sous-ensemble aléatoire de features à chaque n÷ud, souvent m≈
d en classication.
Décorrélation Les features aléatoires rendent les arbres plus diérents, donc diminuent leur
corrélation moyenne ρ.
Erreur OOB Estimation interne de la performance à partir des exemples non vus par certains
arbres.
Importance des fea- Importance calculée par réduction d'impureté cumulée, avec prudence dans
tures l'interprétation.
Pr. ADDOU ML  Ch.4  Forêts aléatoires 37/39
Récapitulatif complet du Chapitre 4

Partie 1 : Structure Partie 2 : Construction Partie 3 : Forêts


✓ Anatomie de l'arbre ✓ Entropie et Gini ✓ Bootstrap et bagging
✓ Prédiction par chemin ✓ Gain d'information ✓ Random Forest
✓ Frontière en escalier ✓ Construction CART ✓ Erreur OOB
✓ Classication vs régression ✓ Attributs numériques ✓ Importance des features
✓ Overtting et élagage

Chapitre suivant  Ch. 5

Machines à vecteurs de support (SVM)

Pr. ADDOU ML  Ch.4  Forêts aléatoires 38/39


Fin du Chapitre 4
Arbres de décision et forêts aléatoires
Vous maîtrisez maintenant :

Structure d'un arbre • Prédiction par chemin

Entropie, Gini et gain d'information

Construction CART • Attributs numériques

Overtting, élagage, bagging et Random Forest

Erreur OOB • Importance des features

Pr. ADDOU ML  Ch.4  Forêts aléatoires 39/39


Module : Machine Learning
Chapitre 5  Partie 1/3 : Machines à Vecteurs de Support (SVM)

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.5  SVM 1/37


Plan du Chapitre 5  Trois algorithmes classiques
▶ Partie 1 : SVM  Machines à vecteurs de support
Partie 2 : KNN  k plus proches voisins
Partie 3 : Naive Bayes  Classieur bayésien naïf

Dans cette première partie, nous étudions les SVM, une famille de classieurs qui cherchent une
frontière de décision robuste, en maximisant la marge entre les classes.

Au programme :
1 La notion de marge : choisir la frontière la plus robuste ;
2 Le classieur à marge maximale et les vecteurs de support ;
3 La marge souple et le paramètre C ;
4 La hinge loss ;
5 L'astuce du noyau pour traiter les frontières non linéaires.

Prérequis : hyperplan de décision wT x + b = 0, régression logistique et compromis biaisvariance.

Pr. ADDOU ML  Ch.5  SVM 2/37


Le problème : quelle frontière choisir ?

★ Rappel du Chapitre 3
La régression logistique apprend une frontière linéaire de la forme wT x + b = 0. Lorsque les
données sont linéairement séparables, plusieurs frontières peuvent correctement séparer les
deux classes. La question est donc : laquelle choisir ?
Plusieurs frontières possibles La frontière choisie par le SVM
marge
x2

x2
marge

frontière

x1 x1

Plusieurs droites peuvent séparer correctement les Le SVM choisit la frontière qui maximise la marge,
deux classes. Mais elles ne laissent pas toutes le c'est-à-dire l'espace libre entre les deux classes.
même espace de sécurité.

Pr. ADDOU ML  Ch.5  SVM 3/37


Le problème : quelle frontière choisir ?

☞ À retenir
Le SVM ne cherche pas seulement une frontière qui sépare les classes. Il cherche la frontière
la plus robuste, c'est-à-dire celle qui reste la plus éloignée possible des points d'entraînement
les plus proches.

Pr. ADDOU ML  Ch.5  SVM 4/37


Dénition de la marge
Marge
Pour un hyperplan de décision, la marge est la distance entre la frontière et les points
d'entraînement les plus proches. Le SVM cherche l'hyperplan qui rend cette distance aussi
grande que possible : on parle de classieur à marge maximale.

☞ À retenir
Les points entourés, situés sur les
lignes pointillées, sont les vecteurs de
marge support. Ce sont les points les plus
bords de marge proches de la frontière : ils détermi-
x2

nent la position de l'hyperplan opti-


mal.
frontière
vecteurs de support

x1
Pr. ADDOU ML  Ch.5  SVM 5/37
Formalisation : l'hyperplan et la marge

★ Convention de codage des classes


Pour le SVM, on code les classes par yi ∈ {−1, +1}. L'hyperplan séparateur est déni par :

f (x) = wT x + b.

La frontière de décision est f (x) = 0 et la prédiction est :

ŷ = sign f (x) .


Pr. ADDOU ML  Ch.5  SVM 6/37


Formalisation : l'hyperplan et la marge

Math  Distance et contraintes de marge


P

La distance d'un point x à l'hyperplan

H: wT x + b = 0

est :
wT x + b
d(x, H) = .
∥w∥
Dans le cas linéairement séparable, on peut choisir l'échelle de w et b de sorte que les points
les plus proches vérient :
yi wT xi + b = 1.


Alors tous les points d'entraînement satisfont :

yi wT xi + b ≥ 1.


Pr. ADDOU ML  Ch.5  SVM 7/37


Formalisation : l'hyperplan et la marge

☞ À retenir
Les deux bords de la marge sont les hyperplans wT x + b = +1 et wT x + b = −1. La
1
demi-marge vaut et la largeur totale de la marge vaut :
∥w∥

2
.
∥w∥

1
Ainsi, maximiser la marge revient à minimiser ∥w∥, ou plus pratiquement ∥w∥2 .
2

Pr. ADDOU ML  Ch.5  SVM 8/37


Le problème d'optimisation : marge dure

SVM à marge dure


Lorsque les données sont linéairement séparables, le SVM cherche :
1
min ∥w∥2 sous contraintes yi (wT xi + b) ≥ 1 ∀i.
w,b 2

C'est un problème d'optimisation quadratique sous contraintes.


Il est convexe : tout minimum local est donc un minimum global.
1
Minimiser ∥w∥2 revient à maximiser la marge.
2
Les contraintes imposent que tous les points soient bien classés et situés sur ou en dehors de la
marge.

Pr. ADDOU ML  Ch.5  SVM 9/37


Le problème d'optimisation : marge dure

Vecteurs de support
Les vecteurs de support sont les points pour lesquels la contrainte est active :

yi (wT xi + b) = 1.

Ils se trouvent exactement sur les bords de la marge.

☞ À retenir
La frontière optimale est déterminée par les points les plus proches : les vecteurs de support. Les
points loin de la marge n'inuencent généralement pas directement l'hyperplan nal. C'est pourquoi
le SVM est souvent qualié de modèle parcimonieux.

Pr. ADDOU ML  Ch.5  SVM 10/37


Exemple complet à la main (1/2)
Exemple : 4 points en 2D, linéairement séparables
Point x1 x2 y
P1 2 1 −1
P2 2 2 −1
P3 4 1 +1
P4 4 2 +1

Observation : les points de classe −1 sont sur la droite x1 = 2, tandis que les points de classe
+1 sont sur la droite x1 = 4.
Par symétrie, la meilleure frontière est donc la droite verticale située au milieu : x1 = 3.
Équation de la frontière : x1 − 3 = 0.
On peut donc prendre :

w = (1, 0), b = −3, f (x) = wT x + b = x1 − 3.

Pr. ADDOU ML  Ch.5  SVM 11/37


Exemple complet à la main (1/2)

Vérication de la forme canonique : les points les plus proches doivent vérier

yi f (xi ) = 1.

Par exemple :
P1 = (2, 1), y = −1 : yf (P1 ) = (−1)(2 − 3) = 1
P3 = (4, 1), y = +1 : yf (P3 ) = (+1)(4 − 3) = 1

Pr. ADDOU ML  Ch.5  SVM 12/37


Exemple complet à la main (2/2)
Solution :
w = (1, 0), b = −3, f (x) = x1 − 3. frontière
∥w∥ = 1 ; 3
nouveau point
1
demi-marge = =1;
∥w∥ 2

x2
2
largeur totale de la marge = =2;
∥w∥ 1
largeur totale = 2
vecteurs de support : les 4 points, car ils sont
tous sur les bords : |wT x + b| = 1. 0
2 3 4

Prédiction d'un nouveau point x = (3.5, 2.5) : x1


f (x) = 3.5 − 3 = 0.5 > 0 ⇒ ŷ = +1.
• classe −1 ▲ classe +1 ■ nouveau point

☞ À retenir
La frontière est placée au milieu du couloir vide entre les deux classes. C'est le principe du SVM :
choisir l'hyperplan qui maximise la marge et reste le plus éloigné possible des points les plus proches.
Pr. ADDOU ML  Ch.5  SVM 13/37
Quand les données ne sont pas séparables

★ Le problème de la marge dure


La marge dure exige que tous les points soient correctement classés et situés en dehors de
la marge. Si les classes se chevauchent, ou si les données contiennent du bruit, le problème
peut devenir impossible à satisfaire. Il faut donc autoriser certaines violations de marge.

Pr. ADDOU ML  Ch.5  SVM 14/37


Quand les données ne sont pas séparables
Marge souple (soft margin)
On introduit des variables d'écart ξi ≥ 0 qui mesurent le degré de violation de la marge :
n
1
min ∥w∥2 + C
X
ξi
w,b,ξ 2
i=1

sous contraintes : yi (wT xi + b) ≥ 1 − ξi , ξi ≥ 0.

ξi = 0 : point bien classé, sur ou en dehors de la marge ;


0 < ξi < 1 : point dans la marge, mais encore du bon côté ;
ξi = 1 : point exactement sur la frontière de décision ;
ξi > 1 : point mal classé.

☞ À retenir
Le terme C ξi pénalise les violations de marge. Le paramètre C contrôle le compromis entre une
P
i
marge large et un faible nombre de violations.
Pr. ADDOU ML  Ch.5  SVM 15/37
Le rôle du paramètre C

Exemple : C petit : régularisation forte Exemple : C grand : régularisation faible


Les violations de marge sont faiblement Les violations de marge sont fortement
pénalisées pénalisées
La marge peut rester large Le modèle essaie de corriger davantage les
erreurs
Modèle plus simple
La marge peut devenir plus étroite
Plus de biais, moins de variance
Moins de biais, plus de variance
Risque : undertting
Risque : overtting

★ Analogie avec la régularisation


Le paramètre C joue un rôle inverse à celui d'un paramètre de régularisation λ :
C petit ⇐⇒ régularisation forte : modèle plus simple, risque d'undertting ;
C grand ⇐⇒ régularisation faible : modèle plus exible, risque d'overtting.

Pr. ADDOU ML  Ch.5  SVM 16/37


Le rôle du paramètre C

☞ À retenir
Le paramètre C contrôle le compromis entre large marge et respect des exemples
d'entraînement. On le choisit par validation croisée, comme k , λ ou max_depth.

Pr. ADDOU ML  Ch.5  SVM 17/37


La hinge loss

★ Reformuler le SVM comme une minimisation de perte


La marge souple peut se réécrire comme la minimisation d'une fonction de perte régular-
isée. L'idée est proche de la régression logistique, mais la perte utilisée n'est pas la même.

Hinge loss (perte charnière)


Pour f (x) = wT x + b , la hinge loss est :

ℓ(y , f (x)) = max 0, 1 − yf (x) .




La quantité yf (x) mesure si le point est du bon côté de la frontière et avec quelle marge.

Pr. ADDOU ML  Ch.5  SVM 18/37


La hinge loss
3 mal dans la au-delà Lecture :
classé marge de la marge
marge : yf (x) = 1
Si yf (x) < 0 : le point est mal classé.
hinge loss
2 Si 0 < yf (x) < 1 : le point est bien classé, mais
perte

dans la marge.
1 log-loss Si yf (x) ≥ 1 : le point est bien classé et sur ou
au-delà de la marge, donc la hinge loss vaut 0.

0 Comparaison : la hinge loss devient exactement


−1 0 1 2 nulle au-delà de la marge, alors que la log-loss
y f (x) diminue progressivement sans devenir nulle.

☞ À retenir
Le SVM peut s'écrire sous la forme
n
1
min ∥w∥2 + C
X
max 0, 1 − yi f (xi ) .

w,b 2
i=1

Le premier terme favorise une grande marge ; le second pénalise les violations de marge.
Pr. ADDOU ML  Ch.5  SVM 19/37
Les frontières non linéaires
★ Limite du SVM linéaire
Certains problèmes ne sont pas linéairement séparables dans l'espace original. Par exemple,
une classe peut se trouver au centre et l'autre autour. Dans ce cas, aucune droite ne sépare
correctement les deux classes.
L'idée est alors de transformer les données dans un espace de plus grande dimension, où
une séparation linéaire devient possible.
Espace original : non linéairement Après transformation ϕ
séparable frontière linéaire
x2

z = ∥x∥2
2
x1 En ajoutant z = ∥x∥ , les points du centre ont de
Une droite ne sut pas. Il faudrait une frontière petites valeurs de z , alors que les points extérieurs ont
circulaire. de grandes valeurs.
Pr. ADDOU ML  Ch.5  SVM 20/37
Les frontières non linéaires

☞ À retenir
Transformer x en ϕ(x) permet parfois de rendre les données linéairement séparables. Mais
calculer explicitement ϕ(x) peut devenir très coûteux, surtout si l'espace transformé est de
très grande dimension.

Pr. ADDOU ML  Ch.5  SVM 21/37


L'astuce du noyau (kernel trick)
Math  Observation clé
P

Dans la formulation duale du SVM, le vecteur normal de l'hyperplan peut s'écrire comme une
combinaison des points d'entraînement : n
X
w= αi yi xi .
i=1

Ainsi, la fonction de décision devient : n


X
f (x) = αi yi xT
i x + b.
i=1

Les données apparaissent donc à travers des produits scalaires :


xT
i xj .

Si l'on transforme les données par une application ϕ, ces produits deviennent :

ϕ(xi )T ϕ(xj ).
Pr. ADDOU ML  Ch.5  SVM 22/37
L'astuce du noyau (kernel trick)

Noyau (kernel)
Un noyau est une fonction qui calcule directement le produit scalaire dans l'espace transformé,
sans calculer explicitement ϕ(x) :
K (xi , xj ) = ϕ(xi )T ϕ(xj ).
L'astuce du noyau consiste donc à remplacer :
xT
i xj par K (xi , xj ).

Pr. ADDOU ML  Ch.5  SVM 23/37


L'astuce du noyau (kernel trick)

☞ À retenir
Idée centrale : on travaille comme si les données avaient été projetées dans un espace de
grande dimension, mais sans construire cet espace explicitement.
Attention : pour n exemples, il faut souvent calculer de nombreuses valeurs K (xi , xj ), ce qui
peut devenir coûteux lorsque n est grand.

Pr. ADDOU ML  Ch.5  SVM 24/37


Les noyaux usuels
Trois noyaux classiques
Noyau Formule Idée principale

Linéaire K (x, x′ ) = xT x′ Aucune transformation non linéaire. Adapté


lorsque les données sont déjà presque linéairement
séparables.
Polynomial K (x, x′ ) = (xT x′ + c)d Permet de modéliser des interactions entre vari-
ables jusqu'au degré d .
RBF gaussien K (x, x′ ) = exp −γ∥x − x′ ∥2 Permet d'obtenir des frontières non linéaires très

exibles.

Noyau linéaire : simple, rapide et plus interprétable. Il est souvent ecace en grande dimension,
par exemple pour des données textuelles.
Noyau polynomial : utile lorsque l'on veut capturer des interactions non linéaires d'ordre limité.
Le degré d doit être choisi.
Noyau RBF : très courant en pratique. Le paramètre γ contrôle la portée d'inuence des points :
γ grand ⇒ inuence locale, frontière plus sinueuse ; γ petit ⇒ inuence large, frontière plus lisse.
Pr. ADDOU ML  Ch.5  SVM 25/37
Les noyaux usuels

☞ À retenir
Les hyperparamètres à choisir par validation croisée sont : le type de noyau, ses paramètres
(d , c ou γ ), et le paramètre de marge C .

Pr. ADDOU ML  Ch.5  SVM 26/37


Le SVM en pratique  scikit-learn
Exemple : SVM à noyau RBF en quelques lignes
from [Link] import SVC
from [Link] import StandardScaler
from [Link] import make_pipeline

# Le pipeline applique d'abord la normalisation,


# puis entra\^ine le SVM.
modele = make_pipeline(
StandardScaler(),
SVC(kernel='rbf', C=1.0, gamma='scale')
)

[Link](X_train, y_train)
y_pred = [Link](X_test)

Attention : le SVM est sensible à l'échelle des variables, car il utilise des distances ou des produits
scalaires. Il est donc important de normaliser les données, par exemple avec StandardScaler.
Le Pipeline permet d'apprendre la normalisation uniquement sur X_train, puis de l'appliquer
correctement à X_test.
Pr. ADDOU ML  Ch.5  SVM 27/37
SVM : forces, faiblesses et comparaison
Forces Faiblesses

Ecace en grande dimension Peut devenir lent sur de grands jeux


de données
Marge maximale : bonne capacité de Choix du noyau et des hyper-
généralisation paramètres parfois délicat
Modèle parcimonieux : dépend Sensible à l'échelle des variables
surtout des vecteurs de support
Noyaux : possibilité de frontières non Moins interprétable avec des noyaux
linéaires non linéaires
Bonnes performances avec un bon Ne fournit pas naturellement des prob-
choix de C et du noyau abilités calibrées

SVM vs régression logistique : les deux peuvent apprendre une frontière linéaire. La régression
logistique minimise la log-loss et fournit directement des probabilités. Le SVM, lui, cherche une
frontière à marge maximale en minimisant la hinge loss. Avec un noyau, le SVM peut aussi
produire des frontières non linéaires.
Pr. ADDOU ML  Ch.5  SVM 28/37
✎ TD  Exercice 1  Marge et vecteurs de support (12 min)
On considère les 4 points suivants en 2D :
Point x1 x2 y
A 1 0 −1
B 0 1 −1
C 3 0 +1
D 0 3 +1

On propose la frontière dénie par :


w = (1, 1), b = −2, f (x) = wT x + b = x1 + x2 − 2.
1 Calculer f (x) pour chacun des 4 points.
2 Vérier que tous les points sont bien classés : yi f (xi ) > 0.
3 Calculer yi f (xi ). Quels points sont sur le bord de la marge ?
4 En déduire les vecteurs de support.
2
5 Calculer la largeur totale de la marge : ∥w∥
.
6 Prédire la classe du point x = (2, 2).
Pr. ADDOU ML  Ch.5  SVM 29/37
✓ Solution  Exercice 1
On a : f (x) = x1 + x2 − 2.

Point y f (x) y f (x) Bien classé ? Rôle


A = (1, 0) −1 1 + 0 − 2 = −1 (−1)(−1) = 1 oui vecteur de support
B = (0, 1) −1 0 + 1 − 2 = −1 (−1)(−1) = 1 oui vecteur de support
C = (3, 0) +1 3+0−2=1 (+1)(1) = 1 oui vecteur de support
D = (0, 3) +1 0+3−2=1 (+1)(1) = 1 oui vecteur de support

14. Tous les points sont bien classés car yi f (xi ) > 0. De plus, tous les points vérient :

yi f (xi ) = 1.

Ils sont donc tous situés sur le bord de la marge : les 4 points sont des vecteurs de support.

5. ∥w∥ = 12 + 12 = 2.
p

La largeur totale de la marge vaut donc : 2 = √2 = 2 ≈ 1.41.



∥w∥ 2
6. Pour le point x = (2, 2) : f (x) = 2 + 2 − 2 = 2 > 0. Donc : ŷ = +1.
Pr. ADDOU ML  Ch.5  SVM 30/37
✎ TD  Exercice 2  Hinge loss et paramètre C (10 min)
On utilise la frontière
f (x) = x1 + x2 − 2
de l'exercice 1.
1 Rappeler la formule de la hinge loss :
ℓi = max 0, 1 − yi f (xi ) ,


puis calculer ℓi pour les points A et C .


2 On ajoute un point bruité
E = (1.5, 1) de classe yE = −1.
Calculer f (E ), puis yE f (E ), puis sa hinge loss. Ce point est-il bien classé ?
3 On hésite entre CSVM = 0.1 et CSVM = 100. Lequel donnera généralement la marge la plus large ?
Lequel risque davantage l'overtting ?
4 Vrai ou faux : un point situé loin du bon côté de la marge contribue à la hinge loss. Justier.

Pr. ADDOU ML  Ch.5  SVM 31/37


✓ Solution  Exercice 2
1. Hinge loss ℓi = max 0, 1 − yi f (xi ) .


D'après l'exercice 1 :
Point A :
yA f (A) = 1 ⇒ ℓA = max(0, 1 − 1) = 0.
Point C :
yC f (C ) = 1 ⇒ ℓC = max(0, 1 − 1) = 0.
Les points exactement sur la marge ont une perte nulle, mais ils restent importants : ce sont des vecteurs
de support.
2. Point bruité E
E = (1.5, 1), yE = −1.

f (E ) = 1.5 + 1 − 2 = 0.5.
Donc :
yE f (E ) = (−1) × 0.5 = −0.5.
Comme yE f (E ) < 0, le point E est mal classé.
Sa hinge loss est :
ℓE = max 0, 1 − yE f (E ) = max(0, 1 − (−0.5)) = 1.5.


Pr. ADDOU ML  Ch.5  SVM 32/37


✓ Solution  Exercice 2
3. Eet du paramètre CSVM
CSVM = 0.1 : les violations de marge sont faiblement pénalisées. Le modèle accepte
davantage d'erreurs pour garder une marge large.
CSVM = 100 : les violations de marge sont fortement pénalisées. Le modèle cherche à
corriger davantage les erreurs, ce qui peut produire une marge plus étroite et un risque
plus fort d'overtting.

4. Faux.
Un point bien classé et situé au-delà de la marge vérie :

yi f (xi ) ≥ 1.
Donc :
1 − yi f (xi ) ≤ 0 ⇒ ℓi = 0.
Seuls les points dans la marge ou mal classés contribuent à la hinge loss.

Pr. ADDOU ML  Ch.5  SVM 33/37


✎ TD  Exercice 3  Noyaux (8 min)
Répondre par Vrai ou Faux, puis justier brièvement.
1 L'astuce du noyau consiste à calculer explicitement ϕ(x) pour chaque point.
2 Le noyau RBF peut produire des frontières de décision non linéaires.
3 Pour des données de grande dimension, comme les données textuelles, un noyau linéaire est souvent
un bon choix.
4 Augmenter γ dans le noyau RBF rend la frontière plus lisse.
5 En pratique, le SVM nécessite une normalisation des features lorsque celles-ci sont sur des échelles
diérentes.

Pr. ADDOU ML  Ch.5  SVM 34/37


✓ Solution  Exercice 3  Noyaux
1 Faux. L'astuce du noyau évite justement de calculer explicitement ϕ(x). On calcule directement :

K (xi , xj ) = ⟨ϕ(xi ), ϕ(xj )⟩.

2 Vrai. Le noyau RBF permet de construire des frontières de décision non linéaires et très exibles.
3 Vrai. En grande dimension, notamment pour le texte, un noyau linéaire est souvent ecace, plus
rapide et plus simple à régler qu'un noyau non linéaire.
4 Faux. Dans le noyau RBF, un γ grand donne une inuence plus locale des points d'entraînement. La
frontière devient plus sinueuse, avec un risque plus élevé d'overtting. Un γ petit donne une frontière
plus lisse.
5 Vrai. Le SVM repose sur des produits scalaires, des marges et parfois des distances implicites. Si les
features ont des échelles très diérentes, certaines peuvent dominer le calcul. La normalisation est
donc nécessaire en pratique.

Pr. ADDOU ML  Ch.5  SVM 35/37


Récapitulatif de la Partie 1  SVM
☞ À retenir
Concept Idée clé

Marge Distance entre la frontière et les points les plus proches ; le SVM cherche à la
maximiser.
1
Marge maximale Maximiser la marge revient à minimiser ∥w∥2 sous les contraintes yi (wT xi + b) ≥
2
1.
Vecteurs de support Points situés sur les bords de la marge ; ils jouent un rôle déterminant dans la
position de la frontière.
2
Largeur totale de marge Les deux bords sont wT x + b = +1 et wT x + b = −1 ; la largeur totale vaut .
∥w∥
Marge souple Introduit des variables d'écart ξi pour autoriser certaines violations de marge.
Paramètre C C petit → violations faiblement pénalisées, marge plus large ; C grand → violations
fortement pénalisées, modèle plus exible.
Hinge loss max(0, 1 − yf (x)) ; elle est nulle pour les points bien classés sur ou au-delà de la
marge.
Kernel trick Remplace les produits scalaires xT i xj par K (xi , xj ) pour obtenir des frontières non
linéaires.
Noyaux usuels Linéaire, polynomial (xT x′ + c)d , RBF exp(−γ∥x − x′ ∥2 ).

Pr. ADDOU ML  Ch.5  SVM 36/37


Fin de la Partie 1
SVM  Machines à vecteurs de support
Suite : Partie 2  KNN
Les k plus proches voisins
Distances, choix de k et frontière de décision
Un algorithme non paramétrique à base d'instances

Pause 10 minutes

Pr. ADDOU ML  Ch.5  SVM 37/37


Module : Machine Learning
Chapitre 5  Partie 2/3 : Les K plus proches voisins (KNN)

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.5  KNN 1/28


Plan  où en sommes-nous dans le Chapitre 5 ?
Partie 1 : SVM  Machines à vecteurs de support ✓
▶ Partie 2 : KNN  k plus proches voisins
Partie 3 : Naive Bayes  Classieur bayésien naïf

Dans cette deuxième partie, nous étudions le KNN, un algorithme simple et intuitif qui classe un
nouvel exemple en regardant les exemples d'entraînement les plus proches.

Au programme :
1 Le principe du KNN : classer par ressemblance ;
2 Les distances : euclidienne, Manhattan, Minkowski, cosinus ;
3 L'importance de la normalisation des variables ;
4 Le choix de k : compromis biaisvariance ;
5 La frontière de décision et le KNN pondéré ;
6 Le KNN pour la régression, son coût et ses limites.

Contraste avec le SVM : le SVM apprend une frontière de décision pendant l'entraînement. Le
KNN, lui, ne construit pas de modèle explicite : il mémorise les données et décide au moment de la
prédiction. On dit que c'est un algorithme non paramétrique et paresseux (lazy learning).
Pr. ADDOU ML  Ch.5  KNN 2/28
L'idée intuitive
★ Dis-moi qui sont tes voisins, je te dirai qui tu es

Pour classer un nouveau point, on cherche les exemples d'entraînement qui lui ressemblent le
plus, c'est-à-dire ses plus proches voisins. La classe prédite est ensuite la classe majoritaire
parmi ces voisins.

Ici, on choisit les 5 plus proches voisins du point q .


Parmi ces 5 voisins : classe A : 3 classe B : 2.
Donc le vote majoritaire donne : ŷ (q) = A.
q
Le KNN ne calcule pas une équation de frontière pendant
x2

l'entraînement : il mémorise simplement les données.


On dit donc que c'est un algorithme :
k =5 à base d'instances (instance-based),
vote : A = 3, B = 2
et paresseux (lazy learning).
x1
• classe A ▲ classe B ⋆ point q à classer

Pr. ADDOU ML  Ch.5  KNN 3/28


L'algorithme KNN
Classication par les k plus proches voisins

Pour classer un nouveau point x :


1 Calculer la distance entre x et les points d'entraînement.
2 Identier les k points les plus proches , c'est-à-dire ceux qui ont les plus petites distances.
3 Compter les classes présentes parmi ces k voisins.
4 Retourner la classe majoritaire : c'est le principe du vote.

Phase d'entraînement : le KNN ne cherche pas à apprendre des paramètres comme w et b . Il


mémorise principalement les données d'entraînement. La décision est donc prise au moment de la
prédiction, en comparant le nouveau point aux exemples stockés.

☞ À retenir
Deux choix déterminent fortement le comportement du KNN : la distance utilisée et la valeur de k .
Ces deux choix doivent être adaptés aux données.

Pr. ADDOU ML  Ch.5  KNN 4/28


Les distances usuelles

Mesures de distance entre x et x′ en dimension d

Mesure Formule

qP
− xj′ )2
d
Euclidienne (L2 ) d(x, x′ ) = j=1 (xj
Pd
Manhattan (L1 ) d(x, x′ ) = j=1 |xj − xj′ |
P 1/p
d
Minkowski (Lp ) d(x, x′ ) = |xj − xj′ |p
j=1 (p ≥ 1)
x x
T ′
Cosinus (dissimilarité) dcos (x, x′ ) = 1 − (x, x′ ̸= 0)
∥x∥ ∥x′ ∥

Pr. ADDOU ML  Ch.5  KNN 5/28


La normalisation est indispensable
★ Le piège des échelles diérentes

Le KNN repose sur des distances. Si une variable a une grande échelle, elle peut dominer
le calcul de distance et masquer l'eet des autres variables.

Exemple : Âge (ans) vs Salaire (kMAD)

Deux individus : A = (âge 30, salaire 2000), B = (âge 50, salaire 2050).

La distance euclidienne vaut : d(A, B) = (30 − 50)2 + (2000 − 2050)2 = 400 + 2500 ≈ 53.9.
p

La diérence d'âge est de 20 ans, ce qui est important. Pourtant, dans le calcul, elle contribue
seulement par 400, alors que la diérence de salaire de 50 kMAD contribue par 2500.
le salaire domine la distance simplement parce qu'il est mesuré sur une plus grande échelle.

☞ À retenir
Solution : normaliser les variables avant d'appliquer le KNN

Pr. ADDOU ML  Ch.5  KNN 6/28


Exemple : classer un point avec KNN (1/2)
Exemple : 6 points d'entraînement et un point à classer q = (3, 3)
6
Point x1 x2 Classe P6

P4
P1 2 3 A 4
P1 q P5
P2 1 1 A

x2
P3 4 1 A 2

4 4 B
P2 P3
P4
P5 5 3 B 0
0 2 4 6
P6 5 5 B x1
• classe A ▲ classe B ⋆ à classer
Point à classer : q = (3, 3).

Étape 1 : calculer les distances euclidiennes à q = (3, 3)


d(q, Pi ) = (3 − x1i )2 + (3 − x2i )2 .
p

Point P1 (A) P2 (A) P3 (A) P4 (B) P5 (B) P6 (B)


2
d 1 8 5 2 4 8
d 1.00 2.83 2.24 1.41 2.00 2.83

Pr. ADDOU ML  Ch.5  KNN 7/28


Exemple : l'eet de k (2/2)

Étape 2 : trier par distance croissante :

P1 (A, 1.00) ≺ P4 (B, 1.41) ≺ P5 (B, 2.00) ≺ P3 (A, 2.24) ≺ {P2 (A, 2.83), P6 (B, 2.83)}.

Les points P2 et P6 sont à la même distance de q . Pour terminer l'exemple, on adopte la convention
suivante : en cas d'égalité de distance, on conserve l'ordre du tableau. Ainsi, P2 est placé avant P6 .

Pr. ADDOU ML  Ch.5  KNN 8/28


Exemple : l'eet de k (2/2)
Étape 2 : trier par distance croissante :

P1 (A, 1.00) ≺ P4 (B, 1.41) ≺ P5 (B, 2.00) ≺ P3 (A, 2.24) ≺ {P2 (A, 2.83), P6 (B, 2.83)}.
Étape 3 : vote selon k :

k Voisins retenus Décision


1 P1 (A) A
3 P1 (A), P4 (B), P5 (B) → 1 A, 2 B B
5 P1 (A), P4 (B), P5 (B), P3 (A), P2 (A) → 3 A, 2 B A

☞ À retenir
Le choix de k peut changer la prédiction : ici k = 1 → A, k = 3 → B et k = 5 → A. Le paramètre
k est donc un hyperparamètre important, à choisir par validation croisée. En classication binaire,
on utilise souvent un k impair pour limiter les égalités de vote, mais des égalités de distance peuvent
aussi apparaître.

Pr. ADDOU ML  Ch.5  KNN 9/28


Comment choisir k en pratique ?
★k n'est pas appris automatiquement

Dans KNN, il n'y a pas de phase d'apprentissage de paramètres comme w et b . Le modèle mémorise
les données. Mais il faut choisir un hyperparamètre essentiel :
k = nombre de voisins utilisés pour voter.

Exemple : Procédure standard k Accuracy CV Erreur CV


1 Choisir une liste de valeurs candidates : k ∈ {1, 3, 5, 7, 9, . . .}. 1 0.82 0.18
2 Pour chaque valeur de k , évaluer le modèle par validation croisée. 3 0.86 0.14
5 0.89 0.11
3 Garder la valeur de k qui donne la meilleure performance moyenne. 7 0.87 0.13
9 0.84 0.16
4 Utiliser ensuite cette valeur de k pour l'évaluation nale.
Ici, la meilleure valeur est : k = 5

☞ À retenir
On ne choisit pas k sur l'ensemble de test. Le test doit rester réservé à l'évaluation nale. Le choix
de k se fait sur validation ou par validation croisée.
Pr. ADDOU ML  Ch.5  KNN 10/28
Le KNN pondéré (weighted KNN)
★ Tous les voisins ne se valent pas

Dans le vote simple, un voisin très proche compte autant qu'un voisin plus lointain. Le KNN
pondéré corrige cette limite en donnant plus de poids aux voisins les plus proches.

Vote pondéré par la distance

Chaque voisin i reçoit un poids qui décroît avec sa distance di au point à classer. Par exemple
:
1 1
wi = ou wi = .
d2
i di
La classe prédite est celle qui maximise la somme des poids de ses voisins :
X
ŷ = arg max wi ⊮(yi = c).
c
i∈Nk (x)

Remarque : si di = 0, le voisin est identique au point à classer ; on lui donne alors une
priorité particulière an d'éviter la division par zéro.

Pr. ADDOU ML  Ch.5  KNN 11/28


Le KNN pondéré (weighted KNN)
Exemple : Reprise de l'exemple, k =3
Les 3 plus proches voisins sont : P1 (A, d = 1), P4 (B, d = 1.41), P5 (B, d = 2).
Avec les poids wi = 1/di2 :
Classe A :
1
= 1.00.
12
Classe B :
1 1
+ 2 ≈ 0.50 + 0.25 = 0.75.
1.412 2
Décision pondérée : A , car 1.00 > 0.75. Le vote simple donnait pourtant B avec 2 voisins contre
1.

☞ À retenir
La pondération peut changer la décision : un voisin très proche peut peser plus fortement que
plusieurs voisins plus éloignés. Elle peut aussi limiter certains eets d'égalité, mais le choix de k reste
important.

Pr. ADDOU ML  Ch.5  KNN 12/28


KNN pour la régression
★ Le KNN n'est pas réservé à la classication

Pour prédire une valeur numérique, on ne fait plus un vote majoritaire. On prend la
moyenne des valeurs observées chez les k plus proches voisins.

KNN régression

Soit Nk (x) l'ensemble des k plus proches voisins de x. La prédiction est :

1 X
ŷ (x) = yi .
k
i∈Nk (x)

On peut aussi utiliser une moyenne pondérée, par exemple avec wi = 1/di :

P
i∈Nk (x) wi yi
ŷ (x) = P .
i∈Nk (x) wi

Pr. ADDOU ML  Ch.5  KNN 13/28


KNN pour la régression

Exemple : Prédire le prix d'un appartement

Les 3 appartements les plus similaires, selon la surface, le quartier, l'état du logement, etc., coûtent :

180k, 200k, 220k EUR.

Avec k = 3, la prédiction KNN est :


180 + 200 + 220
ŷ = = 200k EUR.
3

☞ À retenir
En classication, le KNN utilise un vote majoritaire. En régression, il utilise une moyenne. Dans
les deux cas, les choix importants restent les mêmes : distance, valeur de k et normalisation des
variables.

Pr. ADDOU ML  Ch.5  KNN 14/28


Coût, dimension et limites

P
Math  Complexité d'une prédiction

Pour classer un nouveau point, le KNN calcule sa distance à tous les n exemples
d'entraînement, chacun décrit par d variables :

O(n · d).
Il faut ensuite trouver les k plus proches voisins :

O(n log n) avec un tri complet,

ou environ
O(n log k) avec une sélection partielle.

Ainsi, la prédiction peut devenir coûteuse lorsque n est grand.

Mémoire : le KNN doit conserver les données d'entraînement, soit environ O(n · d) valeurs.

Pr. ADDOU ML  Ch.5  KNN 15/28


Le KNN en pratique  scikit-learn
Exemple : KNN en quelques lignes

from [Link] import KNeighborsClassifier


from [Link] import StandardScaler
from [Link] import make_pipeline
modele = make_pipeline(
StandardScaler(), # normalisation des variables
KNeighborsClassifier(
n_neighbors=5, # nombre de voisins : k
weights='distance', # vote pondéré par la distance
metric='euclidean' # distance euclidienne
)
)
[Link](X_train, y_train)
y_pred = [Link](X_test)

Paramètres clés : n_neighbors pour choisir k , weights pour choisir un vote uniforme ou pondéré, et metric
pour choisir la distance.
Le Pipeline est important : il apprend la normalisation sur X_train uniquement, puis l'applique correctement
à X_test. Cela évite une fuite d'information entre l'entraînement et le test.
Pr. ADDOU ML  Ch.5  KNN 16/28
KNN : forces, faiblesses et comparaison

Forces Faiblesses

Très simple, intuitif et facile à expliquer Prédiction parfois lente : environ O(nd) par point
Pas d'apprentissage paramétrique complexe Mémoire importante : il faut stocker les données
d'entraînement
Frontières non linéaires naturelles Sensible aux variables non pertinentes ou bruitées
Utilisable en classication et en régression Sensible à l'échelle des variables : normalisation
nécessaire en pratique
Peu d'hyperparamètres principaux : k , dis- Se dégrade en grande dimension : éau de la di-
tance, pondération mension

Pr. ADDOU ML  Ch.5  KNN 17/28


✎ TD  Exercice 1  KNN à la main et eet de k (15 min)

On dispose de 6 points d'entraînement, appartenant aux classes R et V. On veut classer le nouveau


point :
q = (3, 3).

Point P1 P2 P3 P4 P5 P6
(x1 , x2 ) (3, 4) ( 2, 2) (5, 3) (1, 2) ( 1, 1) (6, 3)
Classe V V R R R R

1 Calculer les distances euclidiennes entre q et chaque point. On pourra d'abord calculer d 2 , puis
prendre la racine.
2 Trier les points par distance croissante.
3 Donner la prédiction pour k = 1, k = 3 et k = 5. Que constatez-vous ?
1
4 KNN pondéré : avec k = 5 et des poids wi = di2
, calculer le poids total de chaque classe, puis donner
la décision pondérée.
5 Comparer la décision du vote simple et celle du vote pondéré pour k = 5.
√ √ √
Aide : 2 ≈ 1.41, 5 ≈ 2.24, 8 ≈ 2.83.
Pr. ADDOU ML  Ch.5  KNN 18/28
✓ Solution  Exercice 1 (1/3)

1. Calcul des distances


Pour q = (3, 3), la distance euclidienne à un point Pi = (x1 , x2 ) est :

d(q, Pi ) = (3 − x1 )2 + (3 − x2 )2 .
p

Point Classe d2 d

P1 = (3, 4) V 02 + (−1)2 = 1 1.00


P2 = (2, 2) V 12 + 12 = 2 1.41
P3 = (5, 3) R (−2)2 + 02 = 4 2.00
P4 = (1, 2) R 22 + 12 = 5 2.24
P5 = (1, 1) R 22 + 22 = 8 2.83
P6 = (6, 3) R (−3)2 + 02 = 9 3.00

2. Tri par distance croissante

P1 (V ) ≺ P2 (V ) ≺ P3 (R) ≺ P4 (R) ≺ P5 (R) ≺ P6 (R).

Pr. ADDOU ML  Ch.5  KNN 19/28


✓ Solution  Exercice 1 (2/3)

3. Vote selon k
k=1 : P1 (V) ⇒ V.

k=3 : P1 (V), P2 (V), P3 (R) ⇒ 2 V, 1 R ⇒ V.

k=5 : P1 , P2 (V), P3 , P4 , P5 (R) ⇒ 2 V, 3 R ⇒ R.

Constat : la décision bascule de V pour k=1 et k=3 à R pour k = 5. Le choix de k est


donc déterminant.

Pr. ADDOU ML  Ch.5  KNN 20/28


✓ Solution  Exercice 1 (3/3)  KNN pondéré

4. Vote pondéré avec k = 5


Avec k = 5, les voisins retenus sont : P1 (V ), P2 (V ), P3 (R), P4 (R), P5 (R).
On utilise les poids : wi = d12 .
i

Point Classe d2 wi = 1/di2


P1 V 1 1.000
P2 V 2 0.500
P3 R 4 0.250
P4 R 5 0.200
P5 R 8 0.125

Somme des poids par classe :


WV = 1.000 + 0.500 = 1.500
WR = 0.250 + 0.200 + 0.125 = 0.575
Donc :
WV > WR ⇒ ŷ = V.
Comparaison : le vote simple avec k = 5 donnait R car il y avait 3 voisins R contre 2 voisins V. Mais le vote
pondéré donne V, car les deux voisins V sont beaucoup plus proches du point q .
Conclusion : la pondération valorise la proximité, et peut donc changer la décision nale.

Pr. ADDOU ML  Ch.5  KNN 21/28


✎ TD  Exercice 2  Normalisation (10 min)

On veut classer un client


q = (âge 40, revenu 3000)
par KNN. Deux clients de référence sont donnés :
Client Âge Revenu (EUR) Classe
A 38 5000 Refusé
B 70 3100 Accordé
1 Calculer les distances euclidiennes d(q, A) et d(q, B) sans normalisation. Quel est le plus proche
voisin ? Quelle classe prédit le 1-NN ?
2 Quelle variable domine le calcul de distance ? Est-ce justié ?
3 On normalise les variables par minmax : x ′ = x − min .
max − min
On utilise les intervalles suivants : âge ∈ [20, 70], revenu ∈ [2000, 6000]. Donner les coordonnées
normalisées de q , A et B .
4 Recalculer les distances après normalisation. Le plus proche voisin change-t-il ? Que montre cet
exemple ?

Pr. ADDOU ML  Ch.5  KNN 22/28


✓ Solution  Exercice 2
1. Sans normalisation
Pour q = (40, 3000), A = (38, 5000) et B = (70, 3100) :

(40 − 38)2 + (3000 − 5000)2 = 4 + 4,000,000 ≈ 2000.0.


p p
d(q, A) =

(40 − 70)2 + (3000 − 3100)2 = 900 + 10,000 = 10,900 ≈ 104.4.


p p p
d(q, B) =
Donc, sans normalisation, le plus proche voisin est B. Le 1-NN prédit donc la classe Accordé.
2. Variable dominante
Le revenu domine totalement le calcul de distance, car ses écarts sont exprimés en milliers d'euros, alors que
l'âge varie seulement en dizaines d'années. Ce n'est pas justié : la domination vient surtout de l'unité de
mesure.

Pr. ADDOU ML  Ch.5  KNN 23/28


✓ Solution  Exercice 2
3. Normalisation minmax
On utilise :
âge − 20 âge − 20 revenu − 2000 revenu − 2000
âge′ = = , revenu′ = = .
70 − 20 50 6000 − 2000 4000
Ainsi :

40 − 20 3000 − 2000
 
q′ = , = (0.40, 0.25).
50 4000
38 − 20 5000 − 2000
 
A′ = , = (0.36, 0.75).
50 4000
70 − 20 3100 − 2000
 
B′ = , = (1.00, 0.275).
50 4000

Pr. ADDOU ML  Ch.5  KNN 24/28


✓ Solution  Exercice 2

4. Distances après normalisation


q √
d(q ′ , A′ ) = (0.40 − 0.36)2 + (0.25 − 0.75)2 = 0.0016 + 0.25 ≈ 0.502.

q √
d(q ′ , B ′ ) = (0.40 − 1.00)2 + (0.25 − 0.275)2 = 0.36 + 0.000625 ≈ 0.601.
Après normalisation, le plus proche voisin devient A. Le 1-NN prédit donc la classe Refusé.

Conclusion : sans normalisation, le revenu domine et le voisin choisi est B. Après normalisa-
tion, les variables sont comparables et le voisin choisi devient A. La normalisation peut donc
changer la décision du KNN.

Pr. ADDOU ML  Ch.5  KNN 25/28


Récapitulatif de la Partie 2  KNN

☞ À retenir

Concept Idée clé


Principe Classer un nouveau point par vote majoritaire parmi ses k plus proches
voisins.
Type Algorithme non paramétrique, à base d'instances, dit lazy learning.
Entraînement Mémorisation des données ; l'essentiel du coût se situe à la prédiction.
Distances Euclidienne, Manhattan, Minkowski, dissimilarité cosinus.
Normalisation Nécessaire en pratique lorsque les features ont des échelles diérentes.
Choix de k k petit → faible biais, forte variance ; k grand → fort biais, faible
variance ; choix par validation croisée.
k impair Souvent utilisé en classication binaire pour limiter les égalités de vote.
KNN pondéré Les voisins proches reçoivent plus de poids, par exemple avec 1/d ou
1/d 2 .
Régression Prédiction par moyenne, ou moyenne pondérée, des valeurs des k
voisins.
Coût et limites Coût d'environ O(nd) par prédiction ; sensible au éau de la dimension.

Pr. ADDOU ML  Ch.5  KNN 26/28


Fin de la Partie 2
k plus proches voisins  KNN

Suite : Partie 3  Naive Bayes


Le théorème de Bayes appliqué à la classication

L'hypothèse naïve d'indépendance conditionnelle

Un classieur probabiliste simple, rapide et ecace

Pause 10 minutes

Pr. ADDOU ML  Ch.5  KNN 27/28


Module : Machine Learning
Chapitre 5  Partie 3/3 : Classieur bayésien naïf  Naive Bayes

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.5  Naive Bayes 1/37


Plan  dernière partie du Chapitre 5
Partie 1 : SVM  Machines à vecteurs de support ✓
Partie 2 : KNN  k plus proches voisins ✓
▶ Partie 3 : Naive Bayes  Classieur bayésien naïf
Dans cette dernière partie, nous étudions Naive Bayes, un classieur probabiliste qui utilise le
théorème de Bayes pour choisir la classe la plus probable.
Au programme :
1 L'approche probabiliste de la classication ;
2 Le théorème de Bayes appliqué à la prédiction ;
3 L'hypothèse naïve d'indépendance conditionnelle ;
4 Un exemple complet à la main ;
5 Le lissage de Laplace pour éviter les probabilités nulles ;
6 Les variantes : Naive Bayes catégoriel, multinomial et gaussien.

Une approche diérente : le SVM et le KNN raisonnent surtout en termes de géométrie (frontières,
distances, voisinage). Naive Bayes raisonne en termes de probabilités. Il estime comment les features
apparaissent dans chaque classe, puis applique le théorème de Bayes pour prendre une décision.
Pr. ADDOU ML  Ch.5  Naive Bayes 2/37
Classer, c'est répondre à une question de probabilité

★ La question posée
Étant donné un exemple
x = (x1 , . . . , xd ),
quelle est la probabilité qu'il appartienne à chaque classe possible ?
On cherche donc les probabilités :
P(y | x).
La classe prédite est celle qui semble la plus probable sachant les features observées.

Règle de décision MAP  Maximum A Posteriori


La règle MAP choisit la classe qui maximise la probabilité a posteriori :

ŷ = arg max P(y | x).


y

Pr. ADDOU ML  Ch.5  Naive Bayes 3/37


Classer, c'est répondre à une question de probabilité

Diculté : on ne connaît pas directement P(y | x). Pour la calculer, Naive Bayes utilise
le théorème de Bayes, qui permet de relier cette probabilité à des quantités plus faciles à
estimer à partir des données.

Pr. ADDOU ML  Ch.5  Naive Bayes 4/37


Le théorème de Bayes
Math  Théorème de Bayes
P

P(x | y ) P(y )
P(y | x) = .
P(x)

Terme Nom Interprétation


P(y | x) Probabilité a pos- Probabilité que la classe soit y après avoir
teriori observé les features x.
P(x | y ) Vraisemblance Probabilité d'observer les features x si l'on
sait que la classe est y .
P(y ) Probabilité a priori Probabilité de la classe y avant d'observer x
; elle est souvent estimée par la fréquence de
la classe.
P(x) Évidence Terme de normalisation ; il ne dépend pas de
la classe y .
Pr. ADDOU ML  Ch.5  Naive Bayes 5/37
Le théorème de Bayes

☞ À retenir
Pour comparer les classes, P(x) est identique pour toutes les valeurs possibles de y . Il n'inuence
donc pas le arg max.

ŷ = arg max P(y | x) = arg max P(x | y )P(y ).


y y

On peut donc écrire :


P(y | x) ∝ P(x | y )P(y ).
Il reste à estimer P(y ) et P(x | y ). Le premier se calcule facilement par comptage ; le second est
plus dicile et justie l'hypothèse naïve.

Pr. ADDOU ML  Ch.5  Naive Bayes 6/37


Le problème du calcul de la vraisemblance

★ Pourquoi P(x | y ) est dicile ?


Un exemple est décrit par :
x = (x1 , . . . , xd ).
Calculer directement la vraisemblance

P(x | y ) = P(x1 , x2 , . . . , xd | y )

demande de connaître la probabilité de chaque combinaison possible de features.


Avec d features binaires, il existe :
2d
combinaisons possibles par classe. Quand d est grand, ce nombre devient rapidement impossible à
estimer avec peu de données.

Pr. ADDOU ML  Ch.5  Naive Bayes 7/37


Le problème du calcul de la vraisemblance

Hypothèse naïve d'indépendance conditionnelle


On suppose que, à l'intérieur d'une classe donnée, les features sont indépendantes condi-
tionnellement à la classe :
d
Y
P(x | y ) = P(x1 , x2 , . . . , xd | y ) = P(xj | y ).
j=1

☞ À retenir
Cette hypothèse est dite naïve, car elle est souvent fausse en pratique : les features peuvent être
corrélées.
Mais elle simplie fortement le calcul : au lieu d'estimer la probabilité de toutes les combinaisons de
features, on estime séparément les probabilités de chaque feature dans chaque classe.

Pr. ADDOU ML  Ch.5  Naive Bayes 8/37


Le classieur Naive Bayes

Règle de décision Naive Bayes


En utilisant l'hypothèse naïve, la règle de décision devient :
d
Y
ŷ = arg max P(y ) P(xj | y ).
y
j=1

Apprentissage à partir des données :


Estimer les probabilités a priori :
nombre d'exemples de classe y
P(y ) = .
nombre total d'exemples
Estimer les vraisemblances P(xj | y ) : pour chaque feature, chaque valeur possible et chaque
classe.

Pr. ADDOU ML  Ch.5  Naive Bayes 9/37


Le classieur Naive Bayes

Astuce numérique : multiplier beaucoup de probabilités inférieures à 1 peut produire des nombres
très petits, avec un risque d'underow. En pratique, on travaille souvent avec les logarithmes :
 
d
X
ŷ = arg max log P(y ) + log P(xj | y ) .
y
j=1

Le produit devient une somme, ce qui est plus stable numériquement.

☞ À retenir
Naive Bayes a un apprentissage très rapide : il consiste essentiellement à estimer des fréquences, des
moyennes ou des variances selon la variante utilisée. Contrairement au KNN, la prédiction est aussi
rapide, car il n'y a pas de recherche de voisins.

Pr. ADDOU ML  Ch.5  Naive Bayes 10/37


Exemple : prédire un achat (1/3)  les données
Exemple : 8 clients, 2 features catégorielles, classe = Achat (Oui/Non)
i Météo Week-end Achat i Météo Week-end Achat
1 Soleil Oui Oui 5 Pluie Non Non
2 Soleil Non Non 6 Soleil Oui Oui
3 Pluie Oui Non 7 Pluie Oui Oui
4 Soleil Oui Oui 8 Soleil Non Non

Étape 1 : calcul des probabilités a priori


4 4
P(Achat=Oui) = = 0.5, P(Achat=Non) = = 0.5.
8 8
Achat = Oui : exemples {1, 4, 6, 7}.
Achat = Non : exemples {2, 3, 5, 8}.
Étape 2 : comptages pour les vraisemblances
Classe Oui : Météo = Soleil dans {1, 4, 6}, Pluie dans {7} ; Week-end = Oui dans {1, 4, 6, 7},
Non dans ∅.
Classe Non : Météo = Soleil dans {2, 8}, Pluie dans {3, 5} ; Week-end = Oui dans {3}, Non dans
{2, 5, 8}.
Pr. ADDOU ML  Ch.5  Naive Bayes 11/37
Exemple : prédire un achat (2/3)  les tables
Vraisemblances Météo Vraisemblances Week-end
P(· | Oui) P(· | Non) P(· | Oui) P(· | Non)
Soleil 3/4 2/4 Oui 4/4 1/4
Pluie 1/4 2/4 Non 0/4 3/4

Étape 3 : classer un nouveau client


On veut classer : x = (Météo = Soleil, Week-end = Oui).
Score de la classe Oui :
3 4 3
P(Oui)P(Soleil | Oui)P(Week-end=Oui | Oui) = 0.5 × × = = 0.375.
4 4 8
Score de la classe Non :
2 1 1
P(Non)P(Soleil | Non)P(Week-end=Oui | Non) = 0.5 × × = = 0.0625.
4 4 16
Décision : 0.375 > 0.0625 ⇒ ŷ = Oui.
Après normalisation des scores : P(Oui | x) = 0.3750.+375
0.0625 ≈ 0.857.
Pr. ADDOU ML  Ch.5  Naive Bayes 12/37
Exemple : prédire un achat (3/3)  le piège du zéro
Classons maintenant x′ = (Météo = Pluie, Week-end = Non).
0
Score de la classe Oui : P(Oui)P(Pluie | Oui)P(Week-end=Non | Oui) = 0.5 × 1
4 × = 0.
4
|{z}
=0

Problème : aucun client de la classe Oui n'avait Week-end = Non. Donc :


P(Week-end=Non | Oui) = 0.
Ce seul zéro annule tout le produit. La classe Oui devient alors impossible, ce qui est trop brutal :
une absence dans un petit échantillon ne signie pas une impossibilité réelle.

Score de la classe Non : 2 3


P(Non)P(Pluie | Non)P(Week-end=Non | Non) = 0.5 × × = 0.1875.
4 4
☞ À retenir
Ici, la décision reste Non, car le score de la classe Oui est nul. Mais ce zéro est dangereux : il
sut qu'une seule feature jamais observée dans une classe apparaisse pour éliminer cette classe
automatiquement. La solution est d'utiliser le lissage de Laplace.
Pr. ADDOU ML  Ch.5  Naive Bayes 13/37
Le lissage de Laplace

Lissage de Laplace
Pour éviter les probabilités nulles, on ajoute une constante α > 0 à chaque comptage.
nj,v ,y + α
P(xj = v | y ) = .
ny + αKj

nj,v ,y : nombre d'exemples de classe y ayant xj = v ;


ny : nombre total d'exemples de classe y ;
Kj : nombre de valeurs possibles de la feature xj ;
α = 1 correspond au lissage de Laplace classique.

Pr. ADDOU ML  Ch.5  Naive Bayes 14/37


Le lissage de Laplace

Exemple : Reprise du zéro : P(Week-end=Non | Oui)


La feature Week-end a Kj = 2 valeurs possibles : Oui et Non.
Dans la classe Oui, il y a 4 exemples, dont 0 avec Week-end = Non. Avec α = 1 :
0+1 1
P(Week-end=Non | Oui) = = ≈ 0.167.
4+1×2 6
La probabilité n'est donc plus nulle.
1+1 2 1
P(Pluie | Oui) = = = .
4+1×2 6 3

☞ À retenir
Le lissage de Laplace évite les zéros qui annulent tout le produit dans Naive Bayes. Il rend le modèle
plus robuste, surtout lorsque le jeu de données est petit.
Dans scikit-learn, ce lissage est contrôlé par le paramètre alpha.
Pr. ADDOU ML  Ch.5  Naive Bayes 15/37
L'eet du lissage sur l'exemple
Reclassons x′ = (Météo = Pluie, Week-end = Non)
avec le lissage de Laplace : α = 1 et K = 2 valeurs par feature.
Score de la classe Oui (4 exemples) :
SOui = P(Oui)P(Pluie | Oui)P(Week-end=Non | Oui)
1+1 0+1
= 0.5 × ×
4+2 4+2
| {z } | {z }
= 1/3 = 1/6

1 1 1
= 0.5 × × = ≈ 0.0278.
3 6 36
Score de la classe Non (4 exemples) :
SNon = P(Non)P(Pluie | Non)P(Week-end=Non | Non)
2+1 3+1
= 0.5 × ×
4+2 4+2
| {z } | {z }
= 1/2 = 2/3

1 2 1
= 0.5 × × = ≈ 0.167.
2 3 6
Pr. ADDOU ML  Ch.5  Naive Bayes 16/37
L'eet du lissage sur l'exemple

☞ À retenir
Décision : Non, car
SNon > SOui .
La classe Oui n'est plus impossible : son score n'est plus nul. Le lissage corrige donc le
problème du zéro sans changer la décision du modèle sur cet exemple.

Pr. ADDOU ML  Ch.5  Naive Bayes 17/37


Les variantes de Naive Bayes

★ Comment estimer P(xj | y ) selon le type de feature ?


La forme de la vraisemblance P(xj | y ) dépend de la nature des features : catégorielles, binaires,
comptages ou valeurs continues.

Variante Type de features Idée pour P(xj | y)

Catégoriel Valeurs discrètes non numériques Probabilités par comptage des valeurs
(couleur, oui/non, météo) dans chaque classe, avec lissage.
Bernoulli Features binaires 0/1 (présence ou Probabilité qu'une feature soit
absence) présente ou absente dans chaque
classe.
Multinomial Comptages (nombre de mots, Probabilités des mots ou des occur-
fréquences) rences dans chaque classe.
Gaussien Valeurs continues (âge, taille, score) Densité normale N (µjy , σjy2 ) estimée
dans chaque classe.
Pr. ADDOU ML  Ch.5  Naive Bayes 18/37
Les variantes de Naive Bayes

☞ À retenir
Le multinomial est très utilisé en classication de texte avec une représentation bag-of-words.
Le gaussien est adapté aux features continues, en supposant que chaque feature suit une
loi normale dans chaque classe. Le catégoriel convient aux features discrètes comme dans
notre exemple.

Pr. ADDOU ML  Ch.5  Naive Bayes 19/37


Naive Bayes gaussien  idée

Vraisemblance gaussienne
Pour une feature continue xj , on suppose que, dans chaque classe y , cette feature suit une loi normale
2
xj | y ∼ N (µjy , σjy ).
La vraisemblance utilisée par Naive Bayes est alors la densité :

(xj − µjy )2
!
1
f (xj | y ) = q exp − .
2πσjy2 2σjy2

Pr. ADDOU ML  Ch.5  Naive Bayes 20/37


Naive Bayes gaussien  idée

Exemple : Exemple simple : une seule feature continue


On veut classer un produit selon son score qualité. On dispose des scores suivants :

Classe Scores observés Paramètres estimés


2
Premium 70, 80, 90 µPremium = 80, σPremium ≈ 66.67
2
Standard 40, 50, 60 µStandard = 50, σStandard ≈ 66.67

☞ À retenir
Pour chaque classe, on résume la distribution de la feature par deux nombres : la moyenne µ et la
variance σ2 .

Pr. ADDOU ML  Ch.5  Naive Bayes 21/37


Naive Bayes gaussien  classer un nouveau produit
On veut classer un nouveau produit dont le score qualité est : x = 75.
On suppose que les deux classes sont aussi fréquentes : P(Premium) = P(Standard) = 0.5.
Exemple : Score pour la classe Premium Exemple : Score pour la classe Standard
2 2
µPremium = 80, σPremium ≈ 66.67. µStandard = 50, σStandard ≈ 66.67.

f (75 | Premium) ≈ 0.0405. f (75 | Standard) ≈ 0.00045.


Donc : Donc :
SPremium = P(Premium)f (75 | Premium) SStandard = P(Standard)f (75 | Standard)

SPremium ≈ 0.5 × 0.0405 = 0.02025. SStandard ≈ 0.5 × 0.00045 = 0.000225.

☞ À retenir
Comme SPremium > SStandard ,
Naive Bayes gaussien prédit : ŷ = Premium.
Le score 75 est plus proche de la distribution des produits Premium que de celle des produits Standard.
Pr. ADDOU ML  Ch.5  Naive Bayes 22/37
Naive Bayes en pratique  scikit-learn
Exemple : Choisir la classe selon le type de features
from sklearn.naive_bayes import GaussianNB, MultinomialNB, BernoulliNB, CategoricalNB
# Features continues (prix, score, taille...) :
modele = GaussianNB()
# Comptages non négatifs (ex. nombre de mots dans un texte) :
modele = MultinomialNB(alpha=1.0)
# Features binaires 0/1 (présence/absence) :
modele = BernoulliNB(alpha=1.0)
# Features catégorielles encodées en entiers :
modele = CategoricalNB(alpha=1.0)

[Link](X_train, y_train)
y_pred = [Link](X_test)
proba = modele.predict_proba(X_test)

Naive Bayes ne repose pas sur une distance : il ne demande donc pas de normalisation comme KNN.
Le paramètre alpha contrôle le lissage pour MultinomialNB, BernoulliNB et CategoricalNB.
Pour GaussianNB, on utilise plutôt le paramètre var_smoothing.
Pr. ADDOU ML  Ch.5  Naive Bayes 23/37
Naive Bayes : forces, faiblesses et comparaison

Forces Faiblesses
Très rapide en apprentissage et en prédiction Hypothèse d'indépendance souvent approxi-
mative
Ecace en grande dimension, notamment Probabilités parfois mal calibrées
pour le texte
Peut fonctionner avec peu de données Sensible aux fortes corrélations entre features
Fournit des scores probabilistes par classe Naive Bayes gaussien suppose une forme nor-
male des features continues
Ne repose pas sur une distance : pas de nor- Risque de probabilités nulles sans lissage
malisation obligatoire

Pr. ADDOU ML  Ch.5  Naive Bayes 24/37


✎ TD  Exercice 1  Naive Bayes à la main (15 min)
On veut prédire la réussite à un examen (Oui/Non) à partir de deux features :
avoir révisé : Oui/Non ;
qualité du sommeil : Bon/Mauvais.

i Révision Sommeil Réussite


1 Oui Bon Oui
2 Oui Mauvais Oui
3 Oui Bon Oui
4 Non Bon Non
5 Non Mauvais Non
6 Oui Mauvais Non

1 Calculer les probabilités a priori : P(Réussite=Oui) et P(Réussite=Non).


2 Calculer les vraisemblances, sans lissage : P(Révision | Réussite) et P(Sommeil | Réussite).
3 Classer le nouvel étudiant : x = (Révision=Oui, Sommeil=Mauvais). Donner la décision, puis calculer
P(Réussite=Oui | x) après normalisation des scores.

Pr. ADDOU ML  Ch.5  Naive Bayes 25/37


✓ Solution  Exercice 1
1. Probabilités a priori
3 3
P(Réussite=Oui) = = 0.5, P(Réussite=Non) = = 0.5.
6 6
2. Vraisemblances sans lissage
Classe Réussite=Oui : {1, 2, 3} Classe Réussite=Non : {4, 5, 6}
P(Rév=Oui | Oui) = 33 P(Rév=Oui | Non) = 1
3
P(Rév=Non | Oui) = 03 P(Rév=Non | Non) = 23
P(Bon | Oui) = 32 P(Bon | Non) = 1
3
P(Mauvais | Oui) = 13 P(Mauvais | Non) = 2
3

Pr. ADDOU ML  Ch.5  Naive Bayes 26/37


✓ Solution  Exercice 1
3. Classication de
x = (Révision=Oui, Sommeil=Mauvais).

3 1 1
SOui = P(Oui)P(Rév=Oui | Oui)P(Mauvais | Oui) = 0.5 × × = ≈ 0.1667.
3 3 6
1 2 1
SNon = P(Non)P(Rév=Oui | Non)P(Mauvais | Non) = 0.5 × × = ≈ 0.1111.
3 3 9

SOui > SNon ⇒ ŷ = Réussite=Oui.


Après normalisation des scores :
1
SOui 6 3
P(Réussite=Oui | x) = = 1 1 = = 0.6.
SOui + SNon 6 + 9
5

Pr. ADDOU ML  Ch.5  Naive Bayes 27/37


✎ TD  Exercice 2  Le piège du zéro et le lissage (12 min)
On reprend le jeu de données de l'exercice 1.
On veut maintenant classer : x′ = (Révision=Non, Sommeil=Bon).
1 Calculer, sans lissage, le score de la classe Réussite=Oui :
Y
SOui = P(Oui) P(xj′ | Oui).
j
Que se passe-t-il ?
2 Expliquer pourquoi ce résultat est problématique.
3 Appliquer le lissage de Laplace avec α = 1. Chaque feature a K = 2 valeurs possibles. Recalculer :

P(Rév=Non | Oui) et P(Bon | Oui).

4 Avec le lissage, recalculer les scores des deux classes : SOui et SNon . Donner ensuite la décision
nale.
On appliquera aussi le lissage à la classe Réussite=Non.

Pr. ADDOU ML  Ch.5  Naive Bayes 28/37


✓ Solution  Exercice 2
1. Sans lissage
Pour la classe Réussite=Oui, on a :
0
P(Rév=Non | Oui) = = 0.
3
Donc :
2
SOui = P(Oui)P(Rév=Non | Oui)P(Bon | Oui) = 0.5 × 0 × = 0.
3
2. Problème
La classe Réussite=Oui devient impossible à cause d'un seul zéro. Cela ne signie pas qu'un étudiant sans
révision ne peut jamais réussir : cela signie seulement que ce cas n'apparaît pas dans ce petit échantillon.
3. Avec lissage de Laplace
Avec α = 1 et K = 2, pour la classe Réussite=Oui :
0+1 1
P(Rév=Non | Oui) = = = 0.2,
3+2 5
2+1 3
P(Bon | Oui) = = = 0.6.
3+2 5

Pr. ADDOU ML  Ch.5  Naive Bayes 29/37


✓ Solution  Exercice 2
4. Scores lissés des deux classes
Pour la classe Réussite=Non :
2+1 3 1+1 2
P(Rév=Non | Non) = = , P(Bon | Non) = = .
3+2 5 3+2 5
Les scores deviennent :
SOui = 0.5 × 0.2 × 0.6 = 0.06,
SNon = 0.5 × 0.6 × 0.4 = 0.12.
Donc :
SNon > SOui ⇒ ŷ = Réussite=Non.
Conclusion : le lissage évite que la classe Oui soit automatiquement éliminée. Elle obtient maintenant un
score non nul, mais la classe Non reste préférée par le modèle sur cet exemple.

Pr. ADDOU ML  Ch.5  Naive Bayes 30/37


✎ TD  Exercice 3  Questions conceptuelles (8 min)
Répondre par Vrai ou Faux, puis justier brièvement.
1 L'hypothèse naïve suppose que les features sont indépendantes conditionnellement à la classe.
2 Pour la décision de classication, on peut ignorer le terme P(x), appelé évidence.
3 Le lissage de Laplace sert à éviter les probabilités nulles dans les variantes basées sur des comptages.
4 Naive Bayes exige de normaliser les features comme le KNN.
5 Pour des features continues, on utilise la variante multinomiale.
6 On utilise souvent le logarithme des probabilités pour éviter les problèmes numériques.

Pr. ADDOU ML  Ch.5  Naive Bayes 31/37


✓ Solution  Exercice 3
1 Vrai. C'est l'hypothèse d'indépendance conditionnelle :
d
Y
P(x | y ) = P(xj | y ).
j=1

2 Vrai. Le terme P(x) est identique pour toutes les classes. Il ne change donc pas le résultat du arg max.
3 Vrai. Dans les variantes discrètes, ajouter α aux comptages empêche d'obtenir une probabilité nulle.
4 Faux. Naive Bayes ne repose pas sur une distance. Il n'exige donc pas une normalisation des features
comme KNN ou SVM.
5 Faux. Pour des features continues, on utilise plutôt le Naive Bayes gaussien. Le Naive Bayes
multinomial est adapté aux comptages, par exemple les occurrences de mots.
6 Vrai. Le logarithme transforme le produit en somme :
!
Y X
log P(y ) P(xj | y ) = log P(y ) + log P(xj | y ).
j j

Cela évite l'underow.

Pr. ADDOU ML  Ch.5  Naive Bayes 32/37


Récapitulatif de la Partie 3  Naive Bayes

☞ À retenir
Concept Idée clé
Approche Modèle probabiliste génératif ; décision MAP : ŷ = arg maxy P(y | x).
Théorème de Bayes P(y | x) ∝ P(x | y )P(y ) ; le terme P(x) est ignoré dans l'arg max.
Hypothèse naïve Les featuresQsont supposées indépendantes conditionnellement à la classe :
P(x | y ) = j P(xj | y ).
Règle de décision ŷ = arg maxy P(y ) j P(xj | y ).
Q

Astuce numérique Travailler en logarithme : log P(y ) + j log P(xj | y ) ; le produit devient une
P
somme.
nj,v ,y + α
Lissage de Laplace P(xj = v | y ) = ; évite les probabilités nulles.
ny + αKj
Catégoriel / Bernoulli Features discrètes ou binaires ; probabilités estimées par comptage avec lissage.
Multinomial Comptages, notamment texte et occurrences de mots.
Gaussien Features continues ; vraisemblance modélisée par une densité normale
N (µ, σ 2 ).
Atouts Très rapide, adapté à la grande dimension, souvent ecace comme baseline.

Pr. ADDOU ML  Ch.5  Naive Bayes 33/37


Récapitulatif complet du Chapitre 5
Partie 1 : SVM Partie 2 : KNN Partie 3 : Naive Bayes
✓ Marge maximale ✓ Vote des k voisins ✓ Théorème de Bayes
✓ Vecteurs de support ✓ Distances ✓ Hypothèse naïve
✓ Marge souple, C ✓ Normalisation ✓ Lissage de Laplace
✓ Hinge loss ✓ Choix de k ✓ Catégoriel / Bernoulli
✓ Kernel trick ✓ KNN pondéré ✓ Multinomial / gaussien

Trois philosophies de la classication :


SVM  géométrique : apprendre une frontière de décision avec une marge maximale.
KNN  à base d'instances : classer un nouvel exemple à partir de ses voisins les plus proches.
Naive Bayes  probabiliste : estimer les probabilités des classes avec le théorème de Bayes.
Aucun algorithme n'est universellement meilleur. Le bon choix dépend des données : taille, dimension,
type de features, bruit et objectif de prédiction. En pratique, on compare les modèles par validation
croisée.
Pr. ADDOU ML  Ch.5  Naive Bayes 34/37
Fin du Chapitre 5
SVM • KNN • Naive Bayes
Vous avez maintenant étudié trois grandes familles de classieurs :
Géométrique (SVM) • À base d'instances (KNN) • Probabiliste (Naive Bayes)

Avec les chapitres précédents, vous disposez maintenant d'une boîte à outils solide pour traiter des
problèmes de classication et de prédiction : régression linéaire, régression logistique, arbres de
décision, forêts aléatoires, SVM, KNN et Naive Bayes.

Pr. ADDOU ML  Ch.5  Naive Bayes 35/37


Module : Machine Learning
Chapitre 6  Partie 1/2 : Le clustering K-Means

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.6  K-Means 1/37


Plan du Chapitre 6  Apprentissage non supervisé
▶ Partie 1 : K-Means  clustering par partitionnement (aujourd'hui)
Partie 2 : Clustering hiérarchique et DBSCAN
Au programme de cette partie :
1 Qu'est-ce que l'apprentissage non supervisé ?

2 L'algorithme K-Means : aectation et mise à jour

3 La fonction objectif : l'inertie

4 Un exemple complet à la main

5 Convergence, minima locaux et K-Means++

6 Le choix de K : méthode du coude, silhouette et limites

Changement de paradigme : dans les chapitres 2 à 5, on disposait de labels y pour apprendre une
relation entre les observations et leurs classes. Ici, les labels ne sont pas utilisés pendant l'apprentissage
: on cherche à découvrir une structure dans les données, par exemple des groupes d'observations
similaires. C'est l'apprentissage non supervisé.

Pr. ADDOU ML  Ch.6  K-Means 2/37


Apprentissage supervisé vs non supervisé

Supervisé (Ch. 25) Non supervisé (Ch. 6)

Données (xi , yi ) : features + label xi : observations sans label utilisé pendant


l'apprentissage
But Prédire y pour un nouveau x Découvrir une structure interne ou une or-
ganisation des données
Exemples Régression, classication Clustering, réduction de dimension
Évaluation Comparer ŷ à y Plus dicile : critères internes, ou compara-
ison à des labels externes s'ils existent

Le clustering (partitionnement)
Regrouper les exemples en clusters tels que les points d'un même cluster soient similaires, et les
points de clusters diérents dissim similaires, sans utiliser de labels pendant l'apprentissage.

Pr. ADDOU ML  Ch.6  K-Means 3/37


Apprentissage supervisé vs non supervisé

☞ À retenir
Exemples d'usage : segmentation de clients, regroupement de prols similaires, com-
pression d'images, organisation de documents. Le clustering propose une organisation des
données que l'on ne connaît pas nécessairement à l'avance.

Pr. ADDOU ML  Ch.6  K-Means 4/37


Le problème du clustering en image
Données brutes (sans label) Après clustering (K = 3)
x2

x2
x1 x1

On observe seulement des points, sans classes connues. L'algorithme a partitionné les données en 3 clusters.

☞ À retenir
L'objectif du clustering est de regrouper automatiquement les points en groupes cohérents, de
sorte que les points d'un même groupe soient plus similaires entre eux que ceux de groupes diérents.
K-Means est l'un des algorithmes les plus utilisés pour cela.

Pr. ADDOU ML  Ch.6  K-Means 5/37


Application : segmentation d'image par clustering
★ Idée générale
Une image peut être vue comme un ensemble de pixels. Chaque pixel peut être représenté
par un vecteur de caractéristiques, par exemple ses valeurs de couleur :
xi = (Ri , Gi , Bi ).
Le clustering permet alors de regrouper les pixels qui se ressemblent.

Segmentation d'image
La segmentation d'image consiste à diviser une image en plusieurs régions homogènes, par
exemple selon la couleur, l'intensité ou la texture.

☞ À retenir
La segmentation est une application importante du clustering : elle permet de simplier une image
en regroupant automatiquement des pixels proches selon leurs caractéristiques.

Pr. ADDOU ML  Ch.6  K-Means 6/37


L'idée de K-Means

★ Principe : des centres qui se déplacent


K-Means représente chaque cluster par un centroïde, c'est-à-dire la moyenne des points du
cluster. L'algorithme alterne deux étapes jusqu'à stabilisation :
1 Aectation : chaque point est associé au centroïde le plus proche.

2 Mise à jour : chaque centroïde est recalculé comme la moyenne des points qui lui sont
aectés.

Pr. ADDOU ML  Ch.6  K-Means 7/37


L'idée de K-Means

Algorithme K-Means classique


Entrée : les données x1 , . . . , xn et le nombre de clusters K .
1 Initialiser K centroïdes, par exemple en choisissant K points au hasard.

2 Répéter jusqu'à convergence :

Aectation : assigner chaque point au centroïde le plus proche, généralement avec la


distance euclidienne.
Mise à jour : recalculer chaque centroïde comme la moyenne des points de son cluster.
3 Arrêt : lorsque les aectations ne changent plus, ou lorsque les centroïdes se déplacent

très peu.

☞ À retenir
K est xé à l'avance par l'utilisateur : c'est un hyperparamètre. K-Means converge vers une partition
stable, qui peut dépendre de l'initialisation.

Pr. ADDOU ML  Ch.6  K-Means 8/37


Segmentation d'image avec K-Means
★ Principe
Avec K-Means, chaque pixel est considéré comme un point dans un espace de caractéristiques.
Si on utilise les couleurs RGB, chaque pixel devient :
xi = (Ri , Gi , Bi ).
K-Means regroupe ensuite ces pixels en K clusters de couleurs similaires.

Image Pixels (R, G , B) K-Means K groupes

Exemple : Image simpliée


Après clustering, chaque pixel peut être remplacé par la couleur moyenne de son cluster. On obtient
une image simpliée contenant seulement K couleurs principales.

☞ À retenir
K-Means ne comprend pas le contenu sémantique de l'image : il ne sait pas identier une voiture,
une route ou un visage. Il regroupe simplement les pixels selon leur similarité numérique, par exemple
la couleur.
Pr. ADDOU ML  Ch.6  K-Means 9/37
La fonction objectif : l'inertie

Math  Inertie intra-cluster (within-cluster sum of squares)


P

K-Means cherche à minimiser la somme des distances au carré entre chaque point et le
centroïde de son cluster :
K X
∥xi − µk ∥2
X
J=
k=1 xi ∈Ck

où Ck est le cluster k et µk son centroïde.

Une inertie faible signie que les clusters sont compacts : les points sont proches de leur
centroïde.
À centroïdes xés, l'étape d'aectation choisit pour chaque point le centroïde le plus proche,
donc elle ne peut pas augmenter J .
À aectations xées, l'étape de mise à jour place chaque centroïde à la moyenne des points de
son cluster, ce qui minimise la somme des carrés dans ce cluster.
Pr. ADDOU ML  Ch.6  K-Means 10/37
La fonction objectif : l'inertie

☞ À retenir
À chaque itération, l'inertie J diminue ou reste inchangée. Comme il existe un nombre
ni d'aectations possibles des points aux clusters, K-Means converge en un nombre ni
d'itérations vers une partition stable. Cette solution n'est pas forcément le minimum global
de J .

Pr. ADDOU ML  Ch.6  K-Means 11/37


Exemple : K-Means à la main (1/3)  initialisation
Exemple : 6 points, K = 2
Point x1 x2
6

A 1 1 E

B 1 2 4 D F

x2
C 2 1 2 B

D 5 4 A C

E 5 5 0
0 2 4 6

F 6 4 x1

Initialisation volontairement maladroite : on choisit deux points situés dans la même zone du
nuage :
µ1 = A = (1, 1) µ2 = C = (2, 1).
Les deux centroïdes initiaux sont donc proches l'un de l'autre. Dans cet exemple, nous allons
voir comment les aectations et les centroïdes évoluent au l des itérations.

Pr. ADDOU ML  Ch.6  K-Means 12/37


Exemple : K-Means à la main (2/3)  itération 1
Aectation : chaque point est assigné au centroïde le plus proche (µ1 = (1, 1), µ2 = (2, 1)).
On compare les distances euclidiennes au carré :
Clusters obtenus :
Point d 2 à µ1 d 2 à µ2 Cluster
C1 = {A, B}, C2 = {C , D, E , F }.
A = (1, 1) 0 1 1
B = (1, 2) 1 2 1 Mise à jour : chaque centroïde devient la
C = (2, 1) 1 0 2 moyenne des points de son cluster :
D = (5, 4) 25 18 2
E = (5, 5) 32 25 2 µ1 = 1+2 1 , 1+2 2 = (1, 1.5)

F = (6, 4) 34 25 2
µ2 = 2+5+4 5+6 , 1+4+4 5+4 = (4.5, 3.5).


Les centroïdes ont bougé : µ2 a été attiré vers le groupe de droite. Visuellement, le point C
semble plutôt appartenir au groupe de gauche. Dans cet exemple, l'itération suivante va modier son
aectation.

Pr. ADDOU ML  Ch.6  K-Means 13/37


Exemple : K-Means à la main (3/3)  itération 2 et convergence

Aectation avec µ1 = (1, 1.5) et µ2 = (4.5, 3.5) :


Clusters obtenus :
2 2
Point d à µ1 d à µ2 Cluster
C1 = {A, B, C }, C2 = {D, E , F }.
A = (1, 1) 0.25 18.5 1
B = (1, 2) 0.25 14.5 1 Mise à jour :
C = (2, 1) 1.25 12.5 1 (a changé)
D = (5, 4) 22.25 0.5 2 1+1+2 1+2+1 4 4
≈ (1.33, 1.33)
 
E = (5, 5) 28.25 2.5 2 µ1 = 3 , 3 = 3, 3
F = (6, 4) 31.25 2.5 2
5+5+6 4+5+4
= 16 13
3 , 3 ≈ (5.33, 4.33).
 
µ2 = 3 , 3

☞ À retenir
Itération 3 : les aectations ne changent plus → convergence. Dans cet exemple, K-Means obtient
une partition visuellement cohérente : C1 = {A, B, C }, C2 = {D, E , F }.
L'inertie nale vaut J = 38 ≈ 2.67.

Pr. ADDOU ML  Ch.6  K-Means 14/37


Convergence de K-Means
★ Pourquoi K-Means nit par s'arrêter ?
K-Means alterne deux étapes : l'aectation des points aux centroïdes les plus proches, puis la mise
à jour des centroïdes par la moyenne. Ces deux étapes ne peuvent pas augmenter l'inertie J .

Math  Diminution de l'inertie


P

L'objectif optimisé par K-Means est : K X


∥xi − µk ∥2 .
X
J=
k=1 xi ∈Ck
Aectation : à centroïdes xés, chaque point choisit le centroïde le plus proche, donc J ne peut pas
augmenter.
Mise à jour : à clusters xés, la moyenne minimise la somme des distances au carré dans chaque
cluster.

À chaque itération, J diminue ou reste inchangée. Comme il existe un nombre ni d'aectations
possibles des points aux clusters, K-Means converge en un nombre ni d'itérations vers une partition
stable. Mais cette partition n'est pas forcément le minimum global.
Pr. ADDOU ML  Ch.6  K-Means 15/37
Pourquoi l'initialisation est importante ?
★ K-Means peut converger vers des solutions diérentes
L'objectif de K-Means n'est pas convexe par rapport aux aectations des points. Donc deux initiali-
sations diérentes peuvent conduire à deux partitions diérentes, avec des inerties diérentes.
Mauvais départ possible Meilleur départ possible

µ2

µ1 µ2 µ1

Deux centroïdes peuvent être initialisés dans la même Des centroïdes initiaux mieux répartis donnent
zone. L'algorithme converge, mais le départ peut souvent une convergence plus rapide et une inertie
inuencer le résultat. nale plus faible.

☞ À retenir
Solution pratique : exécuter K-Means plusieurs fois avec des initialisations diérentes, puis garder
la solution ayant la plus faible inertie. C'est le rôle du paramètre n_init dans scikit-learn.
Pr. ADDOU ML  Ch.6  K-Means 16/37
K-Means++ : l'idée intuitive
★ Choisir des centres initiaux mieux répartis
K-Means++ ne choisit pas tous les centroïdes initiaux de façon totalement uniforme au hasard. Après
avoir choisi un premier centroïde, il favorise les points qui sont loin des centroïdes déjà choisis.

Principe de K-Means++
On note D(xi ) la distance entre le point xi et le centroïde déjà choisi le plus proche.
1 Choisir le premier centroïde au hasard parmi les points.
2 Pour chaque point xi , calculer D(xi )2 .
2
3 Choisir le prochain centroïde avec une probabilité : P(xi choisi) = PD(xi ) 2 .
j D( xj)

4 Répéter jusqu'à obtenir K centroïdes initiaux.

Un point proche d'un centroïde déjà choisi a une faible probabilité d'être sélectionné. Un point éloigné
a une probabilité plus grande. Ainsi, K-Means++ réduit le risque de placer plusieurs centroïdes dans
la même zone.
Pr. ADDOU ML  Ch.6  K-Means 17/37
Exemple simple de K-Means++
Exemple : Choix du deuxième centroïde
On considère cinq points sur une droite : A = 1, B = 2, C = 4, D = 8, E = 11.
Supposons que le premier centroïde choisi au hasard soit : µ1 = A = 1.
On calcule la distance au centroïde choisi le plus proche, ici seulement µ1 :
Point Position D(x) D(x)2 Probabilité
A 1 0 0 0/159
B 2 1 1 1/159
C 4 3 9 9/159
D 8 7 49 49/159
E 11 10 100 100/159

D(x)2 = 0 + 1 + 9 + 49 + 100 = 159.


X

Le point E n'est pas choisi automatiquement, mais il a la probabilité la plus élevée car il est le plus
loin du premier centroïde.

Pr. ADDOU ML  Ch.6  K-Means 18/37


Comment K-Means++ choisit un centroïde ?

★ Tirage aléatoire pondéré


K-Means++ ne choisit pas automatiquement le point le plus loin. Il construit une probabilité pour
chaque point, puis eectue un tirage aléatoire pondéré.
Si
P(B) = 0.006, P(C ) = 0.057, P(D) = 0.308, P(E ) = 0.629,
alors on construit des intervalles cumulés :
B :]0, 0.006], C :]0.006, 0.063], D :]0.063, 0.371], E :]0.371, 1].
On tire ensuite un nombre aléatoire r ∈ [0, 1] :
r = 0.20 ⇒ D est choisi, r = 0.80 ⇒ E est choisi.
☞ À retenir
Les points éloignés ont une plus grande probabilité, mais ils ne sont pas choisis automatiquement.
C'est un compromis entre distance et hasard.

Pr. ADDOU ML  Ch.6  K-Means 19/37


K-Means++ en pratique
★ Ce que K-Means++ garantit et ne garantit pas
K-Means++ donne souvent de meilleurs centroïdes initiaux que le choix aléatoire simple. Il améliore
souvent la stabilité, la vitesse de convergence et l'inertie nale.

Avantages Attention : K-Means++ ne garantit pas le


Centres initiaux mieux espacés. minimum global. C'est pourquoi on peut en-
core utiliser plusieurs relances avec n_init.
Moins de mauvais départs.
Convergence souvent plus rapide. Dans scikit-learn :
Inertie nale souvent plus faible. init='k-means++'

est l'initialisation standard recommandée.


☞ À retenir
K-Means++ ne remplace pas K-Means : il remplace seulement la phase d'initialisation. Ensuite,
l'algorithme K-Means classique est appliqué normalement.
Pr. ADDOU ML  Ch.6  K-Means 20/37
Comment choisir K ? La méthode du coude

★ Le problème
K doit être xé avant de lancer l'algorithme. Mais quel nombre de clusters est pertinent pour
les données ? Augmenter K ne peut pas augmenter l'inertie optimale : avec K = n, chaque
point peut former son propre cluster et on obtient J = 0. On ne peut donc pas choisir K en
minimisant simplement J .

10
Méthode du coude (elbow
8 method)
inertie J

6
Tracer l'inertie J en fonction de K . On
4
coude K = 3 cherche un coude : un point à partir
2 duquel ajouter un cluster supplémentaire
0
ne réduit plus beaucoup l'inertie. Ce
1 2 3 4 5 6 7 choix reste une heuristique.
nombre de clusters K

Pr. ADDOU ML  Ch.6  K-Means 21/37


Comment choisir K ? La méthode du coude

☞ À retenir
Avant le coude, chaque cluster supplémentaire réduit fortement l'inertie ; après le coude, le
gain devient plus faible. Une autre approche est le score de silhouette, qui mesure à la fois
la cohésion des clusters et leur séparation. Son score varie entre −1 et 1, et une valeur plus
grande indique en général un meilleur clustering.

Pr. ADDOU ML  Ch.6  K-Means 22/37


Les limites de K-Means

Limite Explication
Il faut xer K Le nombre de clusters doit être choisi avant
l'apprentissage
Clusters compacts K-Means est surtout adapté aux groupes compacts, con-
vexes et de densité comparable ; il peut échouer sur
des formes allongées, imbriquées ou de densités très dif-
férentes
Sensible aux outliers La moyenne est inuencée par les points extrêmes
Sensible à l'initialisation Des initialisations diérentes peuvent conduire à des min-
ima locaux diérents (d'où n_init et K-Means++)
Sensible à l'échelle Les variables à grande échelle dominent la distance eu-
clidienne ; une normalisation est donc fortement recom-
mandée

Pr. ADDOU ML  Ch.6  K-Means 23/37


Les limites de K-Means

Clusters non sphériques : si les groupes ont des formes complexes ou imbriquées, par
exemple deux croissants, K-Means peut produire une partition peu pertinente. La Partie 2
présentera DBSCAN, qui peut mieux traiter certains clusters de formes non sphériques.

☞ À retenir
Comme pour KNN et souvent pour SVM, il est important de mettre les features sur une
échelle comparable avant K-Means. Sinon, une variable numériquement plus grande peut
dominer les distances et donc inuencer fortement les clusters obtenus.

Pr. ADDOU ML  Ch.6  K-Means 24/37


K-Means en pratique  scikit-learn

Exemple : Clustering en quelques lignes


from [Link] import KMeans
from [Link] import StandardScaler

# Standardisation des variables : moyenne 0, variance 1


X_scaled = StandardScaler().fit_transform(X)

kmeans = KMeans(n_clusters=3, # nombre de clusters K


init='k-means++', # initialisation plus robuste
n_init=10, # 10 relances, garde la meilleure inertie
random_state=0) # reproductibilite

labels = kmeans.fit_predict(X_scaled) # cluster de chaque observation

print("Labels :", labels)


print("Centroïdes :", kmeans.cluster_centers_)
print("Inertie J :", kmeans.inertia_)

Pr. ADDOU ML  Ch.6  K-Means 25/37


K-Means en pratique  scikit-learn

fit_predict ajuste le modèle puis renvoie le numéro de cluster de chaque observation.


inertia_ donne l'inertie J , c'est-à-dire la somme des distances au carré aux centroïdes. Elle
est utile pour la méthode du coude, en répétant l'apprentissage pour plusieurs valeurs de K .

☞ À retenir
Les centroïdes achés par cluster_centers_ sont exprimés dans l'espace standardisé. Pour
les interpréter dans les unités originales, il faut appliquer l'inverse de la transformation du
StandardScaler.

Pr. ADDOU ML  Ch.6  K-Means 26/37


✎ TD  Exercice 1  K-Means à la main (15 min)
On dispose de 6 points et on veut former K = 2 clusters :

Point P1 P2 P3 P4 P5 P6
(x1 , x2 ) (1, 1) (1, 3) (2, 2) (6, 2) (7, 1) (7, 3)

On initialise les centroïdes avec


µ1 = (1, 1) et µ2 = (2, 2).

1 Itération 1 : aecter chaque point au centroïde le plus proche en utilisant les distances euclidiennes au
carré d 2 , puis recalculer les deux centroïdes.
2 Itération 2 : refaire l'aectation des points, puis recalculer les centroïdes.
3 Convergence : eectuer une troisième aectation pour vérier que les clusters ne changent plus.
Donner les deux clusters naux et leurs centroïdes.

Pr. ADDOU ML  Ch.6  K-Means 27/37


✓ Solution  Exercice 1 (1/3)
Itération 1  µ1 = (1, 1), µ2 = (2, 2) :

Point d 2 à µ1 d 2 à µ2 Cluster
P1 = (1, 1) 0 2 1
P2 = (1, 3) 4 2 2
P3 = (2, 2) 2 0 2
P4 = (6, 2) 26 16 2
P5 = (7, 1) 36 26 2
P6 = (7, 3) 40 26 2

Les clusters obtenus sont :

C1 = {P1 }, C2 = {P2 , P3 , P4 , P5 , P6 }.
Mise à jour des centroïdes :
µ1 = (1, 1)
1+2+6+7+7 3+2+2+1+3 23 11
   
µ2 = , = , ≈ (4.6, 2.2).
5 5 5 5
Pr. ADDOU ML  Ch.6  K-Means 28/37
✓ Solution  Exercice 1 (2/3)
Itération 2  µ1 = (1, 1), µ2 = (4.6, 2.2) :

Point d 2 à µ1 d 2 à µ2 Cluster
P1 = (1, 1) 0 14.4 1
P2 = (1, 3) 4 13.6 1
P3 = (2, 2) 2 6.8 1
P4 = (6, 2) 26 2.0 2
P5 = (7, 1) 36 7.2 2
P6 = (7, 3) 40 6.4 2

Les clusters obtenus sont :


C1 = {P1 , P2 , P3 }, C2 = {P4 , P5 , P6 }.
Mise à jour des centroïdes :
1+1+2 1+3+2 4
   
µ1 = , = , 2 ≈ (1.33, 2)
3 3 3
6+7+7 2+1+3 20
   
µ2 = , = , 2 ≈ (6.67, 2).
3 3 3

Pr. ADDOU ML  Ch.6  K-Means 29/37


✓ Solution  Exercice 1 (3/3)
Itération 3 : en refaisant l'aectation avec ces nouveaux centroïdes, les clusters ne changent plus.
L'algorithme a donc convergé.

C1 = {P1 , P2 , P3 }, C2 = {P4 , P5 , P6 }.
L'inertie nale vaut :
16
J= ≈ 5.33.
3

Pr. ADDOU ML  Ch.6  K-Means 30/37


✎ TD  Exercice 2  Inertie et choix de K (10 min)
On reprend les clusters naux de l'exercice 1 :
4
 
C1 = {P1 , P2 , P3 }, µ1 = ,2 ,
3
et
20
 
C2 = {P4 , P5 , P6 }, µ2 = ,2 .
3
1 Calculer l'inertie du cluster C1 :
∥P − µ1 ∥2 .
X

P∈C1
4
Indice :
3 ≈ 1.33.
2 Par symétrie, donner l'inertie de C2 , puis l'inertie totale J .
3 On envisage maintenant K = 3. L'inertie optimale peut-elle augmenter ? Justier.
4 Pourquoi ne peut-on pas choisir K en minimisant simplement l'inertie ? Quelle méthode peut-on
utiliser ?
Pr. ADDOU ML  Ch.6  K-Means 31/37
✓ Solution  Exercice 2
1. µ1 = ( 43 , 2). Distances au carré :
P1 = (1, 1) :
2
(1 − 43 )2 + (1 − 2)2 = − 31 +1= 1
9 +1= 10
9 ≈ 1.111.
P2 = (1, 3) :
2
(1 − 43 )2 + (3 − 2)2 = − 13 +1= 10
9 ≈ 1.111.
P3 = (2, 2) :
2 2
(2 − 43 )2 + (2 − 2)2 = 4
≈ 0.444.

3 = 9
Donc :
10 10 4 24 8
J(C1 ) = 9 + 9 + 9 = 9 = 3 ≈ 2.667.
2. Par symétrie, le cluster C2 a la même inertie :
8
J(C2 ) = 3 ≈ 2.667.

L'inertie totale est donc :


8 8 16
J = J(C1 ) + J(C2 ) = 3 + 3 = 3 ≈ 5.333.

Pr. ADDOU ML  Ch.6  K-Means 32/37


✓ Solution  Exercice 2
3. Avec K = 3, l'inertie optimale ne peut pas augmenter :
Jopt (3) ≤ Jopt (2).

En eet, ajouter un cluster donne plus de exibilité au modèle. L'inertie peut donc diminuer, ou rester
identique dans certains cas. À l'extrême, si K = n et si tous les points sont distincts, chaque point peut
former son propre cluster, et on obtient J = 0.
4. On ne peut pas choisir K en minimisant simplement l'inertie, car cela conduirait à choisir un nombre trop
grand de clusters, jusqu'à K = n. Ce choix n'est pas utile : il ne résume plus les données. On utilise donc des
méthodes heuristiques comme la méthode du coude, ou des critères internes comme le score de silhouette.

Pr. ADDOU ML  Ch.6  K-Means 33/37


✎ TD  Exercice 3  Questions conceptuelles (7 min)
Vrai ou Faux. Justiez brièvement.
1 K-Means a besoin des labels des points pour fonctionner.
2 L'inertie diminue ou reste inchangée à chaque itération de K-Means.
3 Le résultat de K-Means ne dépend pas de l'initialisation.
4 K-Means fonctionne bien sur des clusters de forme allongée ou imbriquée.
5 Il est important de mettre les features sur une échelle comparable avant d'appliquer K-Means.
6 Augmenter K fait toujours diminuer strictement l'inertie.

Pr. ADDOU ML  Ch.6  K-Means 34/37


✓ Solution  Exercice 3
1. Faux  K-Means est un algorithme non supervisé : il n'utilise pas les labels pendant l'apprentissage.
2. Vrai  à centroïdes xés, l'étape d'aectation ne peut pas augmenter J ; à aectations xées, la mise à
jour par la moyenne minimise la somme des carrés dans chaque cluster.
3. Faux  le résultat peut dépendre fortement de l'initialisation. Une mauvaise initialisation peut conduire à
une solution sous-optimale.
4. Faux  K-Means est surtout adapté à des clusters compacts, convexes et de densité comparable. Il peut
être peu pertinent pour des formes allongées, imbriquées ou de densités très diérentes.
5. Vrai en pratique  si les variables n'ont pas la même échelle, une feature numériquement dominante peut
contrôler la distance euclidienne. Il faut donc standardiser ou normaliser les variables lorsque c'est nécessaire.
6. Faux  augmenter K ne peut pas augmenter l'inertie optimale : elle peut diminuer ou rester égale. À
l'extrême, si K = n et si chaque point forme son propre cluster, on obtient J = 0.

Pr. ADDOU ML  Ch.6  K-Means 35/37


Récapitulatif de la Partie 1  K-Means
☞ À retenir
Concept Idée clé
Non supervisé Les labels ne sont pas utilisés pendant l'apprentissage ; on cherche une
structure dans les données
Clustering Regrouper automatiquement des points similaires dans des clusters
K-Means Partitionner les données en K clusters en alternant : aectation au centroïde
le
PplusP proche et mise à jour par la moyenne
Inertie J k x∈Ck ∥ x − µ k ∥2 ; elle diminue ou reste inchangée à chaque itération,

ce qui conduit à une partition stable


Minima locaux La solution peut dépendre de l'initialisation ; on utilise plusieurs relances
(n_init)
K-Means++ Initialisation plus robuste qui favorise des centroïdes initiaux bien espacés
Choix de K Méthode du coude, score de silhouette et interprétabilité des clusters
Limites K à xer, sensibilité aux outliers et à l'initialisation, besoin de variables sur
une échelle comparable, diculté avec les clusters non compacts

Pr. ADDOU ML  Ch.6  K-Means 36/37


Fin Partie 1  K-Means
Suite : Partie 2  Clustering hiérarchique et DBSCAN
Clustering hiérarchique : dendrogramme et fusions successives
DBSCAN : clustering par densité et formes non sphériques
Objectif : dépasser certaines limites de K-Means

Pause 10 minutes

Pr. ADDOU ML  Ch.6  K-Means 37/37


Module : Machine Learning
Chapitre 6  Partie 2/2 : Clustering hiérarchique et DBSCAN

Pr. ADDOU Mohammed

Master IASD  Faculté des Sciences  Oujda

Année universitaire 20252026

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 1/30


Plan  où en sommes-nous dans le Chapitre 6 ?
Partie 1 : K-Means  clustering par partitionnement ✓
▶ Partie 2 : Clustering hiérarchique et DBSCAN (aujourd'hui)
Au programme de cette partie :
1 Les limites de K-Means qui motivent d'autres méthodes

2 Le clustering hiérarchique agglomératif

3 Les distances entre clusters (linkage)

4 Le dendrogramme et comment le couper

5 DBSCAN : clustering par densité (points c÷ur / frontière / bruit)

6 Tableau comparatif des trois méthodes de clustering

Motivation : K-Means impose de xer K et il est surtout adapté aux clusters compacts, convexes
et de densité comparable. Dans cette partie, nous étudions deux alternatives : le clustering
hiérarchique, qui construit une hiérarchie avant de choisir une coupe, et DBSCAN, qui cherche des
régions denses, peut détecter du bruit et peut mieux traiter certains clusters de forme non sphérique.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 2/30


Pourquoi d'autres méthodes de clustering ?

★ Rappel : deux limites importantes de K-Means


1 Il faut xer K avant de lancer l'algorithme.
2 K-Means est surtout adapté à des clusters compacts, convexes et de densité comparable. Il
peut être peu pertinent pour des formes allongées, imbriquées ou de densités très diérentes.

K-Means peu adapté DBSCAN peut mieux convenir

Deux formes imbriquées : avec la distance DBSCAN peut séparer des clusters de forme non
euclidienne, K-Means produit des frontières linéaires sphérique lorsqu'ils sont séparés par des zones de
par morceaux, ce qui peut donner une partition peu faible densité.
pertinente.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 3/30
Pourquoi d'autres méthodes de clustering ?

☞ À retenir
Les deux méthodes de cette partie répondent à ces limites par des approches diérentes : le
clustering hiérarchique construit une hiérarchie de fusions, tandis que DBSCAN exploite la
densité locale et peut identier des points de bruit.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 4/30


Le clustering hiérarchique agglomératif

★ Principe : fusionner progressivement


On part de n clusters, un par observation, puis on fusionne à chaque étape les deux clusters
les plus proches, selon une distance entre clusters appelée linkage. On construit ainsi une
hiérarchie de regroupements, représentée par un dendrogramme.

Algorithme agglomératif ascendant


1 Placer chaque observation dans son propre cluster : on commence donc avec n clusters.
2 Répéter :
trouver les deux clusters les plus proches, selon le critère de liaison choisi ;
les fusionner en un seul cluster.
3 Continuer jusqu'à obtenir un seul cluster contenant toutes les observations.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 5/30


Le clustering hiérarchique agglomératif

☞ À retenir
Contrairement à K-Means, on ne choisit pas directement K au moment de construire la hiérarchie.
On construit d'abord le dendrogramme, puis on obtient une partition nale en le coupant a posteriori,
soit à une hauteur choisie, soit pour obtenir un nombre de clusters donné.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 6/30


Les distances entre clusters (linkage)
★ Comment mesurer la proximité entre deux groupes de points ?
Entre deux points, on choisit une distance, par exemple la distance euclidienne. Mais entre
deux clusters, plusieurs critères de liaison (linkage) sont possibles.

Linkage Critère de fusion entre deux clusters A et B


Single (lien simple) Distance minimale : min d(a, b)
a∈A, b∈B
Complete (lien complet) Distance maximale : max d(a, b)
a∈A, b∈B
Average (lien moyen) Distance moyenne entre toutes les paires :
1 XX
d(a, b)
|A||B|
a∈A b∈B
Ward Fusion qui provoque la plus faible augmentation de l'inertie
intra-cluster. Avec la distance euclidienne : ∆(A, B) =
|A||B|
∥µ − µB ∥2
|A| + |B| A
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 7/30
Comprendre les linkages (1/2) : single et complete
Single linkage Complete linkage
Single linkage mesure la distance entre deux Complete linkage mesure la distance entre
clusters par la plus petite distance entre leurs deux clusters par la plus grande distance entre
points : leurs points :
d(A, B) = min d(a, b). d(A, B) = max d(a, b).
a∈A, b∈B a∈A, b∈B

Ensuite, l'algorithme fusionne la paire de clus- Ensuite, l'algorithme fusionne la paire dont
ters dont cette distance minimale est la plus cette distance maximale est la plus faible.
faible. Intuition : deux clusters sont proches seule-
Intuition : il sut qu'un point de A soit proche ment si tous leurs points restent relativement
d'un point de B pour que les deux clusters soient proches.
considérés proches.

Single linkage peut produire des clusters allongés à cause de l'eet de chaîne. Complete linkage
est plus strict : il limite les clusters trop allongés et favorise souvent des groupes plus compacts.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 8/30
Comprendre les linkages (2/2) : average et Ward
Average linkage Ward linkage
Average linkage mesure la distance entre deux Ward ne regarde pas directement la distance
clusters par la moyenne des distances entre minimale, maximale ou moyenne. Il choisit la
toutes les paires de points : fusion qui provoque la plus faible augmentation
de l'inertie intra-cluster.
1 XX
Avec la distance euclidienne :
d(A, B) = d(a, b).
|A||B|
a∈A b∈B
|A||B|
∆(A, B) = ∥µ − µB ∥2 .
Ensuite, l'algorithme fusionne la paire dont |A| + |B| A
cette distance moyenne est la plus faible.
Ici, |A| et |B| désignent les nombres de points dans
Intuition : il donne une vision globale de les clusters A et B , et µA , µB leurs centroïdes.
la proximité entre deux clusters, sans regarder Intuition : Ward fusionne les clusters qui gardent
seulement le meilleur ou le pire cas. les groupes les plus compacts possible.

Average linkage est un compromis entre single et complete. Ward est souvent utilisé avec la
distance euclidienne, car il cherche à minimiser la variance intra-cluster et produit souvent des groupes
compacts.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 9/30
Les distances entre clusters (linkage)

☞ À retenir
Le choix du linkage inuence fortement le résultat. Single peut produire un eet de chaîne ; complete
favorise des clusters plus compacts ; average est un compromis ; Ward est souvent utilisé avec la
distance euclidienne car il cherche à limiter l'augmentation de la variance intra-cluster.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 10/30


Le dendrogramme

Dendrogramme hauteur

4
Un dendrogramme est un arbre qui représente l'ordre coupe
des fusions entre clusters. La hauteur d'une fusion 3
indique le niveau auquel deux clusters sont regroupés,
selon le critère de linkage choisi. Plus deux clusters 2
fusionnent bas, plus ils sont proches selon ce critère.
1

A B C D E

☞ À retenir
Couper le dendrogramme à une hauteur donnée dénit une partition. Ici, couper entre les hauteurs
3 et 4 donne 2 clusters :
{A, B, C } et {D, E }.
Plus on coupe haut, moins on obtient de clusters ; plus on coupe bas, plus on obtient de clusters.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 11/30


Exemple à la main (1/2)  matrice de distances

Exemple : 5 points sur une ligne, linkage single


Positions :
A = 1, B = 2, C = 4, D = 8, E = 11.
On utilise la distance sur la droite :
d(xi , xj ) = |xi − xj |.

A B C D E
A − 1 3 7 10
B − 2 6 9
C − 4 7
D − 3
E −

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 12/30


Exemple à la main (1/2)  matrice de distances
Étape 1 : la plus petite distance est
d(A, B) = 1.
On fusionne donc A et B :
{A}, {B} −→ {A, B}.
Étape 2 : avec le single linkage, la distance entre {A, B} et un autre cluster est la distance
minimale :
d({A, B}, C ) = min(3, 2) = 2,
d({A, B}, D) = min(7, 6) = 6, d({A, B}, E ) = min(10, 9) = 9.
La plus petite distance globale est alors d({A, B}, C ) = 2. On fusionne donc :
{A, B} + C −→ {A, B, C }.

Avec le single linkage, la distance entre deux clusters est la plus petite distance entre deux points
appartenant à ces clusters.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 13/30


Exemple à la main (2/2)  fusions et dendrogramme
Étape 3 : distances restantes :
d({ABC }, D) = min(7, 6, 4) = 4, d({ABC }, E ) = min(10, 9, 7) = 7, d(D, E ) = 3.
La plus petite distance est d(D, E ) = 3. On fusionne donc :
D + E −→ {D, E }.
Étape 4 : il reste deux clusters, {ABC } et {DE }. Avec le single linkage :
d({ABC }, {DE }) = min(7, 10, 6, 9, 4, 7) = 4.
On eectue donc la fusion nale à hauteur 4.
hauteur
Ordre des fusions et hauteurs : 4 coupe → 2 clusters
1 A+B à hauteur 1 3
2 {A, B} + C à hauteur 2 2

3 D +E à hauteur 3 1

4 {A, B, C } + {D, E } à hauteur 4 A B C D E


Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 14/30
Exemple à la main (2/2)  fusions et dendrogramme

☞ À retenir
En coupant le dendrogramme entre les hauteurs 3 et 4, on obtient 2 clusters :

{A, B, C } et {D, E }.

Cette coupe donne une partition cohérente pour ces données.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 15/30


DBSCAN : le clustering par densité
★ Une idée complètement diérente
DBSCAN (Density-Based Spatial Clustering of Applications with Noise) dénit les clusters
comme des régions denses de points, séparées par des régions peu denses. Contrairement
à K-Means, il ne calcule pas de centroïdes ; contrairement au clustering hiérarchique, il ne
construit pas de dendrogramme.

Les deux paramètres de DBSCAN


ε (epsilon) : le rayon du voisinage autour d'un point.
MinPts : le nombre minimal de points dans ce voisinage, en comptant généralement le point
lui-même, pour considérer une zone comme dense.

☞ À retenir
Un point appartient à une zone dense si son voisinage de rayon ε contient au moins MinPts points.
DBSCAN ne demande pas de xer K : le nombre de clusters est déduit de la structure de densité
des données. Mais le résultat dépend fortement du choix de ε et de MinPts.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 16/30
Les trois types de points
Classication des points avec ε = 1.5 et MinPts = 4
Point c÷ur (core point) : son voisinage de rayon ε contient au moins MinPts points, en
comptant le point lui-même.
Point frontière (border point) : il n'est pas un point c÷ur, mais il appartient au voisinage
d'un point c÷ur.
Point bruit (noise point) : il n'est ni c÷ur ni frontière. Il n'est aecté à aucun cluster.
bruit

frontière

x2
c÷ur

x1

☞ À retenir
• c÷ur : point situé dans une zone dense ; • frontière : point relié à une zone dense ; • bruit :
point isolé selon les paramètres choisis. La détection des points de bruit est un atout important de
DBSCAN.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 17/30
Les trois types de points
Classication des points avec ε = 1.5 et MinPts = 4
Point c÷ur (core point) : son voisinage de rayon ε contient au moins MinPts points, en
comptant le point lui-même.
Point frontière (border point) : il n'est pas un point c÷ur, mais il appartient au voisinage
d'un point c÷ur.
Point bruit (noise point) : il n'est ni c÷ur ni frontière. Il n'est aecté à aucun cluster.

point bruit
point c÷ur
point frontière
x2

voisinage ε du point c÷ur

x1
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 18/30
Exemple : appliquer DBSCAN
Exemple : 6 points, ε = 1.5, MinPts = 3
On considère le voisinage de rayon ε en comptant le point lui-même. Les points sont :
A = (1, 1), B = (1, 2), C = (2, 1), D = (2, 2), E = (3.4, 2), F = (6, 6).

Comptage des voisins dans un rayon ε = 1.5 :



A = (1, 1) : voisins = {A, B, C , D}, car d(A, B) = 1, d(A, C ) = 1 et d(A, D) = 2 ≈ 1.41. Donc
A a 4 voisins ≥ 3 : c'est un point c÷ur.
B = (1, 2) : voisins = {A, B, C , D}. Donc B est aussi un point c÷ur.
C = (2, 1) : voisins = {A, B, C , D}. Donc C est aussi un point c÷ur.
D = (2, 2) : voisins = {A, B, C , D, E }, car d(D, E ) = 1.4 ≤ 1.5. Donc D a 5 voisins ≥ 3 : c'est
un point c÷ur.
E = (3.4, 2) : voisins = {E , D} seulement. Donc E n'est pas c÷ur. Mais comme E appartient au
voisinage de D , qui est un point c÷ur, E est un point frontière.
F = (6, 6) : voisins = {F } seulement. Donc F n'est ni c÷ur ni frontière : c'est un point bruit.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 19/30


Comparaison des trois méthodes de clustering

K-Means Hiérarchique DBSCAN

Faut-il xer K ? Oui Pas au départ, mais il faut Non, mais il faut choisir ε et
choisir une coupe MinPts
Forme des clusters Compacts, convexes, den- Variable selon le linkage Formes non sphériques, si les
sité comparable densités sont bien séparées
Gère le bruit ? Non Pas directement Oui : points de bruit/outliers

Paramètres K linkage, hauteur de coupe ε, MinPts


ou nombre de clusters
Sortie Partition + centroïdes Dendrogramme puis par- Clusters + points de bruit
tition
Complexité O(TnKd) souvent O(n2 ) à O(n3 ), O(n log n) avec index spatial ;
mémoire O(n2 ) jusqu'à O(n2 ) sinon
Données massives Adapté Peu adapté Possible, mais sensible à ε et à
la dimension

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 20/30


Comparaison des trois méthodes de clustering

☞ À retenir
Quand utiliser quoi ? K-Means est adapté aux grands jeux de données avec des clusters
compacts. Le clustering hiérarchique est utile pour explorer la structure sur des jeux de
taille modérée grâce au dendrogramme. DBSCAN est utile pour des clusters de forme non
sphérique et pour la détection de bruit, mais il dépend fortement de ε et de MinPts.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 21/30


En pratique  scikit-learn
Exemple : Clustering hiérarchique et DBSCAN
from [Link] import AgglomerativeClustering, DBSCAN
from [Link] import StandardScaler
# Standardisation : moyenne 0, variance 1
X_scaled = StandardScaler().fit_transform(X)
# Clustering hiérarchique agglomératif avec Ward
# Ward est utilisé avec la distance euclidienne.
hac = AgglomerativeClustering(n_clusters=2, linkage='ward')
labels_hac = hac.fit_predict(X_scaled)
# DBSCAN : pas de K, mais eps et min_samples
db = DBSCAN(eps=0.5, min_samples=5)
labels_db = db.fit_predict(X_scaled)
# Dans DBSCAN, le label -1 désigne les points de bruit.

Pour DBSCAN, le label -1 désigne les points de bruit. Le choix de eps est délicat : trop petit,
beaucoup de points deviennent du bruit ; trop grand, plusieurs groupes peuvent fusionner en un seul
cluster. On peut s'aider du graphe des k-distances, par exemple la distance au min_samples-ième
voisin.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 22/30
✎ TD  Exercice 1  Clustering hiérarchique à la main (15 min)
On considère 5 points décrits par la matrice de distances suivante :

P1 P2 P3 P4 P5

P1 − 2 6 10 9
P2 − 5 9 8
P3 − 4 5
P4 − 3
P5 −

On applique un clustering hiérarchique agglomératif avec le single linkage, c'est-à-dire que la distance
entre deux clusters est la plus petite distance entre deux points appartenant à ces clusters.
1 Donner l'ordre des fusions et la hauteur de chaque fusion.
2 Dessiner le dendrogramme correspondant.
3 Couper le dendrogramme pour obtenir 2 clusters. Quels sont-ils ?

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 23/30


✓ Solution  Exercice 1
1. Fusions avec le single linkage :
Étape 1 : la plus petite distance est d(P1 , P2 ) = 2. On fusionne donc {P1 } et {P2 } :
{P1 }, {P2 } −→ {P1 , P2 } à hauteur 2.

Étape 2 : les plus petites distances restantes sont


d(P4 , P5 ) = 3, d(P3 , P4 ) = 4,

et d({P1 , P2 }, P3 ) = min(6, 5) = 5.
La plus petite distance est donc d(P4 , P5 ) = 3 : {P4 }, {P5 } −→ {P4 , P5 } à hauteur 3.
Étape 3 : d({P4 , P5 }, P3 ) = min(4, 5) = 4,
d({P1 , P2 }, P3 ) = min(6, 5) = 5,
d({P1 , P2 }, {P4 , P5 }) = min(10, 9, 9, 8) = 8.
La plus petite distance est 4 : {P3 }, {P4 , P5 } −→ {P3 , P4 , P5 } à hauteur 4.
Étape 4 : il reste {P1 , P2 } et {P3 , P4 , P5 }. Leur distance est min(6, 10, 9, 5, 9, 8) = 5. Fusion nale à
hauteur 5.
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 24/30
✓ Solution  Exercice 1
2. Dendrogramme :
h
5 coupe

P1 P2 P3 P4 P5

3. En coupant entre les hauteurs 4 et 5, on obtient :


{P1 , P2 } et {P3 , P4 , P5 }.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 25/30


✎ TD  Exercice 2  DBSCAN à la main (12 min)
On applique DBSCAN avec ε = 2 et MinPts = 3 sur les points suivants. Le voisinage inclut le point
lui-même, et on utilise la distance euclidienne.
Point A B C D E
(x1 , x2 ) (1, 1) (2, 1) (1, 2) (2, 2) (8, 8)

1 Pour chaque point, compter le nombre de voisins dans le rayon ε = 2, en incluant le point lui-même.
2 Classer chaque point en c÷ur, frontière ou bruit.
3 Donner les clusters obtenus et les points de bruit.
4 Si on passait à MinPts = 5, que deviendraient les points A, B , C et D ?

Distances utiles : les côtés du carré valent 1 et les diagonales valent 2 ≈ 1.41.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 26/30


✓ Solution  Exercice 2
1. Comptage des voisins avec ε = 2, en incluant le point lui-même :

Point Voisins (d ≤ 2) Nombre



A = (1, 1) A, B (1), C (1), D ( 2) 4

B = (2, 1) B , A (1), D (1), C ( 2) 4

C = (1, 2) C , A (1), D (1), B ( 2) 4

D = (2, 2) D , B (1), C (1), A ( 2) 4
E = (8, 8) E seulement, car les autres points sont à distance > 2 1

2. Classication avec MinPts = 3 :


A, B , C et D ont 4 ≥ 3 voisins : ce sont des points c÷ur.
E a seulement 1 < 3 voisin et n'est dans le voisinage d'aucun point c÷ur : c'est un point de bruit.
3. DBSCAN forme un seul cluster : {A, B, C , D}, et le point de bruit est : {E }.
4. Avec MinPts = 5, chaque point parmi A, B , C et D n'a que 4 < 5 voisins. Aucun de ces points n'est
donc un point c÷ur. Comme il n'existe aucun point c÷ur, aucun cluster ne se forme : tous les points sont
considérés comme du bruit.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 27/30


✎ TD  Exercice 3  Questions conceptuelles (7 min)
Vrai ou Faux. Justiez brièvement.
1 Le clustering hiérarchique impose de xer le nombre de clusters avant de commencer.
2 Dans un dendrogramme, deux points qui fusionnent à faible hauteur sont très similaires.
3 DBSCAN peut trouver des clusters de forme non sphérique.
4 DBSCAN aecte chaque point à un cluster : aucun point n'est laissé de côté.
5 Le linkage single tend à produire des clusters compacts et ronds.
6 DBSCAN demande de xer K comme K-Means.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 28/30


✓ Solution  Exercice 3
1. Faux  on construit d'abord toute la hiérarchie, puis on coupe le dendrogramme a posteriori pour obtenir
une partition.
2. Vrai  une fusion à faible hauteur signie que les points ou clusters sont proches selon le critère de linkage
choisi.
3. Vrai  DBSCAN peut détecter des clusters de forme non sphérique, surtout lorsqu'ils sont séparés par des
zones de faible densité.
4. Faux  les points de bruit ne sont aectés à aucun cluster. Dans scikit-learn, ils reçoivent le label -1.
5. Faux  le single linkage peut produire des clusters allongés à cause de l'eet de chaîne. Le complete
linkage et Ward favorisent souvent des clusters plus compacts.
6. Faux  DBSCAN ne demande pas de xer K . En revanche, il faut choisir ε et MinPts, qui inuencent
fortement le résultat.

Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 29/30


Récapitulatif de la Partie 2
☞ À retenir

Concept Idée clé


Hiérarchique ag- Partir de n clusters, puis fusionner progressivement les deux clusters les
glomératif plus proches
Linkage Critère de fusion : single (min), complete (max), average, Ward
Dendrogramme Arbre des fusions ; la hauteur représente le critère de fusion choisi
Couper le dendro- Permet d'obtenir une partition a posteriori : plus la coupe est haute,
gramme moins il y a de clusters
DBSCAN Clusters = régions denses ; paramètres ε et MinPts
Point c÷ur Au moins MinPts points dans le voisinage de rayon ε
Point frontière N'est pas c÷ur, mais appartient au voisinage d'un point c÷ur
Point bruit Point ni c÷ur ni frontière ; non aecté à un cluster (label −1)
Atouts DBSCAN Ne demande pas de xer K , peut détecter le bruit et traiter certains
clusters de forme non sphérique
Pr. ADDOU ML  Ch.6  Hiérarchique & DBSCAN 30/30

Vous aimerez peut-être aussi