Maschinelles Lernen – Multiple Regression
Mehrfache Regression
Die multiple Regression ist wie die lineare Regression , aber mit mehr als einem unabhängigen Wert, was bedeutet, dass wir versuchen, einen Wert basierend auf zwei oder mehr Variablen vorherzusagen .
Schauen Sie sich den Datensatz unten an, er enthält einige Informationen über Autos.
Wagen | Modell | Volumen | Gewicht | CO2 |
Toyota | Aygo | 1000 | 790 | 99 |
Mitsubishi | Weltraumstern | 1200 | 1160 | 95 |
Skoda | Citigo | 1000 | 929 | 95 |
Fiat | 500 | 900 | 865 | 90 |
Mini | Cooper | 1500 | 1140 | 105 |
VW | Hoch! | 1000 | 929 | 105 |
Skoda | Fabia | 1400 | 1109 | 90 |
Mercedes | Eine Klasse | 1500 | 1365 | 92 |
Ford | Fest | 1500 | 1112 | 98 |
Audi | A1 | 1600 | 1150 | 99 |
Hyundai | I20 | 1100 | 980 | 99 |
Suzuki | Schnell | 1300 | 990 | 101 |
Ford | Fest | 1000 | 1112 | 99 |
Honda | Bürgerlich | 1600 | 1252 | 94 |
Hyundai | I30 | 1600 | 1326 | 97 |
Opel | Astra | 1600 | 1330 | 97 |
BMW | 1 | 1600 | 1365 | 99 |
Mazda | 3 | 2200 | 1280 | 104 |
Skoda | Schnell | 1600 | 1119 | 104 |
Ford | Fokus | 2000 | 1328 | 105 |
Ford | Mondeo | 1600 | 1584 | 94 |
Opel | Insignien | 2000 | 1428 | 99 |
Mercedes | C-Klasse | 2100 | 1365 | 99 |
Skoda | Oktavia | 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-Klasse | 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 |
Wir können den CO2-Ausstoß eines Autos basierend auf der Größe des Motors vorhersagen, aber mit multipler Regression können wir mehr Variablen wie das Gewicht des Autos einbeziehen, um die Vorhersage genauer zu machen.
Wie funktioniert es?
In Python haben wir Module, die die Arbeit für uns erledigen. Beginnen Sie mit dem Importieren des Pandas-Moduls.
import pandas
Erfahren Sie mehr über das Pandas-Modul in unserem Pandas-Tutorial .
Das Pandas-Modul ermöglicht es uns, CSV-Dateien zu lesen und ein DataFrame-Objekt zurückzugeben.
Die Datei ist nur für Testzwecke gedacht, Sie können sie hier herunterladen: cars.csv
df = pandas.read_csv("cars.csv")
Erstellen Sie dann eine Liste der unabhängigen Werte und nennen Sie diese Variable X
.
Setzen Sie die abhängigen Werte in eine Variable namens y
.
X = df[['Weight', 'Volume']]
y = df['CO2']
Tipp: Es ist üblich, die Liste der unabhängigen Werte mit einem großen X und die Liste der abhängigen Werte mit einem kleinen y zu benennen.
Wir werden einige Methoden aus dem sklearn-Modul verwenden, also müssen wir dieses Modul auch importieren:
from sklearn import linear_model
Aus dem sklearn-Modul verwenden wir die LinearRegression()
Methode, um ein lineares Regressionsobjekt zu erstellen.
Dieses Objekt hat eine aufgerufene Methode fit()
, die die unabhängigen und abhängigen Werte als Parameter nimmt und das Regressionsobjekt mit Daten füllt, die die Beziehung beschreiben:
regr = linear_model.LinearRegression()
regr.fit(X, y)
Jetzt haben wir ein Regressionsobjekt, das bereit ist, CO2-Werte basierend auf dem Gewicht und Volumen eines Autos vorherzusagen:
#predict the CO2 emission of a car where the weight
is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
Beispiel
Sehen Sie das gesamte Beispiel in Aktion:
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)
#predict the CO2
emission of a car where the weight is 2300kg, and the volume is 1300cm3:
predictedCO2 = regr.predict([[2300, 1300]])
print(predictedCO2)
Ergebnis:
[107.2087328]
Wir haben vorausgesagt, dass ein Auto mit 1,3-Liter-Motor und einem Gewicht von 2300 kg etwa 107 Gramm CO2 für jeden gefahrenen Kilometer freisetzt.
Koeffizient
Der Koeffizient ist ein Faktor, der den Zusammenhang mit einer unbekannten Größe beschreibt.
Beispiel: wenn x
eine Variable ist, dann
2x
ist x
zweimal. x
ist die unbekannte Variable und die Zahl 2
ist der Koeffizient.
In diesem Fall können wir nach dem Koeffizientenwert von Gewicht zu CO2 und von Volumen zu CO2 fragen. Die Antwort(en), die wir erhalten, sagen uns, was passieren würde, wenn wir einen der unabhängigen Werte erhöhen oder verringern.
Beispiel
Drucken Sie die Koeffizientenwerte des Regressionsobjekts:
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_)
Ergebnis:
[0.00755095 0.00780526]
Ergebnis erklärt
Das Ergebnisarray repräsentiert die Koeffizientenwerte von Gewicht und Volumen.
Gewicht: 0,00755095
Volumen: 0,00780526
Diese Werte sagen uns, dass bei einer Gewichtszunahme von 1 kg die CO2-Emission um 0,00755095 g zunimmt.
Und wenn die Motorgröße (Volumen) um 1 cm 3 zunimmt, steigt die CO2-Emission um 0,00780526 g.
Ich denke, das ist eine faire Vermutung, aber testen wir es!
Wir haben bereits vorhergesagt, dass die CO2-Emissionen bei einem Gewicht von 2300 kg mit einem 1300-cm 3 -Motor etwa 107 g betragen.
Was ist, wenn wir das Gewicht um 1000 kg erhöhen?
Beispiel
Kopieren Sie das vorherige Beispiel, aber ändern Sie das Gewicht von 2300 auf 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)
Ergebnis:
[114.75968007]
Wir haben vorausgesagt, dass ein Auto mit 1,3-Liter-Motor und einem Gewicht von 3300 kg etwa 115 Gramm CO2 für jeden gefahrenen Kilometer freisetzt.
Was zeigt, dass der Koeffizient von 0,00755095 korrekt ist:
107,2087328 + (1000 * 0,00755095) = 114,75968