Construction 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 :
123456import 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
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.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
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 estFalse, 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) : SiTrue, 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.Nonesignifie 1 sauf dans un contextejoblib.parallel_backend.-1signifie 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 :
1234567891011121314from 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)
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é.
123plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
Maintenant que nous disposons du modèle entraîné, il est possible d'utiliser la méthode .predict() pour prédire de nouvelles valeurs.
123X_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)
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.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Génial!
Completion taux amélioré à 3.33
Construction 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 :
123456import 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
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.
123456import matplotlib.pyplot as plt X = df['Father'] # Assign the feature y = df['Height'] # Assign the target plt.scatter(X,y) # Build scatterplot plt.show()
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 estFalse, 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) : SiTrue, 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.Nonesignifie 1 sauf dans un contextejoblib.parallel_backend.-1signifie 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 :
1234567891011121314from 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)
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é.
123plt.scatter(X, y) # Build a scatter plot plt.plot(X, model.predict(X_reshaped), color='red') # Plot the line using predictions plt.show()
Maintenant que nous disposons du modèle entraîné, il est possible d'utiliser la méthode .predict() pour prédire de nouvelles valeurs.
123X_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)
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.
Merci pour vos commentaires !