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 avec Statsmodels | Régression Linéaire Simple
Régression Linéaire Avec Python

bookConstruction de la Régression Linéaire avec Statsmodels

Dans le chapitre précédent, nous avons utilisé une fonction de NumPy pour calculer les paramètres.
Nous allons maintenant utiliser un objet de classe au lieu de la fonction pour représenter la régression linéaire. Cette approche nécessite plus de lignes de code pour trouver les paramètres, mais elle stocke de nombreuses informations utiles dans l'objet et rend la prédiction plus directe.

Construction d'un modèle de régression linéaire

Dans statsmodels, la classe OLS peut être utilisée pour créer un modèle de régression linéaire.

Nous devons d'abord initialiser un objet de classe OLS en utilisant sm.OLS(y, X_tilde). Ensuite, l'entraîner à l'aide de la méthode fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Ce qui est équivalent à :

model = sm.OLS(y, X_tilde).fit()
Note
Remarque

Le constructeur de la classe OLS attend un tableau spécifique X_tilde en entrée, comme vu dans l’Équation Normale. Il est donc nécessaire de convertir votre tableau X en X_tilde. Cela peut être réalisé à l’aide de la fonction sm.add_constant().

Recherche des paramètres

Une fois le modèle entraîné, il est possible d’accéder facilement aux paramètres à l’aide de l’attribut params.

12345678910111213141516
import statsmodels.api as sm # import statsmodels 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Réalisation des prédictions

De nouvelles instances peuvent être facilement prédites à l'aide de la méthode predict(), mais il est également nécessaire de prétraiter les entrées correspondantes :

1234567891011121314151617
import statsmodels.api as sm 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print(y_pred)
copy

Obtention du résumé

Comme vous l'avez probablement remarqué, l'utilisation de la classe OLS n'est pas aussi simple que la fonction polyfit(). Cependant, l'utilisation de OLS présente des avantages. Lors de l'entraînement, de nombreuses informations statistiques sont calculées. Vous pouvez accéder à ces informations à l'aide de la méthode summary().

123456789101112
import statsmodels.api as sm 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 X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Cela fait beaucoup de statistiques. Nous aborderons les parties les plus importantes du tableau dans les sections suivantes.

question mark

Choisissez l'affirmation INCORRECTE.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4

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 de la Régression Linéaire avec Statsmodels

Glissez pour afficher le menu

Dans le chapitre précédent, nous avons utilisé une fonction de NumPy pour calculer les paramètres.
Nous allons maintenant utiliser un objet de classe au lieu de la fonction pour représenter la régression linéaire. Cette approche nécessite plus de lignes de code pour trouver les paramètres, mais elle stocke de nombreuses informations utiles dans l'objet et rend la prédiction plus directe.

Construction d'un modèle de régression linéaire

Dans statsmodels, la classe OLS peut être utilisée pour créer un modèle de régression linéaire.

Nous devons d'abord initialiser un objet de classe OLS en utilisant sm.OLS(y, X_tilde). Ensuite, l'entraîner à l'aide de la méthode fit().

model = sm.OLS(y, X_tilde)
model = model.fit()

Ce qui est équivalent à :

model = sm.OLS(y, X_tilde).fit()
Note
Remarque

Le constructeur de la classe OLS attend un tableau spécifique X_tilde en entrée, comme vu dans l’Équation Normale. Il est donc nécessaire de convertir votre tableau X en X_tilde. Cela peut être réalisé à l’aide de la fonction sm.add_constant().

Recherche des paramètres

Une fois le modèle entraîné, il est possible d’accéder facilement aux paramètres à l’aide de l’attribut params.

12345678910111213141516
import statsmodels.api as sm # import statsmodels 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables # Get the correct form of input for OLS X_tilde = sm.add_constant(X) # Initialize an OLS object regression_model = sm.OLS(y, X_tilde) # Train the object regression_model = regression_model.fit() # Get the paramters beta_0, beta_1 = regression_model.params print('beta_0 is: ', beta_0) print('beta_1 is: ', beta_1)
copy

Réalisation des prédictions

De nouvelles instances peuvent être facilement prédites à l'aide de la méthode predict(), mais il est également nécessaire de prétraiter les entrées correspondantes :

1234567891011121314151617
import statsmodels.api as sm 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) # Open the file X, y = df['Father'], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Preprocess regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Predict new values X_new = np.array([65,70,75]) # Feature values of new instances X_new_tilde = sm.add_constant(X_new) # Preprocess X_new y_pred = regression_model.predict(X_new_tilde) # Predict the target print(y_pred)
copy

Obtention du résumé

Comme vous l'avez probablement remarqué, l'utilisation de la classe OLS n'est pas aussi simple que la fonction polyfit(). Cependant, l'utilisation de OLS présente des avantages. Lors de l'entraînement, de nombreuses informations statistiques sont calculées. Vous pouvez accéder à ces informations à l'aide de la méthode summary().

123456789101112
import statsmodels.api as sm 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 X, y = df['Father'], df['Height'] X_tilde = sm.add_constant(X) # Preprocess X regression_model = sm.OLS(y, X_tilde) # Initialize an OLS object regression_model = regression_model.fit() # Train the object # Print the summary print(regression_model.summary())
copy

Cela fait beaucoup de statistiques. Nous aborderons les parties les plus importantes du tableau dans les sections suivantes.

question mark

Choisissez l'affirmation INCORRECTE.

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 1. Chapitre 4
some-alt