Maschinelles Lernen - Multivariate Regression
- Vorherige Seite Polynomialregression
- Nächste Seite Zoom
Multiple Regression (Mehrere Regressionen)
Multiple Regression ähnelt der linearen Regression, aber mit mehreren unabhängigen Werten, was bedeutet, dass wir versuchen, einen Wert auf Basis von zwei oder mehreren Variablen vorherzusagen.
Bitte sehen Sie die folgende Datenbank, die einige Informationen über Autos enthält.
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 |
Wir können den CO2-Ausstoß eines Autos basierend auf dem Hubraum vorherzusagen, aber durch Multivariate Regression können wir mehr Variablen wie das Gewicht des Autos einbeziehen, um die Vorhersage genauer zu machen.
Arbeitsweise
In Python haben wir Module, die diese Aufgabe erledigen können. Zunächst importieren wir das Pandas-Modul:
import pandas
Das Pandas-Modul ermöglicht es uns, csv-Dateien zu lesen und ein DataFrame-Objekt zurückzugeben.
Diese Datei dient nur zu Testzwecken und kann hier heruntergeladen werden:cars.csv
df = pandas.read_csv("cars.csv")
Dann listen Sie die unabhängigen Werte auf und benennen Sie diese Variable X.
Legen Sie die relevanten Werte in eine Variable namens y.
X = df[['Weight', 'Volume']] y = df['CO2']
Hinweis:Normalerweise wird die Liste der unabhängigen Werte in Großbuchstaben X
Die Liste der relevanten Werte wird in Kleinbuchstaben命名为 y
.
Wir verwenden einige Methoden aus dem sklearn-Modul, daher müssen wir das Modul auch importieren:
from sklearn import linear_model
Im sklearn-Modul verwenden wir LinearRegression()
um ein lineares Regressionsobjekt zu erstellen.
Das Objekt hat eine Methode namens fit()
Die Methode, die unabhängige und abhängige Werte als Parameter nimmt und das Regressionsobjekt mit Daten, die diese Beziehung beschreiben, füllt:
regr = linear_model.LinearRegression() regr.fit(X, y)
Jetzt haben wir einen Regressionsobjekt, das CO2-Werte basierend auf dem Gewicht und dem Hubraum des Autos vorherzusagen kann:
# Vorhersage des CO2-Ausstoßes eines Autos mit einem Gewicht von 2300kg und einem Hubraum von 1300ccm: predictedCO2 = regr.predict([[2300, 1300]])
Beispiel
Sehen Sie sich das vollständige Beispiel an:
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) # Vorhersage des CO2-Ausstoßes eines Autos mit einem Gewicht von 2300kg und einem Hubraum von 1300ccm: predictedCO2 = regr.predict([[2300, 1300]]) print(predictedCO2)
Ergebnis:
[107.2087328]
Wir prognostizieren, dass ein Auto mit einem 1,3-Liter-Motor und einem Gewicht von 2300 Kilogramm bei einer Fahrstrecke von 1 Kilometer etwa 107 Gramm Kohlenstoffdioxid freisetzt.
Koeffizient
Ein Koeffizient ist ein Faktor, der die Beziehung zwischen der unbekannten Variable beschreibt.
Zum Beispiel: Wenn x
Es ist eine Variable, dann 2x
Es ist x
doppelt.x
Es ist eine unbekannte Variable, eine Zahl 2
Es ist ein Koeffizient.
In diesem Fall können wir die Koeffizientenwerte von Gewicht im Verhältnis zu CO2 sowie die Koeffizientenwerte von Volumen im Verhältnis zu CO2 verlangen. Die Antworten, die wir erhalten, zeigen uns, was passiert, wenn wir einen der unabhängigen Werte erhöhen oder verringern.
Beispiel
Druckt die Koeffizientenwerte des Regressionsobjekts aus:
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]
Erklärung der Ergebnisse
Das Ergebnisarray stellt die Koeffizientenwerte von Gewicht und Hubraum dar.
Weight: 0.00755095 Volume: 0.00780526
Diese Werte zeigen uns, dass sich der CO2-Ausstoß um 0.00755095g erhöht, wenn das Gewicht um 1g zunimmt.
Wenn der Motorgröße (Volumen) um 1 ccm zunimmt, erhöht sich der CO2-Ausstoß um 0.00780526g.
Ich denke, das ist eine vernünftige Annahme, aber bitte testen Sie es noch einmal!
Wir haben vorhergesagt, dass die Kohlenstoffdioxidemissionen eines Autos mit einem 1300ccm Motor und einem Gewicht von 2300 Kilogramm etwa 107 Gramm betragen werden.
Was passiert, wenn wir 1000g Gewicht hinzufügen?
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 vorhergesagt, dass ein Auto mit einem 1,3-Liter-Motor und einem Gewicht von 3,3 Tonnen etwa 115 Gramm Kohlenstoffdioxid freisetzt, wenn es 1 Kilometer fährt.
Dies zeigt, dass der Faktor von 0.00755095 korrekt ist:
107.2087328 + (1000 * 0.00755095) = 114.75968
- Vorherige Seite Polynomialregression
- Nächste Seite Zoom