Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Construction de la Régression Linéaire | Section
Fondamentaux de l'apprentissage supervisé

bookConstruction de la Régression Linéaire

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 parcourir toutes les étapes de la construction d'une régression linéaire sur 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 constitue la caractéristique d'entrée, et la seconde est 'Height', qui représente notre variable cible.

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

123456
import matplotlib.pyplot as plt 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

Pour implémenter la régression linéaire dans Scikit-learn, la classe LinearRegression est utilisée.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Paramètres

La classe LinearRegression possède plusieurs paramètres qui contrôlent la manière dont le modèle est ajusté.

  • fit_intercept (par défaut=True) : Indique s'il faut calculer l'ordonnée à l'origine (biais) pour ce modèle. Si la valeur est False, aucune ordonnée à l'origine ne sera utilisée dans les calculs (c'est-à-dire que les données sont supposées centrées).
  • copy_X (par défaut=True) : Si True, X sera copié ; sinon, il pourra être écrasé.
  • n_jobs (par défaut=None) : Nombre de tâches à utiliser pour le calcul. Cela n'accélère le processus que pour n_targets > 1 et des problèmes suffisamment grands. None signifie 1 sauf dans un contexte joblib.parallel_backend. -1 signifie utiliser tous les processeurs.
  • positive (par défaut=False) : Si activé (True), force les coefficients à être positifs. Cette option n'est prise en charge que pour les tableaux denses.

Méthodes courantes

  • fit(X, y) : Ajuster le modèle linéaire.
  • predict(X) : Prédire à l'aide du modèle linéaire.
  • score(X, y) : Retourner le coefficient de détermination de la prédiction.

Attributs

  • coef_ : Coefficients estimés pour le problème de régression linéaire.
  • intercept_ : Terme indépendant dans le modèle linéaire.

Dans Scikit-learn, nous utilisons la classe LinearRegression du module linear_model. Contrairement à NumPy, nous ne définissons pas le degré ici ; cette classe est spécifiquement conçue pour les modèles linéaires. Nous utilisons la méthode .fit() pour calculer les paramètres.

Voici un exemple :

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Note

Si vous n'êtes pas familier avec la syntaxe model.intercept_ et model.coef_, il s'agit d'une convention de Scikit-learn. Les attributs calculés (appris) lors du processus d'entraînement se terminent toujours par un underscore _ (par exemple, intercept_, coef_). L'attribut intercept_ est une valeur unique, tandis que coef_ est un tableau contenant les coefficients pour chaque variable (en régression linéaire simple, il ne contient qu'un seul élément).

Réalisation des prédictions

Nous pouvons maintenant tracer la droite et prédire de nouvelles variables à l'aide du modèle entraîné.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Maintenant que nous disposons du modèle entraîné, il est possible d'utiliser la méthode .predict() pour prédire de nouvelles valeurs.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(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

Quelle classe est utilisée pour implémenter la régression linéaire dans Scikit-learn ?

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

bookConstruction de la Régression Linéaire

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 parcourir toutes les étapes de la construction d'une régression linéaire sur 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 constitue la caractéristique d'entrée, et la seconde est 'Height', qui représente notre variable cible.

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

123456
import matplotlib.pyplot as plt 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

Pour implémenter la régression linéaire dans Scikit-learn, la classe LinearRegression est utilisée.

LinearRegression(fit_intercept=True, copy_X=True, n_jobs=None, positive=False)

Paramètres

La classe LinearRegression possède plusieurs paramètres qui contrôlent la manière dont le modèle est ajusté.

  • fit_intercept (par défaut=True) : Indique s'il faut calculer l'ordonnée à l'origine (biais) pour ce modèle. Si la valeur est False, aucune ordonnée à l'origine ne sera utilisée dans les calculs (c'est-à-dire que les données sont supposées centrées).
  • copy_X (par défaut=True) : Si True, X sera copié ; sinon, il pourra être écrasé.
  • n_jobs (par défaut=None) : Nombre de tâches à utiliser pour le calcul. Cela n'accélère le processus que pour n_targets > 1 et des problèmes suffisamment grands. None signifie 1 sauf dans un contexte joblib.parallel_backend. -1 signifie utiliser tous les processeurs.
  • positive (par défaut=False) : Si activé (True), force les coefficients à être positifs. Cette option n'est prise en charge que pour les tableaux denses.

Méthodes courantes

  • fit(X, y) : Ajuster le modèle linéaire.
  • predict(X) : Prédire à l'aide du modèle linéaire.
  • score(X, y) : Retourner le coefficient de détermination de la prédiction.

Attributs

  • coef_ : Coefficients estimés pour le problème de régression linéaire.
  • intercept_ : Terme indépendant dans le modèle linéaire.

Dans Scikit-learn, nous utilisons la classe LinearRegression du module linear_model. Contrairement à NumPy, nous ne définissons pas le degré ici ; cette classe est spécifiquement conçue pour les modèles linéaires. Nous utilisons la méthode .fit() pour calculer les paramètres.

Voici un exemple :

1234567891011121314
from sklearn.linear_model import LinearRegression import numpy as np # Convert the pandas Series to a NumPy array, then reshape X_reshaped = X.values.reshape(-1, 1) model = LinearRegression() model.fit(X_reshaped, y) # Train the model beta_0 = model.intercept_ # Get the intercept (beta_0) beta_1 = model.coef_[0] # Get the coefficient (beta_1) print('beta_0 is', beta_0) print('beta_1 is', beta_1)
copy
Note
Note

Si vous n'êtes pas familier avec la syntaxe model.intercept_ et model.coef_, il s'agit d'une convention de Scikit-learn. Les attributs calculés (appris) lors du processus d'entraînement se terminent toujours par un underscore _ (par exemple, intercept_, coef_). L'attribut intercept_ est une valeur unique, tandis que coef_ est un tableau contenant les coefficients pour chaque variable (en régression linéaire simple, il ne contient qu'un seul élément).

Réalisation des prédictions

Nous pouvons maintenant tracer la droite et prédire de nouvelles variables à l'aide du modèle entraîné.

123
plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
copy

Maintenant que nous disposons du modèle entraîné, il est possible d'utiliser la méthode .predict() pour prédire de nouvelles valeurs.

123
X_new = np.array([[65], [70], [75]]) # Feature values (must be 2D) y_pred = model.predict(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

Quelle classe est utilisée pour implémenter la régression linéaire dans Scikit-learn ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 3
some-alt