Apprentissage automatique - Régression multiple
- Page précédente Régression polynomiale
- Page suivante Zoom
Régression multiple (Multiple Regression)
La régression multiple est comme la régression linéaire, mais avec plusieurs valeurs indépendantes, ce qui signifie que nous essayons de prédire une valeur basée sur deux ou plusieurs variables.
Veuillez consulter les données suivantes, qui contiennent des informations sur les voitures.
Car | Model | Volume | Weight | CO2 |
---|---|---|---|---|
Toyota | Aygo | 1000 | 790 | 99 |
Mitsubishi | Space Star | 1200 | 1160 | 95 |
Skoda | Citigo | 1000 | 929 | 95 |
Fiat | 500 | 900 | 865 | 90 |
Mini | Cooper | 1500 | 1140 | 105 |
VW | Up! | 1000 | 929 | 105 |
Skoda | Fabia | 1400 | 1109 | 90 |
Mercedes | A-Class | 1500 | 1365 | 92 |
Ford | Fiesta | 1500 | 1112 | 98 |
Audi | A1 | 1600 | 1150 | 99 |
Hyundai | I20 | 1100 | 980 | 99 |
Suzuki | Swift | 1300 | 990 | 101 |
Ford | Fiesta | 1000 | 1112 | 99 |
Honda | Civic | 1600 | 1252 | 94 |
Hundai | I30 | 1600 | 1326 | 97 |
Opel | Astra | 1600 | 1330 | 97 |
BMW | 1 | 1600 | 1365 | 99 |
Mazda | 3 | 2200 | 1280 | 104 |
Skoda | Rapid | 1600 | 1119 | 104 |
Ford | Focus | 2000 | 1328 | 105 |
Ford | Mondeo | 1600 | 1584 | 94 |
Opel | Insignia | 2000 | 1428 | 99 |
Mercedes | C-Class | 2100 | 1365 | 99 |
Skoda | Octavia | 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 | E-Class | 2100 | 1605 | 115 |
Volvo | XC70 | 2000 | 1746 | 117 |
Ford | B-Max | 1600 | 1235 | 104 |
BMW | 2 | 1600 | 1390 | 108 |
Opel | Zafira | 1600 | 1405 | 109 |
Mercedes | SLK | 2500 | 1395 | 120 |
Nous pouvons prédire la quantité de CO2 émise par un véhicule en fonction de la taille du moteur, mais en utilisant la régression multiple, nous pouvons introduire plus de variables, telles que le poids du véhicule, pour rendre la prédiction plus précise.
Principe de fonctionnement
En Python, nous avons des modules qui peuvent accomplir cette tâche. Tout d'abord, importez le module Pandas :
import pandas
Le module Pandas nous permet de lire les fichiers csv et de renvoyer un objet DataFrame.
Ce fichier est utilisé à des fins de test uniquement, vous pouvez le télécharger ici :cars.csv
df = pandas.read_csv("cars.csv")
Puis énumérer les valeurs indépendantes, et nommer cette variable X.
Mettre les valeurs associées dans une variable nommée y.
X = df[['Weight', 'Volume']] y = df['CO2']
Conseil :Généralement, nommer la liste des valeurs indépendantes en majuscules X
,nommer la liste des valeurs associées en minuscules y
。
Nous utiliserons certains des méthodes du module sklearn, par conséquent, nous devons également importer ce module :
from sklearn import linear_model
Dans le module sklearn, nous utiliserons LinearRegression()
qui crée un objet de régression linéaire.
L'objet a une méthode nommée fit()
La méthode, qui prend en paramètres les valeurs indépendantes et dépendantes, et remplit l'objet de régression avec des données décrivant cette relation :
regr = linear_model.LinearRegression() regr.fit(X, y)
Maintenant, nous avons un objet de régression qui peut prédire les valeurs de CO2 en fonction du poids et du volume du véhicule :
# Prédire la quantité de CO2 émise par un véhicule pesant 2300kg et ayant un volume de 1300ccm : predictedCO2 = regr.predict([[2300, 1300]])
Exemple
Voyons un exemple complet :
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Weight', 'Volume']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) # Prédire la quantité de CO2 émise par un véhicule pesant 2300kg et ayant un volume de 1300ccm : predictedCO2 = regr.predict([[2300, 1300]]) print(predictedCO2)
Résultat :
[107.2087328]
Nous prédisons qu'un véhicule équipé d'un moteur de 1,3 litre, pesant 2300 kg, émettra environ 107 grammes de dioxyde de carbone pour chaque kilomètre parcouru.
Coefficient
Un coefficient est un facteur qui décrit la relation avec une variable inconnue.
Par exemple : si x
si une variable est 2x
C'est x
deux fois.x
C'est une variable inconnue, le nombre 2
C'est un coefficient.
Dans ce cas, nous pouvons demander les valeurs des coefficients de poids par rapport au CO2, ainsi que les valeurs des coefficients de volume par rapport au CO2. Les réponses que nous obtenons nous indiquent ce qui se passera si nous augmentons ou diminuons l'une des valeurs indépendantes.
Exemple
Imprimer les valeurs des coefficients de l'objet de régression :
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Weight', 'Volume']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) print(regr.coef_)
Résultat :
[0.00755095 0.00780526]
Explication des résultats
L'array 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 1g, la quantité de CO2 émise augmentera de 0.00755095g.
Si la taille (volume) du moteur augmente de 1 ccm, la quantité de CO2 émise augmentera de 0.00780526g.
Je pense que c'est une bonne estimation, mais faites toujours des tests !
Nous avons prédit précédemment que si une voiture équipée d'un moteur de 1300ccm pèse 2300 kg, la quantité de dioxyde de carbone émis serait d'environ 107 grammes.
Que se passerait-il si nous ajoutions 1000g de poids ?
Exemple
Copiez l'exemple précédent, mais changez le poids du véhicule de 2300 à 3300 :
import pandas from sklearn import linear_model df = pandas.read_csv("cars.csv") X = df[['Weight', 'Volume']] y = df['CO2'] regr = linear_model.LinearRegression() regr.fit(X, y) predictedCO2 = regr.predict([[3300, 1300]]) print(predictedCO2)
Résultat :
[114.75968007]
Nous avons prédit que, pour une voiture équipée d'un moteur de 1,3 litre et pesant 3,3 tonnes, la libération d'environ 115 grammes de dioxyde de carbone est libérée pour chaque kilomètre parcouru.
Cela indique que le coefficient de 0.00755095 est correct :
107.2087328 + (1000 * 0.00755095) = 114.75968
- Page précédente Régression polynomiale
- Page suivante Zoom