Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Construction d'une Régression Linéaire avec NumPy | Régression Linéaire Simple
Régression Linéaire Avec Python

bookConstruction d'une Régression Linéaire avec NumPy

Vous connaissez déjà la régression linéaire simple et la méthode pour trouver la droite qui s'ajuste le mieux aux données. Vous allez maintenant suivre toutes les étapes pour construire une régression linéaire à partir d'un jeu de données réel.

Chargement des données

Nous disposons d'un fichier, simple_height_data.csv, contenant les données de nos exemples. Nous allons charger ce fichier et l'examiner :

123456
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
copy

Ainsi, le jeu de données comporte deux colonnes : la première est 'Father', qui représente la caractéristique d'entrée, et la seconde est 'Height', qui constitue notre variable cible.

Les valeurs cibles seront attribuées à la variable y et les valeurs des caractéristiques à X, puis un nuage de points sera construit.

12345678910
import pandas as pd import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Recherche des paramètres

NumPy propose une fonction pratique pour déterminer les paramètres de la régression linéaire.

La régression linéaire est une régression polynomiale de degré 1 (nous aborderons la régression polynomiale dans les sections suivantes). C'est pourquoi il est nécessaire de spécifier deg=1 pour obtenir les paramètres de la régression linéaire.
Voici un exemple :

12345678910
import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Remarque

Si vous n'êtes pas familier avec la syntaxe beta_1, beta_0 = np.polyfit(X,y,1), cela s'appelle le déballage (unpacking). Si vous disposez d'un itérateur (par exemple, une liste, un tableau NumPy ou une série pandas) contenant deux éléments, écrire

a, b = my_iterator

est équivalent à

a = my_iterator[0]
b = my_iterator[1]

Et puisque la fonction polyfit() retourne un tableau NumPy avec deux valeurs, il est possible d'utiliser cette syntaxe.

Réalisation des prédictions

Nous pouvons maintenant tracer la droite et prédire de nouvelles variables à l'aide des paramètres.

123456789101112
import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
copy

Maintenant que nous avons les paramètres, il est possible d'utiliser l'équation de la régression linéaire pour prédire de nouvelles valeurs.

1234567891011
import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
copy

Il est donc assez simple d'obtenir les paramètres de la régression linéaire. Cependant, certaines bibliothèques peuvent également fournir des informations supplémentaires.

question mark

Vous pouvez trouver les paramètres de la régression linéaire simple en utilisant la fonction NumPy suivante :

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 3

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 5.26

bookConstruction d'une Régression Linéaire avec NumPy

Glissez pour afficher le menu

Vous connaissez déjà la régression linéaire simple et la méthode pour trouver la droite qui s'ajuste le mieux aux données. Vous allez maintenant suivre toutes les étapes pour construire une régression linéaire à partir d'un jeu de données réel.

Chargement des données

Nous disposons d'un fichier, simple_height_data.csv, contenant les données de nos exemples. Nous allons charger ce fichier et l'examiner :

123456
import pandas as pd file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file print(df.head()) # Print the first 5 instances from a dataset
copy

Ainsi, le jeu de données comporte deux colonnes : la première est 'Father', qui représente la caractéristique d'entrée, et la seconde est 'Height', qui constitue notre variable cible.

Les valeurs cibles seront attribuées à la variable y et les valeurs des caractéristiques à X, puis un nuage de points sera construit.

12345678910
import pandas as pd import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
copy

Recherche des paramètres

NumPy propose une fonction pratique pour déterminer les paramètres de la régression linéaire.

La régression linéaire est une régression polynomiale de degré 1 (nous aborderons la régression polynomiale dans les sections suivantes). C'est pourquoi il est nécessaire de spécifier deg=1 pour obtenir les paramètres de la régression linéaire.
Voici un exemple :

12345678910
import pandas as pd import numpy as np file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the files X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Remarque

Si vous n'êtes pas familier avec la syntaxe beta_1, beta_0 = np.polyfit(X,y,1), cela s'appelle le déballage (unpacking). Si vous disposez d'un itérateur (par exemple, une liste, un tableau NumPy ou une série pandas) contenant deux éléments, écrire

a, b = my_iterator

est équivalent à

a = my_iterator[0]
b = my_iterator[1]

Et puisque la fonction polyfit() retourne un tableau NumPy avec deux valeurs, il est possible d'utiliser cette syntaxe.

Réalisation des prédictions

Nous pouvons maintenant tracer la droite et prédire de nouvelles variables à l'aide des paramètres.

123456789101112
import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters plt.scatter(X,y) # Build a scatter plot plt.plot(X, beta_0 + beta_1 * X, color='red') # Plot the line plt.show()
copy

Maintenant que nous avons les paramètres, il est possible d'utiliser l'équation de la régression linéaire pour prédire de nouvelles valeurs.

1234567891011
import pandas as pd import numpy as np import matplotlib.pyplot as plt file_link = 'https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/simple_height_data.csv' df = pd.read_csv(file_link) # Read the file X, y = df['Father'], df['Height'] # Assign the variables beta_1, beta_0 = np.polyfit(X, y, 1) # Get the parameters X_new = np.array([65, 70, 75]) # Feature values of new instances y_pred = beta_0 + beta_1 * X_new # Predict the target print('Predicted y: ', y_pred)
copy

Il est donc assez simple d'obtenir les paramètres de la régression linéaire. Cependant, certaines bibliothèques peuvent également fournir des informations supplémentaires.

question mark

Vous pouvez trouver les paramètres de la régression linéaire simple en utilisant la fonction NumPy suivante :

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 3
some-alt