Vous êtes sur la page 1sur 41

Faculté des Sciences Rabat

Chapitre 4
Régression Logistique
(Classification)

HDIOUD Ferdaous
(f.hdioud@um5r.ac.ma)

Master IAO – Semestre 3


Année Universitaire: 2021/2022

Prof. HDIOUD Ferdaous 1


Objectifs du chapitre
• Vu auparavant, dans l’apprentissage supervisé, il y a deux types de
problèmes :
 Les regressions
 Les classifications

• Dans ce chapitre, on va découvrir la Régression Logistique qui est une


méthode qui permet de résoudre le problème de classification des données en
résultats discrets.

• Par exemple, nous pouvons utiliser la régression logistique pour classer un e-


mail comme spam ou non spam (classification binaire dont l’ensemble de
résultat est 0 ou 1).

• Nous introduisons la notion de classification, la fonction de coût pour la


régression logistique et l'application de la régression logistique à la
classification multi-classe.

• Nous présenter un des algorithmes les plus populaires et simple : Le K-


2
Nearest Neighbour (KNN).
Plan du Chapitre
I. Introduction
1. Exemples de classification
2. Résoudre un problème de classification

II. Modèle ou Hypothèse


1. Représentation
2. Interprétation
3. Frontière de décision

III. La Fonction Coût


1. Choix des paramètres
2. Représentation
3. Equation simplifiée

IV. Algorithme de Gradient Descent

V. Implémentation de Régression Logistique binaire (TP)

VI. Classification Muli-classes


3
VII. L’Algorithme de K-Nearest-Neignbor (K-NN)
Introduction: Exemples de classification

- E-mail: spam ou non spam


- Tumeur cancéreuse: bégnine ou maligne
- Transaction en ligne: frauduleuse ou non?

Dans tous ces problèmes , la variable y que nous voulons prédire est une
variable à deux valeurs possibles:

Connue sous le nom de classification binaire.

Cas général:
classification multi-classes

4
Introduction: Résolution du Pb de classification
Exemple (1/2):

0,5 𝒕
𝜽

- +

Comment développer un algorithme de classification?!


Première approche:
Appliquer un algorithme déjà connu à cet ensemble de données (régression linéaire) et
essayer d’ajuster la ligne droite à ces données.

Prédiction:
Fixer un seuil de classification à 0,5:

/!\ La régression linéaire ne fonctionne pas toujours adéquatement pour la classification. 5


Introduction: Résolution du Pb de classification
Exemple (2/2):

𝒕
𝜽
0,5 Fausse hypothèse 

+
-

En addition…
Pour un problème de classification : y= 0 ou y = 1
par contre peut générer des valeurs largement > 1 ou < 0

 L’application de la régression linéaire à un problème de classification ne semble pas


une bonne idée!

6
Introduction: Résolution du Pb de classification

Question: Laquelle de ces affirmations suivantes est vraie?


□ Si la régression linéaire ne fonctionne pas sur un problème de classification comme
dans l'exemple précédent, la mise à l'échelle des caractéristiques (features scaling)
peut régler l’affaire.

□ Si l'ensemble d'apprentissage satisfait () pour chaque exemple


d'entraînement ( ) ( ) alors la prédiction de la régression linéaire satisfera
également 0 pour toutes les valeurs de x

□ s'il existe une caractéristique x qui prédit parfaitement y, c'est-à-dire si y=1 quand x≥
c et y=0 quand x <c (pour une constante c), alors la régression linéaire obtiendra zéro
erreur de classification.


 Aucune

7
Introduction: Résolution du Pb de classification
Exemple (2/2):

𝒕
𝜽
0,5 Fausse hypothèse 

+
-

En addition…
Pour un problème de classification : y= 0 ou y = 1
par contre peut générer des valeurs largement > 1 ou < 0

 L’application de la régression linéaire à un problème de classification ne semble pas


une bonne idée!

La solution est de développer un algorithme de régression logistique dont est


comprise toujours entre 0 et 1
8
Hypothèse: Représentation

0 𝜽

Régression linéaire
g(z)
𝒕
𝜽

