Postulez à notre nouveau Data Science & AI et Cybersecurity Cohortes à temps partiel

Régression linéaire

mathématiques
régression linéaire
Régression linéaire cover image

Introduction

Étant donné un ensemble de données D={(X1,Y2),,(XN,YN)}D = \{(X_{1}, Y_{2}), \dots,(X_{N}, Y_{N})\} tel que XiX_{i} et YiY_{i } sont continus, le but de la « régression linéaire » est de trouver la meilleure ligne qui correspond à ces données.

En d’autres termes, nous voulons créer le modèle :

y^=a0+a1.x1++ap.x_p\hat{y} = a*{0} + a*{1}.x*{1} + \dots + a*{p}.x\_{p}

pp est le nombre de dimensions de la variable XX.

Dans cet article, nous verrons comment résoudre ce problème dans trois scénarios :

  • Lorsque X est unidimensionnel c'est-à-dire p=1p=1.

  • Lorsque X est multidimensionnel c'est-à-dire p>1p>1.

  • Utilisation de la descente de gradient.

XX est unidimensionnel (moindres carrés ordinaires)

Le modèle que l'on souhaite créer est de forme :

y^=a0+a1.x\hat{y} = a*{0} + a*{1}.x

N'oubliez pas que le but de la régression linéaire est de trouver la droite qui correspond le mieux aux données. En d’autres termes, nous devons minimiser la distance entre les points de données et la ligne.

(a0^,a1^)=argmin(a0,a1)i=1N(yiyi^)2(\hat{a*{0}}, \hat{a*{1}}) = \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y*{i}})^2

=argmin(a0,a1)i=1N(yi(a0+a1.xi))2= \underset{(a*{0}, a*{1})}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x*{i}))^2

Mettons:

L=i=1N(yi(a0+a1.x_i))2L = \sum\limits*{i=1}^{N} (y*{i} - (a*{0} + a*{1}.x\_{i}))^2

Afin de trouver le minimum, nous devons résoudre les équations suivantes :

