Vous êtes sur la page 1sur 54

MAPSI — cours 10 :

Regressions

Vincent Guigue, Christophe Gonzales


vincent.guigue@lip6.fr

LIP6 – Université Paris 6, France


Situation générale

Jusqu’ici, beaucoup de problèmes de classification


supervisés (chiffres, lettres)
non-supervisés (geyser)

D’autres problèmes existent...


suivi de cibles (cf cours 9)
modélisation explicative (neurosciences)
regression : modèle expliquant une variable continue

Sources de données
www.kaggle.com
http://archive.ics.uci.edu/ml/
Jouer avec les données... C’est un métier : data scientist.

MAPSI — cours 10 : Regressions 2/35


Regression : cas d’usage

Prédiction des prix des maisons (Boston)

Prédiction des notes du vin


Prédiction du prix des voitures d’occasion

MAPSI — cours 10 : Regressions 3/35


Regression : cas d’usage

Prédiction des prix des maisons (Boston)


Prédiction des notes du vin

Prédiction du prix des voitures d’occasion

MAPSI — cours 10 : Regressions 3/35


Regression : cas d’usage
Prédiction des prix des maisons (Boston)
Prédiction des notes du vin
Prédiction du prix des voitures d’occasion

MAPSI — cours 10 : Regressions 3/35


Regression : cas d’usage

Prédiction des prix des maisons (Boston)


Prédiction des notes du vin
Prédiction du prix des voitures d’occasion
Résistance du béton
Propagation des feux de forêt
Consommation électrique
Eruptions solaires
...

MAPSI — cours 10 : Regressions 3/35


Régression simple (1)

X et Y jouent des rôles dissymétriques


Y = variable expliquée = variable endogène
on veut  expliquer  la valeur de Y par celle de X

MAPSI — cours 10 : Regressions 4/35


Régression simple (1)

X et Y jouent des rôles dissymétriques


Y = variable expliquée = variable endogène
on veut  expliquer  la valeur de Y par celle de X

X = taux d’alcool dans le sang =⇒ Y = vitesse

X = surface du logement =⇒ Y = prix au m2

X = quantité d’engrais à l’hectare =⇒ Y = rendement

MAPSI — cours 10 : Regressions 4/35


Régression simple (2)

Variable exogène X peut être aléatoire, mais pas forcément :

=⇒ l’expérimentateur peut faire varier comme il


veut la quantité d’engrais de parcelle en parcelle

MAPSI — cours 10 : Regressions 5/35


Régression simple (2)

Variable exogène X peut être aléatoire, mais pas forcément :

=⇒ l’expérimentateur peut faire varier comme il


veut la quantité d’engrais de parcelle en parcelle

Hypothèse
relation imprécise entre X et Y
valeur de Y dépend de X et d’un facteur aléatoire E :
Y = f (X , E)
E = résidu = erreur = bruit

MAPSI — cours 10 : Regressions 5/35


Régression simple (3)

Y = f (X , E)

E variable aléatoire =⇒ Y variable aléatoire

Modèle linéaire ou régression


On dispose de n observations (xi , yi ) du couple (X , Y )
fonction f affine : Y = α + β X + E
α et β = paramètres inconnus
observations telles que : yi = α + β xi + Ei
existence des résidus Ei
=⇒ les points (xi , yi ) ne sont pas sur une même droite
=⇒ on ne peut déterminer exactement α et β
=⇒ estimation de α et β

MAPSI — cours 10 : Regressions 6/35


Régression simple (4)

Y
yi
i

X
xi

Y =α+βX +E

MAPSI — cours 10 : Regressions 7/35


Formalisation mono-dimensionnelle

Cas simple : régression linéaire mono-dimensionnelle

Y
yi
ǫi

X
xi

Modélisation : Y = α + βX + E
On dispose d’un ensemble d’observations (xi , yi )
⇒ trouver α? , β ?

MAPSI — cours 10 : Regressions 8/35


Formalisation mono-dimensionnelle (2)

Modélisation : Y = α + βX + E
E est une variable aléatoire, {. . . , Ei , . . .} sont des tirages
selon cette loi
Hypothèse (dite du bruit blanc) : E ∼ N (0, σ)
Notations :
Yi = α + βXi + Ei et : E[Yi ] = α + βxi , V [Yi ] = σ 2
On note Yi ∼ N (α + βxi , σ)

MAPSI — cours 10 : Regressions 9/35


Résolution analytique

Y = α + βX + E E(Y ) = α + βE(X )

MAPSI — cours 10 : Regressions 10/35