Régression logistique z
𝜽
𝒕
)

Où g est une fonction définie comme suit:


𝜽 𝜽𝒕 𝑿

Connue sous le nom de fonction sigmoïde ou logistique

9
Hypothèse: Interprétation

𝜽 :Est la probabilité estimée que y égale à 1 pour x

Par exemple:

1
Si x = = et = 0.7
𝑡𝑎𝑖𝑙𝑙𝑒 𝑑𝑒 𝑡𝑢𝑚𝑒𝑢𝑟

nous donne une probabilité de 70% que y égale à 1 ( c.à.d. la tumeur est maligne)

= P(y=1| x;

P(y=1| x; + P(y=0| x; =1 P(y=0| x; = 1- P(y=1| x;

Donc la probabilité que la tumeur soit bégnine (y=0) est à 30%.

10
Hypothèse: Frontière de décision

• Quand est ce que elle prédit que y vaut 0 contre y vaut 1?


• Comment la fonction 𝜽 calcule les prédictions ?

) P(y=1| x;

Supposons que: Avec:


- Prédire que y=1 quand ) quand z 0
- Prédire que y=0 quand ) quand z 0

- y=1 quand
- y=0 quand

11
Hypothèse: Frontière de décision

• Quand est ce que elle prédit que y vaut 0 contre y vaut 1?


• Comment la fonction 𝜽 calcule les prédictions ?

) P(y=1| x;

Supposons que: Avec:


- Prédire que y=1 quand ) quand z 0
- Prédire que y=0 quand ) quand z 0

- y=1 quand
- y=0 quand

12
Hypothèse: Frontière de décision

• Quand est ce que elle prédit que y vaut 0 contre y vaut 1?


• Comment la fonction 𝜽 calcule les prédictions ?

Exemple 1:
-3 1 1

Prédire que y=1 S )


-3+ +
+

Prédire que y=0 S )


+
Sur la figure: +
C’est l’équation de la ligne droite qui sépare le plan.

13
Hypothèse: Frontière de décision

• Quand est ce que elle prédit que y vaut 0 contre y vaut 1?


• Comment la fonction 𝜽 calcule les prédictions ?

Exemple 1:
y=1
-3 1 1

Prédire que y=1 S )


-3+ +
+

Prédire que y=0 S )


+
Sur la figure: +
C’est l’équation de la ligne droite qui sépare le plan
qui est la frontière de décision.
Qui corresponds exactement 0.

14
Hypothèse: Frontière de décision

Question: Considérons la régression logistique avec deux caractéristiques et ,


supposons que , et alors = g(5- ). Laquelle de ces
figures montre la frontière de décision de ?


 □

□ □

15
Hypothèse: Frontière de décision
Exemple 2: frontière non-linéaire

y=1

y=0
+

Prédictions:
• y=1 S + +
• y=0 S + +

La frontière de décision est : 𝟐+ 𝟐


𝟏 𝟐

16
Fonction coût: Choix des paramètres

Un problème d’apprentissage supervisé pour la régression logistique est défini par ce qui suit:

( ) ( ) ( ) ( )
• Données d’entrainement: { ,… }

• m exemples x dans =1 , y

• 𝜽 𝜽𝒕 𝑿

Étant donné cet ensemble de données, comment les paramètres sont-t-ils adaptés?!

 Définir l’objectif d’optimisation (la fonction coût) que nous utiliserons pour adapter
les paramètres

17
Fonction coût: Représentation

Régression linéaire

() ()

donne une courbe convexe (présentant un unique


minima). D’où la convergence de l’algorithme de
Gradient Descent.

Régression logistique
𝜽𝒕 𝑿

- Utiliser la fonction pour le modèle


Logistique ne donnera pas de courbe convexe (dû
à la non-linéarité de la fonction )

- L’algorithme de Gradient Descent se bloquera


au premier minima rencontré, sans trouver le
minimum global.
18
Fonction coût: Représentation

Question: Considérons la minimisation d'une fonction de coût J (θ). Laquelle de ces


fonctions est convexe ?

□ □

□ □

19
Fonction coût: Représentation