{La0=0La1=0\begin{cases} \frac{\partial L}{\partial a_{0}} = 0\\ \frac{\partial L}{\partial a_{1}} = 0 \end{cases}
{i=1N2(yi(a0+a1.xi))=0i=1N2xi(yi(a0+a1.xi))=0\begin{cases} \sum\limits_{i=1}^{N} -2(y_{i} - (a_{0} + a_{1}.x_{i})) = 0\\ \sum\limits_{i=1}^{N} -2x_{i}(y_{i} - (a_{0} + a_{1}.x_{i})) = 0 \end{cases}

Commençons par développer la première équation :

i=1Nyii=1Na0+i=1Na1.xi=0\sum\limits_{i=1}^{N} y_{i} - \sum\limits_{i=1}^{N}a_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\
i=1NyiNa0+i=1Na1.xi=0\sum\limits_{i=1}^{N} y_{i} - Na_{0} + \sum\limits_{i=1}^{N} a_{1}.x_{i} = 0\\
a0=i=1NyiNi=1NxiNa1a_{0} = \frac{\sum\limits_{i=1}^{N} y_{i}}{N} - \frac{\sum\limits_{i=1}^{N} x_{i}}{N}a_{1}
a0=YXa1a_{0} = Y - Xa_{1}

On substitue dans la deuxième équation :

i=1Nxi(yiY+Xa1a1xi)=0\sum\limits_{i=1}^{N} x_{i}(y_{i} - Y + Xa_{1} - a_{1}x_{i}) = 0
i=1N(yiY)+a1(Xxi)=0\sum\limits_{i=1}^{N} (y_{i} - Y) + a_{1}(X - x_{i}) = 0
i=1N(yiY)i=1Na1(xiX)=0\sum\limits_{i=1}^{N} (y_{i} - Y) - \sum\limits_{i=1}^{N}a_{1}(x_{i} - X) = 0
a1=i=1N(yiY)i=1N(xiX)=i=1N(yiY)(xiX)i=1N(xiX)2=COV(X,Y)VAR(X)a_{1} = \frac{\sum\limits_{i=1}^{N} (y_{i} - Y)}{\sum\limits_{i=1}^{N}(x_{i} - X)} = \frac{\sum\limits_{i=1}^{N} (y_{i} - Y)(x_{i} - X)}{\sum\limits_{i=1}^{N}(x_{i} - X)^2} = \frac{COV(X, Y)}{VAR(X)}

Nous remplaçons a0a_{0} :

{a0=YXCOV(X,Y)VAR(X)a1=COV(X,Y)VAR(X)\begin{cases} a_{0} = Y - X\frac{COV(X, Y)}{VAR(X)}\\ a_{1} = \frac{COV(X, Y)}{VAR(X)} \end{cases}

XX est multidimensionnel (moindres carrés ordinaires)

Dans ce cas, XiX_{i} n'est plus un nombre réel, mais plutôt un vecteur de taille pp :

Xi=(Xi1,Xi2,,Xip)X*{i} = (X*{i1},X*{i2},\dots,X*{ip})

Ainsi, le modèle s’écrit comme suit :

y^=a0+a1x1+a2x2++apx_p\hat{y} = a*{0} + a*{1}x*{1} + a*{2}x*{2} + \dots + a*{p}x\_{p}

ou, il peut être écrit sous forme matricielle :

Y^=X.W\hat{Y} = X.W

où:

  • YY est de forme (N,1)(N, 1).

  • XX est de forme (N,p)(N, p).

  • WW est de forme (p,1)(p, 1) : c'est le vecteur de paramètres (w1,w2,,wp)(w_{1}, w_{2}, \dots, w_{p}).

De la même manière que dans le premier cas, nous visons à minimiser la quantité suivante :

W^=argminWi=1N(yiy_i^)2\hat{W} = \underset{W}{\operatorname{argmin}} \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2

Mettons encore :

L=i=1N(yiy_i^)2L = \sum\limits*{i=1}^{N} (y*{i} - \hat{y\_{i}})^2

=(YXW)T(YXW)= (Y-XW)^{T}(Y-XW)
=YTYYTXWWTXTY+WTXTXW= Y^TY-Y^TXW-W^TX^TY+W^TX^TXW
=YTY2WTXTY+WTXTXW= Y^TY-2W^TX^TY+W^TX^TXW

Puisque nous voulons minimiser LL par rapport à WW, alors nous pouvons ignorer le premier terme « YTYY^TY » car il est indépendant de WW et résolvons l'équation suivante :

(2WTXTY+WTXTXW)W=0\frac{\partial (-2W^TX^TY+W^TX^TXW)}{\partial W} = 0
2XTY+2XTXW^=0-2X^TY+2X^TX\hat{W} = 0
W^=(XTX)1XTY\hat{W} = (X^TX)^{-1}X^TY

Utiliser la descente de gradient

Voici la formulation de l’algorithme de descente de gradient :

wn+1=wnlr×fw_nw*{n+1} = w*{n} - lr \times \frac{\partial f}{\partial w\_{n}}

Il ne reste plus qu'à l'appliquer sur les deux paramètres a0a_{0} et a1a_{1} (dans le cas d'une seule variable XX) :

{a0(n+1)=a0(n)lr×La0a1(n+1)=a1(n)lr×La1\begin{cases} a_{0}^{(n+1)} = a_{0}^{(n)} - lr \times \frac{\partial L}{\partial a_{0}}\\ a_{1}^{(n+1)} = a_{1}^{(n)} - lr \times \frac{\partial L}{\partial a_{1}} \end{cases}

et nous savons que :

{La0=i=1N2(yi(a0+a1.xi))La1=i=1N2xi(yi(a0+a1.xi))\begin{cases} \frac{\partial L}{\partial a_{0}} = \sum\limits_{i=1}^{N} -2(y_{i} - (a_{0} + a_{1}.x_{i}))\\ \frac{\partial L}{\partial a_{1}} = \sum\limits_{i=1}^{N} -2x_{i}(y_{i} - (a_{0} + a_{1}.x_{i})) \end{cases}

Par substitution :

{a0(n+1)=a0(n)+2×lr×i=1N(yi(a0(n)+a1(n).xi))a1(n+1)=a1(n)+2×lr×i=1Nxi(yi(a0(n)+a1(n).xi))\begin{cases} a_{0}^{(n+1)} = a_{0}^{(n)} + 2 \times lr \times \sum\limits_{i=1}^{N} (y_{i} - (a_{0}^{(n)} + a_{1}^{(n)}.x_{i}))\\ a_{1}^{(n+1)} = a_{1}^{(n)} + 2 \times lr \times \sum\limits_{i=1}^{N} x_{i}(y_{i} - (a_{0}^{(n)} + a_{1}^{(n)}.x_{i})) \end{cases}

Questionnaire

  • Quelle est la formule du vecteur de paramètres optimaux dans le cas d'une régression linéaire multidimensionnelle :

  • COV(X,Y)VAR(Y)\frac{COV(X, Y)}{VAR(Y)}

  • COV(X,Y)VAR(X)\frac{COV(X, Y)}{VAR(X)}

  • (XTX)1XTY(X^TX)^{-1}X^TY "correct"

  • Pourquoi met-on la dérivée à 0 ?

  • Trouver l'extremum. "correct"

  • Minimiser la dérivée.

  • Ne conserver que la partie réelle de la dérivée.

  • Quel est l'objectif de la régression linéaire ?

  • Trouver la droite qui passe par tous les points.

  • Pour trouver la ligne qui décrit le mieux les données."correct"

  • Trouver la ligne qui sépare le mieux les données.


Career Services background pattern

Services de carrière

Contact Section background image

Restons en contact

Code Labs Academy © 2024 Tous droits réservés.