Classification par Régression Logistique Reconnaissance des Formes (Semaine VII) Université de Lille, France 6 mars 203
Rappel Classification L ensemble des données est partagé en quelques classes différentes, On a quelques exemplaires pour qui on sait les classes correctes. On veut classifier correctement les données pour qui les classes correctes sont inconnus.
Exemple : Classification des caractères manuscrits Données d entrainement Ça corresponds à quel chiffre?
Le problème de classification le cas le plus simple Les données à classifier sont représenter en une dimension i.e. x R Nous avons deux classes seulement, i.e. y {0, }.
Le Problème de classification On cherche une fonction h : R {0, } telle que pour chaque x on a h(x) = 0 si x est dans classe 0 et h(x) = si x est dans classe
Le Problème de classification On cherche une fonction h : R {0, } telle que pour chaque x on a h(x) = 0 si x est dans classe 0 et h(x) = si x est dans classe Si cette fonction existe, le problème de classification est déjà résolu. Nous allons utiliser les données d entrainement pour trouver h.
Une Fonction Linéaire? On défini un séparateur linéaire θ 0 + θ x On utilise les exemplaires disponible pour chercher les valeurs convenables pour θ 0 et θ. On prédit la classe y de la manière suivante y = si θ 0 + θ x 0.5 y = 0 si θ 0 + θ x < 0.5 Question Est-ce que cette approche va marcher?
Le Modèle La fonction Sigmoid où Logistique g(z) := + e z Remarque 0 g(z) g(z) 0.5 si z 0 g(z) < 0.5 si z < 0
Le Modèle La fonction Sigmoid où Logistique g(z) := + e z Remarque 0 g(z) g(z) 0.5 si z 0 g(z) < 0.5 si z < 0 Le Modèle h θ (x) := g(θ 0 + θ x) = + e (θ 0+θ x)
Le Modèle h θ (x) := + e (θ 0+θ x) Prédiction y = si h θ (x) 0.5 y = 0 si h θ (x) < 0.5
Le Modèle h θ (x) := + e (θ 0+θ x) Prédiction y = si h θ (x) 0.5 y = 0 si h θ (x) < 0.5 L intuition h θ (x) est l estimation de la probabilité de y = sachant x, i.e. P(y = x). Comme on a y = 0 où y =, on peut dériver P(y = 0 x) i.e. P(y = 0 x) = P(y = x) = h θ (x).
Le Modèle En général les données n ont pas qu une seule dimension! Chaque point x est un vecteur de dimension k i.e. x := (x, x 2,..., x k ) R k. Exemple Pour k = 2 on a x := (x, x 2 ) où x R est x 2 R, donc x R 2.
Le Modèle Général Chaque point (x, x 2,..., x k ) R k est un vecteur de dimension k,. h θ (x) := + e (θ 0+θ x +θ 2 x 2 + +θ k x k ) = + e k i=0 θ i x i
Le Modèle Général Chaque point (x, x 2,..., x k ) R k est un vecteur de dimension k,. h θ (x) := + e (θ 0+θ x +θ 2 x 2 + +θ k x k ) = + e k i=0 θ i x i = + e (θt x) où θ 0 θ θ :=. θ k x et x :=. donc θt x = x k k θ i x i. i=0
Le Modèle Général Prédiction y = si h θ (x) 0.5 y = 0 si h θ (x) < 0.5 où h θ (x) := + e (θt x)
Le Modèle Général Prédiction y = si h θ (x) 0.5 y = 0 si h θ (x) < 0.5 où h θ (x) := + e (θt x) g(z) := + e z g(z) 0.5 si z 0 et g(z) < 0.5 si z < 0
Le Modèle Général Prédiction y = si h θ (x) 0.5 i.e. si θ T x 0 y = 0 si h θ (x) < 0.5 i.e. si θ T x h θ (x) := + e (θt x) g(z) := + e z g(z) 0.5 si z 0 et g(z) < 0.5 si z < 0
Exemple Prédiction y = si θ 0 + θ x + θ 2 x 2 0 y = 0 si θ 0 + θ x + θ 2 x 2 < 0 Remarquez que θ 0, θ et θ 2 sont inconnus. On doit les chercher!
Exemple 3 Supposons que θ := est donné donc, θ 0 = 3, θ =, θ 2 = Prédiction y = si x + x 2 3 y = 0 si x + x 2 < 3 x + x 2 = 3 est le frontière de décision.
Comment trouver θ? Coût d une prédiction coût(h θ (x), y) := { log(hθ (x)) si y = log( h θ (x)) si y = 0 L intuition Imaginons que y = Si h θ (x) = on a coût = 0 mais coût lorsque h θ (x) 0 Ç est une façon de pénaliser l algorithme pour la mauvaise prédiction! Il faut chercher les θ qui donnent le coût le plus petit possible.
Régression Logistique : Comment trouver θ? Coût d une prédiction coût(h θ (x), y) := { log(hθ (x)) si y = log( h θ (x)) si y = 0 = y log(h θ (x)) ( y) log( h θ (x)) pourquoi?
Régression Logistique : Comment trouver θ? Coût d une prédiction coût(h θ (x), y) := La fonction de coût J(θ) { log(hθ (x)) si y = log( h θ (x)) si y = 0 = y log(h θ (x)) ( y) log( h θ (x)) pourquoi? On a m exemplaires d entrainement {x (), x (2),..., x (m) }. Soit y (i) la classe de x (i), i =..m. On défini la fonction de coût par J(θ) := m m y (i) log(h θ (x (i) )) ( y (i) ) log( h θ (x (i) )) i=
Comment trouver θ? On cherche les paramètres qui donnent le coût le plus petit possible θ := min J(θ) où θ J(θ) := m y (i) log(h θ (x (i) )) ( y (i) ) log( h θ (x (i) )) m i= minimiser la fonction de coût J(θ) et utiliser le θ qui correspond à J(θ) minimum La minimisation de J(θ) est possible pas les méthodes de la théorie d optimisation, mais cela dépasse le cadre de ce cours Nous allons utiliser les fonctions d optimisations existantes en scilab.
Comment trouver θ? On cherche les paramètres qui donnent le coût le plus petit possible θ := min J(θ) où θ J(θ) := m y (i) log(h θ (x (i) )) ( y (i) ) log( h θ (x (i) )) m i= minimiser la fonction de coût J(θ) et utiliser le θ qui correspond à J(θ) de minimum
L algorithme Entrainement Utiliser les données d entrainement, i.e. les exemplaires {x (), x (2),..., x (m) } et leur lables {y (), y (2),..., y (m) } pour trouver le vecteur θ. Donc, θ := min J(θ) où θ J(θ) := m y (i) log(h θ (x (i) )) ( y (i) ) log( h θ (x (i) )) m i= Prédiction de la classe d un nouvel exemple Pour chaque nouveau x h θ (x) := +e θt x y = si h θ (x) 0.5 y = 0 si h θ (x) < 0.5 classifier le de la manière suivante,
L algorithme Multi-Classes Pour l instant cette approche marche que pour le cas de deux classe y {0, } seulement. Question Comment peut on le généraliser pour le cas de plusieurs classes?
L algorithme Multi-Classes Supposons que l on a l > 2 classes, i.e. y {, 2,..., l}. On peut créer un classifier de la manière suivante. Entrainer un classifier de régression logistique h (i) θ (x) pour chaque classe i =, 2,..., l. Rappel : h (i) θ (x) estime P(y = i x), i =, 2,..., l 2 Pour prédire la classe d un nouveau x, choisir y {, 2,..., l} tel que y = max i=..l h(i) θ (x) Ça veut dire que l on suit la décision du classifier plus confiants.
L algorithme Multi-Classes : Exemple