• Développer une nouvelle Fonction Coût spécialement pour la régression


logistique.
• On utilise alors la fonction logarithme pour transformer la fonction sigma en
fonction convexe en séparant les cas où = 1 des cas où = 0.

20
Fonction coût: Représentation

Si = 1: ( )=− ( 𝛉 )
Explications :
• Si notre modèle prédit = 0 alors que = 1, on doit
pénaliser la machine par une grande erreur (un grand
coût qui tends à ).
• La fonction logarithme permet de tracer cette courbe avec
une propriété convexe, ce qui poussera le Gradient
Descent à trouver les paramètres pour un coût qui tend
vers 0 (meilleure prédiction de ).

Si = 0: ( )= − ( 𝛉 )
Explications :
• Si notre modèle prédit = 1 alors que = 0,
on doit pénaliser la machine par une grande erreur
(un grand coût qui tends à ).
• Cette fois − ( − ) donne la même courbe,
inversée sur l’axe vertical.

21
Fonction coût: Fonction complète et simplifiée

Si = 1:
− ( 𝛉 ) Si =1
( )=
− ( 𝛉 ) Si =0

En une seule équation:


( )= − Σ × ( 𝛉 )+( − )× ( − 𝜽 )

on utilise l’astuce de séparer les cas =0 =1


Si = 0: avec une annulation :

Si = 0:
( )= − Σ × ( 𝛉 )+( − )× ( − 𝜽 )

Si = 1:
( )= − Σ × ( 𝛉 )+( − )× ( − 𝜽 )

22
Fonction coût: Fonction complète et simplifiée

Question Dans la régression logistique, la fonction de coût pour notre hypothèse qui
prédisant) (x) sur un exemple d'apprentissage qui a y {0,1} est :

− ( 𝛉 ) Si =1
cost( ,y) =
− ( 𝛉 ) Si =0

Parmi les propositions suivantes, lesquelles sont vraies ?

□ S = y, alors cost( ,y) = 0 (pour y=0 et y=1).

□ S y=0 donc cost( ,y)  alors que  .

□ S y=0 donc cost( ,y)  alors que  .


 Indépendamment que y=0 ou y=1, si donc cost( ,y) >0.

23
Gradient Descent Régression logistique
- Afin d’adapter les paramètres 𝜽, on procède par la minimisation de la fonction 𝑱(𝜽).
 L’utlisation de L’algorithme de Gradient Descent

- L’algorithme s’applique exactement de la même manière que pour la régression linéaire. En


plus, la dérivée de la Fonction Coût est la même aussi.
 Modèle de Régression logistique:
ℎ 𝑥 = 𝜽𝒕 𝑿

 Fonction Coût:
( )= − Σ × ( )+( − )× ( − ) avec y {0,1}

 L’algorithme du Gradient decsent:

Répéter jusqu’à convergence { 𝐺𝑟𝑎𝑑𝑖𝑒𝑛𝑡:


Өj := Өj - 𝛼 J(𝜽) pour j allant de 0 à n J(𝜽) = Σ( 𝝈(𝑿.𝜽)−𝒚).𝑿
Ө 𝜽
}

 l‘application du gradient

Répéter jusqu’à convergence {


Өj := Өj - 𝛼 ∑ ( 𝝈(𝑿.𝜽)−𝒚).𝑿 pour j allant de 0 à n
24
}
Gradient Descent Régression logistique

Question: Supposons que vous exécutiez une descente de gradient pour ajuster un
modèle de régression logistique avec le paramètre θ . Lequel des énoncés
suivants est un moyen raisonnable de s'assurer que le taux d'apprentissage α est
correctement défini et que la descente de gradient se déroule correctement?

□ Tracez () () en fonction du nombre d'itérations


(c'est-à-dire que l'axe horizontal est le nombre d'itérations) et assurez-vous que J
(θ) diminue à chaque itération.


 Tracez J(θ) =− × ( )+( − )× ( − ) en fonction du
nombre d'itérations (c'est-à-dire que l'axe horizontal est le nombre d'itérations) et
assurez-vous que J (θ) diminue à chaque itération.

