Vous êtes sur la page 1sur 10

La régression linéaire

I. Introduction :
La régression linéaire est l’un des algorithmes les plus
populaires en apprentissage automatique. Cela est dû à sa simplicité
relative et à ses propriétés bien connues. La régression linéaire est
une méthode utilisée pour définir une relation entre une variable
dépendante (Y) et une variable indépendante (X). Qui est simplement
écrit comme:

Où y est la variable dépendante,

m le facteur ou le coefficient d'échelle,

b le coefficient de biais

et X la variable indépendante.

Le coefficient de biais donne un degré de liberté supplémentaire à ce


modèle. Le but est de tracer la ligne de meilleur ajustement entre X
et Y, qui estime la relation entre X et Y.

II. Manipulation
Mais comment trouver ces coefficients? On peut les trouver en
utilisant différentes approches. L'une est l'approche de la méthode
des moindres carrés ordinaires ou l'approche de la descente de
gradient.
Lors de cette manipulation, nous allons mettre en œuvre la méthode
des moindres carrés ordinaires.

 La méthode des moindres carrés ordinaires:


Nous avons discuté plus tôt de l'estimation de la relation entre X et Y
par rapport à une ligne. Par exemple, nous obtenons des données
d’entrées et de sorties et nous les représentons sur un graphique 2d.
on obtient un graphe comme ci-dessous:
La ligne visible dans le graphique représente la relation réelle que
nous allons accomplir. Nous voulons également minimiser l'erreur de
notre modèle. Cette ligne est le meilleur ajustement qui traverse la
plupart des points de dispersion et réduit également l’erreur, qui est
la distance entre le point et la ligne elle-même, comme illustré ci-
dessous.

Et l'erreur totale du modèle linéaire est la somme de l'erreur de


chaque point. C’est-à-dire :

ri = distance entre la ligne et le iéme point.

n = nombre total de points.

Nous faisons le carré de chaque distance, car certains points seraient


au-dessus de la ligne et d’autres en dessous. Nous pouvons minimiser
l'erreur de notre modèle linéaire en minimisant r, nous avons donc :
où ̅ est la moyenne de la variable d'entrée X

et ̅ étant la moyenne de la variable de sortie Y.

III. Implémentation de la méthode


Implémentons maintenant cette méthode en python. Pour
continuer, vous avez besoin de python. En utilisant pip nous allons
installer les bibliothèques suivantes :

 numpy
 pandas
 matplotlib

Nous allons utiliser un ensemble de données contenant la taille de la


tête et le poids du cerveau de différentes personnes. Afin de trouver
une relation entre ces deux données.

1. Nous commençons par importer le dataset :


#import des bibliothèques

import numpy as np

import matplotlib.pyplot as plt

import pandas as pd
dataset =
pd.read_csv('C:/Users/hp/Desktop/ML/HOUSE/datasetFR.csv')
print(dataset)
Output :

2. Trouvons la relation entre la taille de la tête et le poids


du cerveau.

# initialisation les inputs et les outputs


X = dataset['tete taille(cm^3)'].values
Y = dataset['cerveau poids(grams)'].values
# mean des inputs et outputs
x_mean
Nous= avons
np.mean(X)
maintenant notre coefficient de biais (b) et notre facteur
y_mean = np.mean(Y)
d'échelle
#le total des(m).valeurs
En termes mathématiques:
n = len(X)
#calcul de b1 et b0
numerator
Poids du= cerveau
0 = 325.57342104944223 + 0.26342933948939945 *
denominator = 0
Taille de la tête
for i in range(n):
numerator += (X[i] - x_mean) * (Y[i] - y_mean)
denominator += (X[i] - x_mean) ** 2
Nous avons maintenant un modèle linéaire. Nous allons représenter
b1 = les
numerator / denominator
résultats graphiquement.
b0 = y_mean - (b1 * x_mean)
#print des coefficients
print('b1 = ',b1 ,'\nb0 = ', b0)

Output :
3. Maintenant on va visualiser nos résultats :

#plot des valeurs


x_max = np.max(X) + 100
x_min = np.min(X) - 100
#calculer x et y
x = np.linspace(x_min, x_max, 1000)
y = b0 + b1 * x
#plot de la line
plt.plot(x, y, color='#00ff00', label='Régression
lnéaire)
#plot des données
plt.scatter(X, Y, color='#ff0000', label=’Données')
#x-axis label
plt.xlabel('tete taille(cm^3)')
#y-axis label
plt.ylabel('cerveau poids(grams)')
plt.legend()
plt.show()

Output :
Nous devons pouvoir mesurer la qualité de notre modèle (précision).
Il existe de nombreuses méthodes pour le faire, mais nous
appliquerions l'erreur quadratique moyenne et le coefficient de
détermination (score R²). Lorsqu’on compare deux estimateurs, on
considère que le meilleur est celui qui présente l’erreur quadratique
moyenne la plus faible.

L'erreur quadratique moyenne est la racine carrée de la somme de


toutes les erreurs divisée par le nombre de valeurs, ou
mathématiquement,
̂ est la jèmme valeur de sortie prévue. Maintenant nous allons
trouver RMSE.

rmse = 0
for i in range(n):
y_pred= b0 + b1* X[i]
rmse += (Y[i] - y_pred) ** 2

rmse = np.sqrt(rmse/n)

print(rmse)

Output : 72.1206213783709

Trouvons notre score R² pour pouvoir mesurer mathématiquement la


précision de notre modèle linéaire, mathématiquement :

4- le score R²
Mathématiquement :

Où :

SST est la somme totale des carrés

et SSR est la somme totale des carrés des résidus.

Le score R² est généralement compris entre 0 et 1. Il deviendra


également négatif si le modèle est complètement faux. Maintenant
nous allons trouver le score R².
sumofsquares = 0
sumofresiduals = 0

for i in range(n) :
y_pred = b0 + b1 * X[i]
sumofsquares += (Y[i] - y_mean) ** 2
sumofresiduals += (Y[i] - y_pred) **2

score = 1 - (sumofresiduals/sumofsquares)

print(score)

Output : 0.6393117199570003

0.63 n'est certainement pas mauvais, mais nous pouvons améliorer le


score par:

-Obtenir plus de dataset

-Améliorer les fonctionnalités

-Fit beaucoup de modèles

-etc…

IV. Conclusion
La régression linéaire est la base de tous les algorithmes du Machine
Learning et la plus facile à maîtriser. Nous avons mis en œuvre la
méthode des moindres carrés ordinaires pour prédire les poids du
cerveau à partir de la taille de la tête. Nous avons également mesuré
la précision avec l’erreur quadratique moyenne et le coefficient de
détermination (score R²).
BIBLIO :

 https://towardsdatascience.com/linear-regression-from-
scratch-cd0dee067f72
 Wikipédia

Vous aimerez peut-être aussi