Python Machine Learning Régression multiple

Régression multiple
La régression multiple est comme la régression linéaire, mais avec plus d’une valeur indépendante, ce qui signifie que nous essayons de prédire une valeur basée sur deux ou plus variables.
Jetez un oeil à l’ensemble de données ci-dessous, il contient des informations sur les voitures.
Voiture | Modèle | Volume | Lester | CO2 |
Toyota | Aygo | 1000 | 790 | 99 |
Mitsubishi | Étoile de l’espace | 1200 | 1160 | 95 |
Skoda | Citigo | 1000 | 929 | 95 |
Décret | 500 | 900 | 865 | 90 |
mini | Tonnelier | 1500 | 1140 | 105 |
VW | En haut! | 1000 | 929 | 105 |
Skoda | fabienne | 1400 | 1109 | 90 |
Mercedes | Une classe | 1500 | 1365 | 92 |
Gué | Fête | 1500 | 1112 | 98 |
Audi | A1 | 1600 | 1150 | 99 |
Hyundai | I20 | 1100 | 980 | 99 |
Suzuki | Rapide | 1300 | 990 | 101 |
Gué | Fête | 1000 | 1112 | 99 |
Honda | Civique | 1600 | 1252 | 94 |
Hundaï | I30 | 1600 | 1326 | 97 |
Opel | Astra | 1600 | 1330 | 97 |
BMW | 1 | 1600 | 1365 | 99 |
Mazda | 3 | 2200 | 1280 | 104 |
Skoda | Rapide | 1600 | 1119 | 104 |
Gué | Se concentrer | 2000 | 1328 | 105 |
Gué | Mondeo | 1600 | 1584 | 94 |
Opel | Insigne | 2000 | 1428 | 99 |
Mercedes | Classe C | 2100 | 1365 | 99 |
Skoda | Octavie | 1600 | 1415 | 99 |
VOLVO | S60 | 2000 | 1415 | 99 |
Mercedes | CLA | 1500 | 1465 | 102 |
Audi | A4 | 2000 | 1490 | 104 |
Audi | A6 | 2000 | 1725 | 114 |
VOLVO | V70 | 1600 | 1523 | 109 |
BMW | 5 | 2000 | 1705 | 114 |
Mercedes | Classe E | 2100 | 1605 | 115 |
VOLVO | XC70 | 2000 | 1746 | 117 |
Gué | B-Max | 1600 | 1235 | 104 |
BMW | 2 | 1600 | 1390 | 108 |
Opel | Zafira | 1600 | 1405 | 109 |
Mercedes | SLK | 2500 | 1395 | 120 |
Nous pouvons prédire les émissions de CO2 d’une voiture en fonction de la taille du moteur, mais avec une régression multiple, nous pouvons ajouter plus de variables, comme le poids de la voiture, pour rendre la prédiction plus précise.
Comment ça marche?
En Python, nous avons des modules qui feront le travail pour nous. Commencez par importer le module Pandas.
Découvrez le module Pandas dans notre didacticiel Pandas.
Le module Pandas nous permet de lire des fichiers csv et de retourner un objet DataFrame.
Le fichier est destiné à des fins de test uniquement, vous pouvez le télécharger ici : data.csv
df = pandas.read_csv("https://www.Infodewi.com/python/data.csv")
Faites ensuite une liste des valeurs indépendantes et appelez cette variable X
.
Placez les valeurs dépendantes dans une variable appelée y
.
X = df[['Weight', 'Volume']]
y = df['CO2']
Conseil: Il est courant de nommer la liste des valeurs indépendantes avec un X majuscule et la liste des valeurs dépendantes avec un y minuscule.
Nous utiliserons certaines méthodes du module sklearn, nous devrons donc également importer ce module :
from sklearn import linear_model
A partir du module sklearn nous allons utiliser le LinearRegression()
méthode pour créer un objet de régression linéaire.
Cet objet a une méthode appelée fit()
qui prend les valeurs indépendantes et dépendantes comme paramètres et remplit l’objet de régression avec des données décrivant la relation :
regr = linear_model.LinearRegression()
regr.fit(X, y)
Nous avons maintenant un objet de régression prêt à prédire les valeurs de CO2 en fonction du poids et du volume d’une voiture :
#predict the CO2 emission of a car where the weight
is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
Exemple
Voir l’exemple entier en action :
importer des pandas
de sklearn importer linear_model
df = pandas.read_csv(« data.csv »)
X = df[[‘Weight’, ‘Volume’]]
y = df[‘CO2’]
regr = linear_model.LinearRegression()
regr.fit(X, y)
#prévoir l’émission de CO2 d’une voiture dont le poids est de 2300kg et le volume de 1300cm3:
préditCO2 = regr.predict([[2300, 1300]])
impression (CO2 prédit)
Résultat:
Exemple d’exécution »
Nous avons prédit qu’une voiture avec un moteur de 1,3 litre et un poids de 2 300 kg dégagera environ 107 grammes de CO2 pour chaque kilomètre parcouru.
Coefficient
Le coefficient est un facteur qui décrit la relation avec une variable inconnue.
Exemple : si x
est une variable, alors
2x
est x
Deux fois. x
est la variable inconnue, et le nombre 2
est le coefficient.
Dans ce cas, on peut demander la valeur du coefficient de poids contre CO2, et de volume contre CO2. La ou les réponses que nous obtenons nous disent ce qui se passerait si nous augmentions ou diminuions l’une des valeurs indépendantes.
Exemple
Imprimez les valeurs de coefficient de l’objet de régression :
importer des pandas
de sklearn importer linear_model
df = pandas.read_csv(« data.csv »)
X = df[[‘Weight’, ‘Volume’]]
y = df[‘CO2’]
regr = linear_model.LinearRegression()
regr.fit(X, y)
print(regr.coef_)
Résultat:
Exemple d’exécution »
Résultat expliqué
Le tableau de résultats représente les valeurs des coefficients de poids et de volume.
Poids : 0,00755095
Volume : 0,00780526
Ces valeurs nous indiquent que si le poids augmente de 1 kg, les émissions de CO2 augmentent de 0,00755095 g.
Et si la taille du moteur (Volume) augmente de 1 cm3l’émission de CO2 augmente de 0,00780526 g.
Je pense que c’est une supposition juste, mais laissez-le tester!
Nous avons déjà prédit que si une voiture avec un 1300cm3 moteur pèse 2300kg, l’émission de CO2 sera d’environ 107g.
Et si on augmentait le poids de 1000kg ?
Exemple
Copiez l’exemple précédent, mais changez le poids de 2300 à 3300 :
importer des pandas
de sklearn importer linear_model
df = pandas.read_csv(« data.csv »)
X = df[[‘Weight’, ‘Volume’]]
y = df[‘CO2’]
regr = linear_model.LinearRegression()
regr.fit(X, y)
préditCO2 = regr.predict([[3300, 1300]])
impression (CO2 prédit)
Résultat:
Exemple d’exécution »
Nous avons prédit qu’une voiture avec un moteur de 1,3 litre et un poids de 3 300 kg dégagera environ 115 grammes de CO2 pour chaque kilomètre parcouru.
Ce qui montre que le coefficient de 0,00755095 est correct :
107,2087328 + (1000 * 0,00755095) = 114,75968
#Python #Machine #Learning #Régression #multiple