□ Tracez J(θ) en fonction de θ et assurez-vous qu'il décroît à chaque itération.

□ Tracez J(θ) en fonction de θ et assurez-vous qu'il est convexe.

25
Implémentation Régression logistique

Voir:
• TP 1: classification binaire
• TP2 : implémentation de régression logistique

26
Généralisation Classification multi classes

• La classification multi classes des données est lorsqu’on a plus de deux catégories.
• Au lieu de y = {0,1}, nous allons étendre notre définition de sorte que y = {0,1...n}.

Exemples:
- Classement et étiquetage des emails: travail, amis, famille, divers
- Météo: ensoleillé, nuageux, pluvieux, neigeux
- Schéma médical: pas malade, grippe, rhume

Comment faire fonctionner l’algorithme de régression logistique pour un problème de


classification multi-classes?
 Algorithme de classification un contre tous ( one-vs-all)

27
Généralisation Classification multi classes

 Nous savons déjà comment adapter une ligne droite qui définit les deux classes
positive et négative.

 On peut utiliser ce principe et le faire fonctionner dans le cadre de la classification


multi-classes.

28
Généralisation Classification multi classes
Exemple:
Transformer le problème en 3 sous-problèmes de classification binaire distincts.

(𝟏)
𝜽

(𝟐)
𝜽

(𝟑)
𝜽

29
Généralisation Classification multi classes

Principe:
• Puisque y = {0,1...n}, nous divisons notre problème en n+1 problèmes de
classification binaire
• Dans chacun, nous prédisons la probabilité que 'y' soit membre de l'une de nos classes.

• Trainer un classificateur de régression logistique (𝒊) =P(y=i| x; ) pour chaque


𝜽
classe i afin de prédire la probabilité que y=i.

• Nous choisissons essentiellement une classe, puis nous regroupons toutes les autres
dans une seule seconde classe. Nous faisons cela à plusieurs reprises, en appliquant
une régression logistique binaire à chaque cas, puis en utilisant l'hypothèse qui a
renvoyé la valeur la plus élevée comme prédiction.

• Pour faire une prédiction pour une nouvelle entrée x, il faut exécuter tous les
classificateurs sur x et et puis on choisi la classe i qui maximise la probabilité:

(𝒊)
i 𝜽

30
K-NN Algorithme Principe

• L’algorithme de Nearest Neighbour (le voisin le plus proche) permet de résoudre


des problèmes de classification à plusieurs classes de façon simple et très
efficace.

• ce modèle consiste en effet à choisir les k données les plus proches du point étudié
afin d’en prédire sa valeur.

• Un algorithme assez simple d’un point de vu conceptuel , mais peu utilisé en


pratique car coûteux en puissance de calcul.

• K-NN est un type spécial d’algorithme qui est "non paramétrique" et il se base
uniquement sur les données d’entraînement (Training Set) qui doivent être
conservé en mémoire, appelé memory-based.

 Convient aux problème d’assez petite taille

31
K-NN Algorithme Principe

Exemple:
Vous partez vous promener en montagne avec un ami. Avant de partir, il fait 30 °C et
votre ami vous dit qu’il a chaud. Arrivé en montagne, il fait désormais 10 °C et votre
ami vous dit qu’il a froid.

En redescendant la vallée, il fait maintenant 15 °C, pensez-vous que votre ami aura
froid ou bien chaud ?

15 °C étant plus proche de 10 °C (froid) que de 30 °C (chaud), il semble légitime de


prédire que votre ami aura froid.

Principe: Quand une nouvelle prédiction doit être faite, on cherche dans le Dataset
l’exemple le plus proche par rapport aux conditions ou caractéristiques qu’on a.
32
K-NN Algorithme Principe

NB:
L’exemple précédant montre au passage que la variété et la quantité de données dans
votre Dataset est primordiale !

Si on dispose que de 2 points : -20 °C = froid ; 20 °C = chaud, alors vous pourriez


conclure que 1 °C est une température chaude… Pas sûr que ça plaise à tout le monde !

On en reparlera dans le Chapitre suivant de Régularisation.