Résolution analytique

Y = α + βX + E E(Y ) = α + βE(X )

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

MAPSI — cours 10 : Regressions 10/35


Résolution analytique

Y = α + βX + E E(Y ) = α + βE(X )

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

Multiplication par (X − E(X )) et passage à l’espérance :

E[(Y − E(Y ))(X − E(X ))] = βE[(X − E(X ))2 ] + E[E(X − E(X ))]

MAPSI — cours 10 : Regressions 10/35


Résolution analytique

Y = α + βX + E E(Y ) = α + βE(X )

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

Multiplication par (X − E(X )) et passage à l’espérance :

E[(Y − E(Y ))(X − E(X ))] = βE[(X − E(X ))2 ] + E[E(X − E(X ))]

cov(X , Y ) = βσx2 +cov(E, X ) or : cov(E, X ) = 0 par hypothèse (bruit)

MAPSI — cours 10 : Regressions 10/35


Résolution analytique

Y = α + βX + E E(Y ) = α + βE(X )

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

Multiplication par (X − E(X )) et passage à l’espérance :


E[(Y − E(Y ))(X − E(X ))] = βE[(X − E(X ))2 ] + E[E(X − E(X ))]

cov(X , Y ) = βσx2 +cov(E, X ) or : cov(E, X ) = 0 par hypothèse (bruit)

cov(X , Y ) cov(X , Y )
β? = α? = E(Y ) − E(X )
σx2 σx2

MAPSI — cours 10 : Regressions 10/35


Conclusion

On peut trouver l’équation de la droite qui explique les points


(avec des hypothèses sur E)

Y
yi
ǫi

X
xi

cov(X , Y ) cov(X , Y )
β? = α? = E(Y ) − E(X )
σx2 σx2
MAPSI — cours 10 : Regressions 11/35
Conclusion (2)

Ca marche bien...
1.5

1.0

0.5

0.0

0.5

1.0

1.5
0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2

MAPSI — cours 10 : Regressions 12/35


Conclusion (2)

Ca marche bien... sur des données linéaires


1.5 7

6
1.0
5
0.5
4

0.0 3

2
0.5
1
1.0
0

1.5 1
0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2

MAPSI — cours 10 : Regressions 12/35


Changement de variable

ln Y = −1 + 0, 5X 2
=⇒ changement de variables : Y 0 = ln Y et X 0 = X 2
=⇒ Y 0 = −1 + 0, 5X 0

MAPSI — cours 10 : Regressions 13/35


Apprentissage par MV (mono-dimensionnel)

On dispose toujours d’observations iid {(xi , yi )}i=1,...,N et


on fait toujours une hypothèse gaussienne sur le bruit
Généralisation à n’importe quel modélisation Y = f (X ),
Par exemple : Y = αX 2 + βX + γ + E
Notations :
Yi ∼ N (αxi2 + βxi + γ, σ)
Proba. d’observation :
1 1
p(yi |xi , θ, σ) = √ exp(− kyi − f (xi )k2 )
2πσ 2σ 2

MAPSI — cours 10 : Regressions 14/35


Apprentissage par MV (mono-dimensionnel)

On dispose toujours d’observations iid {(xi , yi )}i=1,...,N et


on fait toujours une hypothèse gaussienne sur le bruit
Généralisation à n’importe quel modélisation Y = f (X ),
Par exemple : Y = αX 2 + βX + γ + E
Notations :
Yi ∼ N (αxi2 + βxi + γ, σ)
Proba. d’observation :
1 1
p(yi |xi , θ, σ) = √ exp(− kyi − f (xi )k2 )
2πσ 2σ 2

