Régression linéaire

Motivation

Analyse

La régression linéaire consiste à déterminer une fonction linéaire (et donc continue sur ) capable de :

Exemple de régression linéaire à partir de points
Exemple de régression linéaire à partir de points

Si l'on considère :

Ce type de régression consiste à déterminer la fonction hypothèse hΘ(x)=Θ0+x1Θ1+x2Θ2+...+xnΘn dont les points sont les moins éloignés des valeurs réelles (connues du passé) pour espérer pouvoir en prédire des valeurs futures. Autrement dit déterminer les paramètres Θ0,Θ1,...,Θn qui permettent à la fonction linéaire h d'avoir des points ayant une distance/différence minimale avec les points "réels" (connus).

Θ0 qui ne dépend pas d'une variable, est une constante appelée biais (bias) ou intersection (de la fonction avec l'axe des ordonnées en hΘ(0)).

Les cas les plus courants ne requièrent cependant que 1 (Θ0+xΘ1) ou 2 paramètres (Θ0+x1Θ1+x2Θ2). S'il est besoin de représenter des fonctions plus complexes (typiquement si la fonction hypothèse ne correspond pas assez aux données ou en cas de surapprentissage), on recourra aux régression non-linéaires.

Conception

On cherche à trouver les Θ (Θ0,Θ1...) optimaux selon une méthode adaptée :

La méthode itérative consiste à fournir à l'algorithme de descente de gradient une fonction de coût J(Θ) permettant de calculer la différence entre h et y suivant de plus ou moins bons paramètres Θ.

Coût

Comme les erreurs peuvent être positives ou négatives et que nous ne sommes intéressés que par l'écart/distance, on élève cette erreur au carré afin de le garantir toujours positif n1On pourrait théoriquement utiliser une fonction de valeur absolue à la place mais cela transformerait le résultat. On annule/compense ensuite la mise au carré n2On parlera ici aussi de "fonction d'erreur carrée" (squared error function) des erreurs en multipliant par 1/2 (ce qui annulera la dérivée de x2 qui est 2x) :

J(Θ)=12mi=1m(hΘ(x(i))-y(i))2

ou en version vectorisée (en utilisant le calcul matriciel) :

J(Θ)=12m(XΘ-y)T(XΘ-y)

Vectorisation

Afin de gagner en performance et simplicité d'écriture on peut réécrire la formule d'hypothèse sous forme de multiplication de matrices Θ et x (une ligne de X). Afin de conserver la constante Θ0, on définira x0 = 1 :

Θ=[Θ0Θ1Θ2Θn], x=[x0x1x2xn]

Cependant on ne peut multiplier une matrice 1×(n+1) que par une matrice (n+1)×1, et il faut donc transposer Θ pour obtenir le calcul attendu :

ΘT=[Θ0,Θ1,Θ2,...,Θn], x=[x0x1x2xn]

Ainsi :

hΘ(x)=ΘTx

hΘ(x)=x0Θ0+x1Θ1+x2Θ2+...+xnΘn (le calcul recherché)

Cependant au niveau de l'ensemble du training set X (ou design matrix), les x(i) ne sont pas des vecteurs mais des lignes, de sorte qu'on doive plutôt y stocker des (x(i))Ts :

X=[(x(0))T(x(1))T(x(m))T]

Comme le vecteur x est déjà transposé de par sa notation en ligne, Θ ne doit plus l'être pour que leur multiplication s'opère. Cela reste équivalent car les 2 étant des vecteurs, ΘTx=xTΘ.

Le calcul recherché peut alors être effectué pour toutes les lignes de la matrice en multipliant X par le vecteur Θ :

hΘ=[(x(0))TΘ(x(1))TΘ(x(m))TΘ]

hΘ=XΘ

Notes

Exemples

En ML, la régression linéaire permet de produire une fonction continue à partir de données connues, qui permet de prédire des valeurs probables pour d'autres valeurs de x ou y.