33
K-NN Algorithme Principe

NB:
L’exemple précédant montre au passage que la variété et la quantité de données dans
votre Dataset est primordiale !

Si on dispose que de 2 points : -20 °C = froid ; 20 °C = chaud, alors vous pourriez


conclure que 1 °C est une température chaude… Pas sûr que ça plaise à tout le monde !

On en reparlera dans le Chapitre suivant de Régularisation.

34
K-NN Algorithme Principe
La distance la plus courte
Quel est le l’exemple le plus proche du point vert ?

L’algorithme de Nearest Neighbour calcule ainsi la distance entre le point vert et les autres points du
Dataset et associe le point vert à la classe dont l’exemple est le plus proche en terme de distance.

Dans notre cas: C’est un exemple de la classe rouge.

Typiquement, la distance euclidienne est utilisée (la droite direct entre deux points) mais d’autres
métriques sont parfois plus utiles, comme la distance de Manhattan , jaccard ou bien la distance
cosinus.
35
K-NN Algorithme Principe
Le nombre de voisins K:
Il s’agit de choisir le bon nombre de voisins K, en fonction de l’erreur de généralisation du
modèle.

Pour limiter les problèmes liés au bruit (ce qu’on appelle Over fitting, et que nous verrons
dans le chapitre suivant) on peut demander à l’algorithme de trouver les K voisins les plus
proches du point vert.

Cela améliore la qualité du modèle car il devient moins sensible aux impuretés et cas
particuliers qui viendraient empêcher la bonne généralisation (Chapitre suivant).
36
K-NN Algorithme Principe

NB:
K n'est pas un paramètre mais un hyper-paramètre, c-à-d il ne va pas être appris
automatiquement par l'algorithme à partir des données d'entraînement.

Les hyper-paramètres permettent de caractériser le modèle, en terme de:


- Complexité
- Rapidité de convergence,
- etc.

Ce ne sont pas les données d'apprentissage qui vont permettre de trouver ces, mais bien
à nous de l'optimiser à l'aide du jeu de données test.

37
K-NN Algorithme Exemple
Vision par ordinateur avec K-NN dans Jupyter
Le but est de développer un programme capable de reconnaitre un chiffre écrit à la
main compris 0 et 9.
Les données à partir desquelles la machine saura reconnaitre dans quelques minutes,
sont présenté sous forme des chiffres comme suit:

Ces données sont importés depuis Sklearn (la librairie contient des Datasets de base).

38
K-NN Algorithme Exemple
Vision par ordinateur avec K-NN dans Jupyter

Ce code montre un exemple de chiffre présent dans le Dataset (le


chiffre 0).

On apprend aussi que le Dataset comprend 1797 exemples, c’est-à-dire


1797 images, et que chaque exemple contient 64 features.

Chaque feature s’agit de la valeur de chacun des 64 pixels qui forment


les images.

Quand on soumet un nouveau chiffre à la machine, l’algorithme de K-


NN trouve l’exemple du Dataset qui ressemble le plus à notre chiffre,
basé sur le voisin le plus proche pour la valeur de chaque pixel.
39
K-NN Algorithme Exemple
Vision par ordinateur avec K-NN dans Jupyter
L’étape suivante consiste à entraîner le modèle de Nearest Neighbour.

En exécutant le code, on obtenir un score de 99%, ce qui signifie que votre modèle reconnaitra
le bon chiffre 99% du temps:

Pour finir, testons une image au hasard et voyons si la machine arrive à identifier de quel chiffre il
s’agit.

En l’occurrence, on a choisi de tester la 100ième image de notre


Dataset, qui est un 4… et la machine le reconnaîtra !

40
Conclusion
Dans ce chapitre:
on a appris deux algorithmes très populaires pour les problèmes de
Classification:
1. La Régression Logistique avec Gradient Descent
2. Le K-Nearest Neighbour.

La fonction Logistique est une fonction importante dans l’histoire du Machine


Learning.

C’est elle que l’on trouve au cœur des neurones des fameux Réseaux de
Neurones, qui feront l’objet du chapitre 6.

41

Vous aimerez peut-être aussi