La régression linéaire avec Python : Comment ça fonctionne ?

-
3
 m de lecture
-

Algorithme incontournable en Machine Learning, la régression linéaire permet d’établir des relations entre une ou plusieurs variables. Pour mettre en pratique cet algorithme en toute simplicité, les data scientists peuvent se tourner vers les langages de programmation, et notamment Python. Alors comment utiliser la régression linéaire avec Python ? DataScientest répond à la question.

Qu’est-ce que la régression linéaire ?

Avant de voir l’utilisation pratique de la régression linéaire avec Python, il convient de revenir aux bases.

Régression linéaire - Définition

Le modèle de régression linéaire est un algorithme d’apprentissage supervisé qui permet de prédire une variable cible continue (variable dépendante) grâce à une ou plusieurs variables explicatives (variables indépendantes ou prédictives). En d’autres termes, il s’agit d’établir les relations entre 2 ou plusieurs variables. 

Lorsqu’il n’y a qu’une variable explicative, on parle de régression linéaire simple. En revanche, s’il y en a plusieurs, on parle de régression linéaire multiple.

Qu’elle soit simple ou multiple, la régression linéaire peut être utilisée avec Python.

Régression linéaire - traductions mathématiques

L’équation mathématique de la régression linéaire se traduit comme suit :

Y = Θ0 + Θ1x1 + ... Θnxn

Dans cette équation : 

  • Y correspond à la valeur explicative ;
  • θ correspond au terme de biais ou vecteur de paramètres  ; 
  • x1, x2…, xn correspondent aux valeurs des entités.

D’un point de vue visuel, la régression linéaire s’applique lorsque les données d’entraînement représentent un nuage de point. L’objectif est alors d’identifier la droite qui se rapproche le plus possible de l’ensemble de points. Pour être sûr que cette droite soit la plus précise possible, il convient de mesurer l’erreur quadratique moyenne (ou mean squared error).

Les cas d’utilisation de la régression linéaire

Si la régression linéaire est le premier algorithme utilisé en machine learning, c’est parce que ses cas d’application sont multiples. Par exemple : 
  • Identifier les facteurs influençant la rentabilité d’un investissement ; 
  • Prévoir les ventes futures en analysant les ventes passées ; 
  • Anticiper le comportement des consommateurs ; 
  • Prédire le prix d’une maison en fonction de ses caractéristiques ;
  • etc.

Et pour chaque cas d’application de la régression linéaire, il est possible d’utiliser Python. 

Comment utiliser la régression linéaire avec Python ?

Pour vous expliquer la régression linéaire avec Python, il convient de prendre un exemple concret. Voici l’hypothèse de départ : 

Un restaurateur possédant déjà plusieurs restaurants dans plusieurs villes souhaite développer son activité en s’implantant à différents endroits. Pour analyser les prochaines villes où il va s’implanter, le restaurateur dispose de deux groupes de données : les bénéfices réalisés dans les villes où il est déjà implanté et les populations des villes. 

L’objectif étant de faire un maximum de bénéfices dans la ville où il va s’implanter, il faut prédire le gain effectué dans la ville où il va s’implanter (variable dépendante = Y) en fonction de la population de celle-ci (variable indépendante = X). 

Alors comment évaluer le modèle de régression linéaire avec Python ? Voici les démarches à suivre.

Formater les données

Pour modéliser la régression linéaire avec Python, il convient de préparer les données d’entraînement au bon format. L’idéal est de préparer un fichier CSV avec deux colonnes : une pour la population (variable indépendante) et une autre pour les bénéfices (variable indépendante). Voici à quoi peut ressembler ce fichier :

Population Bénéfices
811 000 175 000 €
757 000 91 300 €
551 000 21 000 €
372 000 - 6 000 €

Charger des données

Ces données d’entraînement doivent ensuite être chargées dans Python. Grâce à la librairie Pandas vous pouvez facilement lire des fichiers CSV. Voici la manipulation.
import pandas as pd 
df=pd.read_csv("D:\DEV\PYTHON_PROGRAMMING\donnees-d-entrainement-regression-lineaire.csv")
La fonction read_csv() renvoie à un tableau de deux dimensions contenant les variables dépendantes et indépendantes. Mais pour utiliser la régression linéaire avec Python,  il faut séparer les deux colonnes dans deux variables Python. Pour la première colonne correspondant à la taille de la population :
X = df.iloc[0:len(df),0]
Pour la deuxième colonne correspondant aux bénéfices :
Y = df.iloc[0:len(df),1]

Cela vous permet d’obtenir un simple tableau contenant l’ensemble du jeu de données d’entraînement.

Visualiser des données

Pour mieux comprendre la régression linéaire avec Python, il peut être utile de la visualiser. Cela vous permettra d’identifier les points et de mieux comprendre les dispersions. 

Afin d’obtenir un graphe de type nuage de points, vous pouvez utiliser Matplotlib, une librairie Python. Voici comment l’obtenir  :

import matplotlib.pyplot as plt
axes = plt.axes()
axes.grid()
plt.scatter(X,Y) 
plt.show()

Appliquer l’algorithme

À partir de là, l’objectif est de trouver une fonction prédictive F(X) avec pour données d’entrées la taille de la population, et pour données de sortie les bénéfices espérés.  Pour modéliser la régression linéaire avec Python, le plus simple est d’utiliser la bibliothèque Scikit Learn en tapant cette requête :
from sklearn.linear_model import LinearRegression.
À partir de là, vous pouvez construire votre modèle. Voici le code à rédiger :
reg = LinearRegression(normalize=True)
reg.fit(x,y)
Et pour trouver la droite f(x)=ax+b avec une erreur quadratique minimale, il convient de taper :
a = reg.coef_
b = reg.intercept.

Effectuer des prédictions

Pour tracer la courbe de régression linéaire avec Python, il suffit de taper le code ci-dessous :
ordonne = np.linspace
plt.scatter(x,y)
plt.plot(ordonne,a*ordonne+b,color='r')

Maîtrisez la régression linéaire avec Python

La régression linéaire est sans aucun doute l’algorithme à maîtriser absolument en data science. Et si son utilisation via Python vous paraît encore complexe, ce n’est que temporaire. En suivant la bonne formation, vous serez capable d’évaluer n’importe quel algorithme de machine learning à travers différents langages de programmation. Mais quelle formation choisir ? DataScientest, bien sûr. Découvrez notre programme.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?