Vraisemblance :
1 1
kyi − f (xi )k2 )
Y
L = p(y|x, θ, σ) = √ exp(−
2πσ 2σ 2
i

MAPSI — cours 10 : Regressions 14/35


MV : résolution
Comment maximiser la vraisemblance ?
Y 1 1
L = p(y|x, θ, σ) = √ exp(− 2 (yi − f (xi ))2 )
2πσ 2σ
i

On fait souvent l’hypothèse que σ est connu


Passage au log :
√ 1
− log( 2πσ) − 2 (yi − f (xi ))2
X
logL =

i

Approche standard :
Calcul du gradient
Annulation du gradient
Analytique (si possible)
Itérative (sinon)

Définition : gradient = vecteur des dérivées par rapport aux


paramètres
MAPSI — cours 10 : Regressions 15/35
MV : résolution (2)

Simplification (si σ est connu), et f (x) = αx 2 − βx − γ


√ 1
− log( 2πσ)− 2 (yi −f (xi ))2 = arg max −(yi −f (xi ))2
X X
arg max
α,β,γ 2σ α,β,γ
i i
Calcul du gradient (∇) :

MAPSI — cours 10 : Regressions 16/35


MV : résolution (2)

Simplification (si σ est connu), et f (x) = αx 2 − βx − γ


√ 1
− log( 2πσ)− 2 (yi −f (xi ))2 = arg max −(yi −f (xi ))2
X X
arg max
α,β,γ 2σ α,β,γ
i i
Calcul du gradient (∇) :

∂( i −(yi − f (xi ))2 ) 2xi2 (yi − αxi2 − βxi − γ)


 P   X 
 ∂α  
i

 ∂( i −(yi − f (xi ))2 ) 2xi (yi − αxi2 − βxi − γ)
 P   X 
  
∇α,β,γ Lred = 
 = 
∂β   i 
 ∂( i −(yi − f (xi ))2 ) 2(yi − αxi2 − βxi − γ)
 P   X 
  
∂γ i

MAPSI — cours 10 : Regressions 16/35


MV : résolution (2)

Simplification (si σ est connu), et f (x) = αx 2 − βx − γ


√ 1
− log( 2πσ)− 2 (yi −f (xi ))2 = arg max −(yi −f (xi ))2
X X
arg max
α,β,γ 2σ α,β,γ
i i
Calcul du gradient (∇) :

∂( i −(yi − f (xi ))2 ) 2xi2 (yi − αxi2 − βxi − γ)


 P   X 
 ∂α  
  i

 ∂( i −(yi − f (xi ))2 )   X 2x (y − αx 2 − βx − γ)
 P 

∇α,β,γ Lred = 
 = i i i i 
∂β   i 
 ∂( i −(yi − f (xi ))2 )   2(yi − αxi2 − βxi − γ)
 P   X 

∂γ i
Bonne ou mauvaise nouvelle ?

MAPSI — cours 10 : Regressions 16/35


MV : résolution (3)
Très bonne nouvelle ! Ces équations forment un système
de n équations linéaires à n inconnues

    
a11 a12 a13 α b1
∇α,β,γ log L = 0 ⇔  a21 a22 a23   β  =  b2 
a31 a32 a33 γ b3

Résolution par facto. matricielle (LU, QR, Choleski...)


En python :
numpy.linalg.solve :

sklearn
MAPSI — cours 10 : Regressions 17/35
Approche par minimisation du coût

Approches probabilistes : Approches par coût : trouver


trouver les paramètres θ? qui les paramètres θ? qui
maximisent la vraisemblance minimisent un coût défini
Vraisemblance

Coût
Approche
e par minimisation par
du coût minimisation du cou

probabilistes : Approches probabilistes :


paramètres ✓? qui
trouver les paramètres ✓? qui
Paramètres Paramètres

t la vraisemblance
maximisent la vraisemblance
blance

MAPSI — cours 10 : Regressions 18/35


Coût des moindres carrés (1)
observations =⇒ couples (xi , yi ) =⇒ en principe yi = a + bxi
en pratique : ei = yi − (a + bxi ) 6= 0
Y
yi
ei

X
xi

=⇒ on cherche la droite y = a + bx dont les couples sont


le plus proches
=⇒ min de la la somme des carrés des distances
(euclidiennes) verticales entre les points et la droite
MAPSI — cours 10 : Regressions 19/35
Coût des moindres carrés (2)

Définition de la droite
n
ei2
X
trouver a et b pour lesquels on a : min
a,b
i=1
n
[yi − a − bxi ]2 =⇒ min F (a, b)
X
ou encore : F (a, b) =
a,b
i=1

dérivées partielles = 0 (conditions suffisantes d’optimalité) :


n
∂F (a, b) X
= (−2)[yi − a − bxi ] = 0
∂a
i=1
n
∂F (a, b) X
= (−2)xi [yi − a − bxi ] = 0
∂b
i=1

MAPSI — cours 10 : Regressions 20/35


Coût des moindres carrés (3)

n
∂F (a, b) X
= (−2)[yi − a − bxi ] = 0 (1)
∂a
i=1
n
∂F (a, b) X
= (−2)xi [yi − a − bxi ] = 0 (2)
∂b
i=1

MAPSI — cours 10 : Regressions 21/35


Coût des moindres carrés (3)
n
∂F (a, b) X
= (−2)[yi − a − bxi ] = 0 (1)
∂a
i=1
n
∂F (a, b) X
= (−2)xi [yi − a − bxi ] = 0 (2)
∂b
i=1

Lien avec la vision probabiliste :


(1) ⇐⇒ a = y − bx
n n n
xi2
X X X
(2) ⇐⇒ b = xi yi − a xi
i=1 i=1 i=1
n n n n
!2
xi2
X X X X
donc, d’après (1) : b = xi yi − y xi + nb xi
i=1 i=1 i=1 i=1

P
i xi (yi − y) cov (x, y)
=⇒ b = P 2
=
2 sx2
P
i xi − n( i xi )
MAPSI — cours 10 : Regressions 21/35
Coût des moindres carrés (3)
n
∂F (a, b) X
= (−2)[yi − a − bxi ] = 0 (1)
∂a
i=1
n
∂F (a, b) X
= (−2)xi [yi − a − bxi ] = 0 (2)
∂b
i=1

Résolution du système d’équations linéaires :


    
a11 a12 a b1
∇a,b Cout = 0 ⇔ =
a21 a22 b b2
Avec :
P P
a11 = n a12 = i xi b1 = Pi yi
,
a22 = i xi2
P P
a21 = i xi b2 = i xi yi

MAPSI — cours 10 : Regressions 21/35


En route vers l’indicateur R 2
Posons ŷi = a + bxi

sy2 = variance empirique de Y :


n n
1X 1X
sy2 = (yi − y)2 = (ŷi + ei − y )2
n n
i=1 i=1

n n n
1X 1X 1X
= (ŷi − y )2 + (ei )2 + 2 ei (ŷi − y)
n n n
i=1 i=1 i=1

MAPSI — cours 10 : Regressions 22/35


En route vers l’indicateur R 2
Posons ŷi = a + bxi

sy2 = variance empirique de Y :


n n
1X 1X
sy2 = (yi − y)2 = (ŷi + ei − y )2
n n
i=1 i=1

n n n
1X 1X 1X
= (ŷi − y )2 + (ei )2 + 2 ei (ŷi − y)
n n n
i=1 i=1 i=1

n
1X
Or ei (ŷi − y) = cov (ei , ŷi ) = cov (ei , a + bxi ) = b cov (ei , xi ) = 0
n
i=1

n n
1X 1X
Donc sy2 = (ŷi − y)2 + (ei )2
n n
i=1 i=1

=variance expliquée + variance résiduelle


MAPSI — cours 10 : Regressions 22/35
l’indicateur R 2 (1/2)

sy2 = variance empirique de Y :


n n
1X 1X
sy2 = (ŷi − y)2 + (yi − ŷi )2
n n
i=1 i=1

= variance expliquée + variance résiduelle

(ŷi − y )2 variance expliquée


P
R 2 = Pi 2
=
(y
i i − ŷ ) variance résiduelle

Le modèle linéaire rend d’autant mieux compte de la liaison


entre X et Y que R 2 est plus proche de 1

MAPSI — cours 10 : Regressions 23/35


l’indicateur R 2 (2/2)

Y Y

X X

R 2 petit R 2 élevé

MAPSI — cours 10 : Regressions 24/35


Autre indicateur de qualité... très empirique
Erreur de reconstruction moyenne en apprentissage et en
test !
La plupart du temps, on a une connaissance métier pour
juger la qualité des modèles
Lorsque les données manquent... validation croisée

MAPSI — cours 10 : Regressions 25/35


Passage aux données multi-dimensionnelles

La plupart des données réelles sont multi-dimensionnelles

   
x11 x12 · · · x1d y1
X =  ...
 . 
, Y =  .. .
 

xN1 xN2 · · · xNd yN

xij i représente un indice d’échantillon


j un indice de caractéristique.

Notre but : estimer E[Y |X1 , X2 , ..., Xd ]

MAPSI — cours 10 : Regressions 26/35


Regression linéaire

L’hypothèse linéaire correspond à :


X
f (xi ) = xij wj + b, xi ∈ Rd
j

Le problème de minimisation du coût des moindres carrés :


N
(fw,b (xi ) − yi )2
X
? ?
w , b = arg min
w,b
i=1

Quand les dimensions augmentent, le modèle linéaire


devient complexe

MAPSI — cours 10 : Regressions 27/35


Regression linéaire : formalisation matricielle

Il est possible d’écrire le problème précédent sous forme


matricielle :
plus simple à écrire + inclusion du biais

f (xi ) = hx†i , w† i, avec : x†i = [xi , 1] et w† = [w, b]

On considère en général w comme un vecteur colonne...


w†? = arg min(X † w† − Y )T (X † w† − Y )
w†

résolution adaptée aux langages de script inaptes aux


boucles

MAPSI — cours 10 : Regressions 28/35


Regression linéaire : formalisation matricielle

Il est possible d’écrire le problème précédent sous forme


matricielle :
plus simple à écrire + inclusion du biais

f (xi ) = hx†i , w† i, avec : x†i = [xi , 1] et w† = [w, b]

On considère en général w comme un vecteur colonne...


w†? = arg min(X † w† − Y )T (X † w† − Y )
w†

résolution adaptée aux langages de script inaptes aux


boucles
résolution très rapide sur GPU

MAPSI — cours 10 : Regressions 28/35


Calcul du gradient : formalisation matricielle

∂C X
= 2xij (fw (xi ) − yi )
∂wj
i
 ∂C 
∂w1
∇w C =  ...  = 2X (X w − Y ) ∈ R
T d
 
∂C
∂wd

MAPSI — cours 10 : Regressions 29/35


Calcul du gradient : formalisation matricielle

∂C X
= 2xij (fw (xi ) − yi )
∂wj
i
 ∂C 
∂w1
∇w C =  ...  = 2X (X w − Y ) ∈ R
T d
 
∂C
∂wd

Résolution :
∇w C = 0 ⇔ X T X w = X T Y
Système d’équations linéaires : X T X ∈ Rd×d , X T Y ∈ Rd×1

MAPSI — cours 10 : Regressions 29/35


Passage au non linéaire

40 40

30
30

20
20

10
10

0
0

-10

-10

-20

-20
0 2 4 6 8 10 0 2 4 6 8 10

Assez trivial : il suffit d’une astuce...

MAPSI — cours 10 : Regressions 30/35


Passage au non linéaire
40 40

30
30

20
20

10
10

0
0

-10

-10

-20

-20
0 2 4 6 8 10 0 2 4 6 8 10

Assez trivial : il suffit d’une astuce...


Concaténation :

Xe = [1, X , X . ∗ X ]

Puis résolution standard : XeT Xe we = XeT Y


Attention à l’inférence sur les nouveaux points et à
l’interprétation de we

MAPSI — cours 10 : Regressions 30/35


Autres formulations d’apprentissage

Ce cadre de formalisation est très large et généralisable...

Données x ∈ Rd , hypothèse iid : tous les x sont


indépendants
Etiquettes y : Classes (discrimination) , Réels (régression)
But : construire une fonction f telle que f (x) soit une
bonne approximation de y
Critères :
Coût C :
N
X
arg min ∆(fθ (xi ), yi )
θ
i=1

MAPSI — cours 10 : Regressions 31/35


Exemples de fonctions de coût

Moindres carrés :
N N
(fθ (xi ) − yi )2
X X
C= ∆(fθ (xi ), yi ) =
i=1 i=1

Coût charnière (codage y = {+1, −1})


N
X N
X
C= ∆(fθ (xi ), yi ) = (−yi fθ (xi ))+
i=1 i=1

MAPSI — cours 10 : Regressions 32/35


Optimisation générale

Dans le cas des fonctions de coût exotique (cf coût logistique),


il manque parfois une solution analytique

Algorithme itératif :
1 Initialiser w0
2 En boucle (avec mise à jour du gradient) :

wt+1 = wt − ∇w C

A condition de choisir  suffisamment petit et de faire


suffisamment d’itération, nous trouvons w?

MAPSI — cours 10 : Regressions 33/35


Gradient stochastique

Le calcul de ∇w C est coûteux... Il est possible de décomposer


le problème :
N
Ci = (xi w − yi )2
X
C= Ci ,
i=1

Algorithme stochastique (Cas MC : ADALINE) :


1 Initialiser w0
2 En boucle (avec mise à jour du gradient) :
Tirage aléatoire d’un échantillon i
Calcul de ∇w Ci (cas MC : ∇w Ci = 2xTi (xi w − yi ))
MAJ : wt+1 = wt − ∇w Ci

MAPSI — cours 10 : Regressions 34/35


Perceptron

Perceptron
Algorithme de classification binaire des années 60 : toujours
très efficace aujourd’hui

N
X
C= (−yi xi w)+
i=1

Algorithme stochastique (Cas charnière : Perceptron) :


1 Initialiser w0
2 En boucle (avec mise à jour du gradient) :
Tirage aléatoire d’un échantillon i
Si yi xi w ≤ 0
Calcul de ∇w Ci = −yi xiT
MAJ : wt+1 = wt − ∇w Ci

MAPSI — cours 10 : Regressions 35/35