2. regression - swl.htwsaar.de€¦ · 5 inhalt § 2.1 einfache lineare regression § 2.2 multiple...

44
2. Regression

Upload: others

Post on 30-Apr-2020

7 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

2. Regression

Page 2: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

2

Motivation§ Regressionsanalysen modellieren den Zusammenhang

zwischen einem oder mehreren unabhängigen Merkmalen (z.B. Gewicht und PS) und einemabhängigen Merkmal (z.B. Verbrauch)

§ Intuition: Wie lässt sich das abhängige Merkmal durch

die unabhängigen Merkmale erklären?

§ Hierzu wird ein Modell angenommen, wie die Merkmale

zusammenhängen und dessen Parameter anhand

von verfügbaren Daten bestimmt

Data Science / Kapitel 2: Regression

Page 3: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

3

Motivation§ Beispiel: Vorhersage des Verbrauchs (mpg)

eines Autos basierend auf seiner Leistung (hp)

(und später weiteren Merkmalen)

§ Daten: Auto MPG Datensatz aus UCI ML Repository

https://archive.ics.uci.edu/ml/datasets/auto+mpg

§ 398 Autos (392 mit vollständigen Merkmalen)

§ 8 Merkmale (Verbrauch, Zylinder, Gewicht, etc.)

Data Science / Kapitel 2: Regression

Page 4: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

4

Motivation

Data Science / Kapitel 2: Regression

Page 5: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

5

Inhalt§ 2.1 Einfache lineare Regression

§ 2.2 Multiple lineare Regression

§ 2.3 Nominale und ordinale Merkmale

§ 2.4 Gradientenabstiegsverfahren

§ 2.5 Polynomiale Regression

§ 2.6 Merkmalstransformation

§ 2.7 Evaluation

§ 2.8 Regularisierung

Data Science / Kapitel 2: Regression

Page 6: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

6

2.1 Einfache lineare Regression§ Einfache lineare Regression betrachtet Datenpunkte

und nimmt an, dass das das metrische Merkmal ylinear vom metrischen Merkmal x abhängt

§ Das angenommene Modell hat somit die Form

y = w0 + w1 x Modell

Parameter

AbhängigesMerkmal

UnabhängigesMerkmal

(x1, y1), . . . , (xn, yn)

Data Science / Kapitel 2: Regression

Page 7: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

7

Einfache lineare Regression§ Verschiedene Werte der Parameter w0 und w1

entsprechen verschiedenen Geraden

§ Wir benötigen ein Gütekriterium, um zu bestimmen,

welche Gerade die beste ist

w0 = 0 w1 = 0.2

w0 = 35 w1 = -0.1

Data Science / Kapitel 2: Regression

Page 8: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

8

Mittelwert, Varianz und Standardabweichung§ Wir definieren den Mittelwert unserer Merkmale als

§ Die Varianz unserer Merkmale ist definiert als

§ Die Werte σx und σy heißen Standardabweichungder Merkmale x und y

x = 1n

nÿ

i=1xi y = 1

n

nÿ

i=1yi

‡ 2x = 1

n

nÿ

i=1(xi ≠ x)2 ‡ 2

y = 1n

nÿ

i=1(yi ≠ y)2

Data Science / Kapitel 2: Regression

Page 9: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

9

Kovarianz§ Kovarianz covx,y misst inwiefern die beiden Merkmale x

und y zusammenhängen, d.h. sich in die gleiche Richtung

bzw. entgegengesetzte Richtungen ändern

§ Große Kovarianz deutet auf einen Zusammenhang hin

§ ein positiver Wert zeigt an, dass sich die beiden Merkmale

in die gleiche Richtung ändern

§ ein negativer Wert zeigt an, dass sich die beiden Merkmale

in entgegengesetzte Richtungen ändern

covx,y = 1n

nÿ

i=1(xi ≠ x)(yi ≠ y)

Data Science / Kapitel 2: Regression

Page 10: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

10

Korrelationskoeffizient nach Pearson§ Pearsons Korrelationskoeffizient misst inwiefern ein

linearer Zusammenhang zwischen zwei Merkmalen xund y besteht

§ Pearsons Korrelationskoeffizient nimmt Werte in [-1,+1] an

§ Wert -1 zeigt negative lineare Korrelation an

§ Wert 0 zeigt keine lineare Korrelation an

§ Wert 1 zeigt positive lineare Korrelation an

corx,y =

nqi=1

(xi ≠ x)(yi ≠ y)Û

nqi=1

(xi ≠ x)Û

nqi=1

(yi ≠ y)= covx,y

‡x‡y

Data Science / Kapitel 2: Regression

Page 11: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

11

Korrelationskoeffizient nach Pearson

corhp,mpg ¥ ≠0.7784

Data Science / Kapitel 2: Regression

Page 12: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

12

Anscombes Quartett

§ Alle vier Datensätze haben den gleichen Mittelwert, die

gleiche Varianz, den gleichen Korrelationskoeffizientensowie die gleiche optimale Regressionsgerade

Data Science / Kapitel 2: Regression

Page 13: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

13

Korrelation und Kausalität§ Korrelation zwischen zwei Merkmalen bedeutet nicht,

dass eine Kausalität, d.h. Wirkzusammenhang,

zwischen den beiden besteht

§ Beispiele:

§ Zahl der Fernseher und Einkommen eines Haushalts

§ Leistung eines PKWs und Schuhgröße des Halters

§ Verkauf von Weihnachtsschmuck und Selbstmordrate

§ Korrelation des Tages: http://www.correlated.org

§ Spurious Correlations: http://www.tylervigen.com/

Data Science / Kapitel 2: Regression

Page 14: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

14

Straffunktion und Residuen§ Straffunktion (loss function) misst wie gut unser Modell,

für eine bestimmte Wahl von Parameterwerten, unsere

Daten beschreibt (d.h. wie viel wir verlieren, wenn

wir unser Modell statt der Daten verwenden)

§ Residuum (residual) des Datenpunkts (xi, yi) misst wie weit

der beobachte Wert yi von der Vorhersage abweicht

(yi ≠ yi) = (yi ≠ (w0 + w1 xi)) = (yi ≠ w0 ≠ w1 xi)

Data Science / Kapitel 2: Regression

Page 15: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

15

Residuen

Data Science / Kapitel 2: Regression

Page 16: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

16

Quadratischer Fehler§ Einfache lineare Regression (ordinary least squares)

verwendet die Summe der quadrierten Residuen(sum of squared errors – SSE) als Straffunktion

§ Zum Bestimmen der optimalen Parameter w0* und w1

*

müssen wir folgendes Optimierungsproblem lösen

L(w0, w1) =nÿ

i=1(yi ≠ w0 ≠ w1 xi)2

arg minw0,w1

nÿ

i=1(yi ≠ w0 ≠ w1 xi)2

Data Science / Kapitel 2: Regression

Page 17: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

17

Plotten der Straffunktion§ Straffunktion für unsere Beispieldaten sieht wie folgt aus

Data Science / Kapitel 2: Regression

Page 18: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

18

Analytische Bestimmung optimaler Parameter§ Optimale Parameterwerte lassen sich im Fall der

einfachen linearen Regression analytisch bestimmen

1) Bestimme partielle Ableitungen der Straffunktion

nach den Parametern w0 und w1

2) Bestimme gemeinsame Nullstelle durch Lösen

des linearen Gleichungssystems

ˆL

ˆ w0= ≠2

nÿ

i=1(yi ≠ w0 ≠ w1 xi)

ˆL

ˆ w1= ≠2

nÿ

i=1(yi ≠ w0 ≠ w1 xi) xi

ˆL

ˆ w0= 0 ˆL

ˆ w1= 0

Data Science / Kapitel 2: Regression

Page 19: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

19

Analytische Bestimmung optimaler Parameter§ Geschlossene Lösungen für optimale Parameterwerte

wú0 = 1

n

nÿ

i=1yi ≠ wú

11n

nÿ

i=1xi

wú1 =

nnq

i=1xiyi ≠

3nq

i=1xi

4 3nq

i=1yi

4

nnq

i=1x2

i ≠3

nqi=1

xi

42

Data Science / Kapitel 2: Regression

Page 20: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

20

Analytische Bestimmung optimaler Parameter§ Optimale Parameter für unsere Beispieldaten

wú0 = 39.9359 wú

1 = ≠0.1578

Data Science / Kapitel 2: Regression

Page 21: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

21

Bestimmtheitsmaߧ Bestimmtheitsmaß (R2 coefficient of determination) misst

wie gut die bestimmte Regressionsgerade die Datenannähert, d.h. wie gut sie die in den Daten

beobachtete Variation erklärt

R2 = 1 ≠

nqi=1

(yi ≠ yi)2

nqi=1

(yi ≠ y)2

Data Science / Kapitel 2: Regression

Page 22: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

22

Einfache lineare Regression in Pythonimport numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltfrom sklearn import linear_model, metrics

# Autodaten einlesencars = pd.read_csv('../data/auto-mpg/auto-mpg.data', header=None, sep='\s+')

# Verbrauchswerte extrahiereny = cars.iloc[:,0].values

# Leistungswerte extrahierenX = cars.iloc[:,[3]].values

# Plot erstelleng = sns.regplot(x=X, y=y, fit_reg=False)

# Einfache lineare Regressionreg = linear_model.LinearRegression()reg.fit(X,y)plt.plot(X, reg.predict(X), color='red')

# Plot beschriftenplt.xlabel('Leistung [hp]')plt.ylabel('Verbrauch [mpg]')

# Plot anzeigenplt.show()

Data Science / Kapitel 2: Regression

Page 23: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

23

Einfache lineare Regression in Python

§ Vollständiges Jupyter-Notebook unter:

http://swl.htwsaar.de/.../2017-vl-ds-kap2-regression.html

http://swl.htwsaar.de/.../2017-vl-ds-kap2-regression.ipynb

# Koeffizienten und Bestimmtheitsmaß ausgebenprint('Parameter:')print('w0: %f'%reg.intercept_)print('w1: %f'%reg.coef_[0]) print('Bestimmtheitsmaß')print('R2: %f'%metrics.r2_score(y,reg.predict(X)))

Data Science / Kapitel 2: Regression

Page 24: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

24

Zusammenfassung§ Lineare Regression sagt ein abhängiges metrisches

Merkmal anhand eines unabhängigenmetrischen Merkmals voraus

§ Straffunktion betrachtet die Summe der quadrierten Residuen, d.h. Abweichungen zwischen dem

eigentlichen Wert und der Vorhersage

§ Optimale Parameter der Regressionsgerade

lassen sich analytisch bestimmen

Data Science / Kapitel 2: Regression

Page 25: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

25

Literatur[1] L. Fahrmeir, R. Künstler, I. Pigeot und G. Tutz:

Statistik – Der Weg zur Datenanalyse,

Springer, 2017 (Kapitel 12)

[2] S. Raschka: Machine Learning in Python,

mitp, 2017 (Kapitel 10)

Data Science / Kapitel 2: Regression

Page 26: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

26

2.2 Multiple lineare Regression§ Multiple lineare Regression betrachtet Datenpunkte

und nimmt an, dass sich das abhängige Merkmal yi als

Linearkombination der m unabhängigen

Merkmale x(i,1), …, x(m,1) erklären lässt

§ Das Modell hat somit (m + 1) Parameter und entspricht

einer Hyperebene im (m + 1)-dimensionalen Raum

yi = w0 + w1x(i,1) + w2x(i,2) + . . . + wmx(i,m)

(x(i,1), x(i,2), . . . , x(i,m), yi)

Data Science / Kapitel 2: Regression

Page 27: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

27

Multiple lineare Regression in Matrixschreibweise§ Oft ist es einfacher, bei vielen unabhängigen Merkmalen,

das Modell in Matrixschreibweise zu formulieren

§ Datenmatrix X (n × (m + 1))

mit einer zusätzlichen führenden Spalte gefüllt mit Einsen

X =

S

WU1 x(1,1) . . . x(1,m)...1 x(n,1) . . . x(n,m)

T

XV

Data Science / Kapitel 2: Regression

Page 28: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

28

Multiple lineare Regression in Matrixschreibweise§ Parametervektor w ((m + 1) × 1)

§ Beobachtungsvektor y (n × 1)

w =

S

WUw0...

wm

T

XV

y =

S

WUy1...

yn

T

XV

Data Science / Kapitel 2: Regression

Page 29: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

29

Multiple lineare Regression in Matrixschreibweise§ Vorhersagevektor ŷ (n × 1) lässt sich berechnen als

y = X w =

S

WU1 x(1,1) . . . x(1,m)...1 x(n,1) . . . x(n,m)

T

XV

S

WUw0...

wm

T

XV

Data Science / Kapitel 2: Regression

Page 30: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

30

Multiple lineare Regression in Matrixschreibweise§ Auch bei der multiplen linearen Regression kommt

der quadratische Fehler zum Einsatz

§ Die Straffunktion (loss function) lässt sich schreiben als

L(w) =nÿ

i=1

!yi ≠ w0 x(i,0) ≠ w1 x(i,1) ≠ . . . ≠ wm x(i,m)

"2

= (y ≠ X w)T (y ≠ X w)

Data Science / Kapitel 2: Regression

Page 31: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

31

Analytische Bestimmung optimaler Parameter§ Zum Bestimmen der optimalen Parameter müssen

wir folgendes Optimierungsproblem lösen

§ Vorgehensweise ist analog zum einfachen Fall,bedient sich jedoch der Vektoranalysis

arg minw

L(w) = (y ≠ X w)T (y ≠ X w)

Data Science / Kapitel 2: Regression

Page 32: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

32

Analytische Bestimmung optimaler Parameter§ Schritt 1: Vereinfachen der Straffunktion

§ (1) nach (2) nutzt aus, dass (Xw)T = wT XT

§ (3) nach (4) nutzt aus, dass yT Xw = (wT XT y)T = (wT XT y)

L(w) = (y ≠ X w)T (y ≠ X w) (1)= (yT ≠ wT XT ) (y ≠ X w) (2)= yT y ≠ yT X w ≠ wT XT y + wT XT X w (3)= yT y ≠ 2 wT XT y + wT XT X w (4)

Data Science / Kapitel 2: Regression

Page 33: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

33

Analytische Bestimmung optimaler Parameter§ Schritt 2: Bestimmen der Ableitung nach w

§ Hierbei wird ausgenutzt, dass gilt:

ˆwT XT yˆw = XT y

ˆL(w)ˆw = ≠2XT y + 2 XT X w

ˆwT XT X wˆw = 2 XT X w

Data Science / Kapitel 2: Regression

Page 34: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

34

Analytische Bestimmung optimaler Parameter§ Schritt 3: Bestimmen einer Nullstelle der Ableitung nach w

§ (3) nach (4) multipliziert beide Seiten von links

mit der inversen Matrix (XT X)-1

§ Die inverse Matrix (XTX)-1 existiert dann, wenn die

ursprüngliche Datenmatrix X vollen Spaltenrang hat,

d.h. alle Spaltenvektoren sind linear unabhängig

≠2XT y + 2 XT X w != 0 (1)… 2 XT X w = 2XT y (2)… XT X w = XT y (3)… w = (XT X)≠1 XT y (4)

Data Science / Kapitel 2: Regression

Page 35: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

35

Analytische Bestimmung optimaler Parameter§ Die inverse Matrix (XTX)-1 existiert nicht z.B.

für folgende Datenmatrizen

§ Allgemein existiert die inverse Matrix nicht, wenn

§ es mehr Merkmale als Datenpunkte gibt (d.h. m > n)

§ unabhängige Merkmale (d.h. Spaltenvektoren) existieren,

die linear abhängig voneinander sind

X =

S

U1 2 41 3 61 2 4

T

V X =

S

U1 2 1 9 51 3 3 0 21 2 3 4 7

T

V

Data Science / Kapitel 2: Regression

Page 36: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

36

Multiple lineare Regression in Pythonimport numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfrom sklearn import linear_model, metrics

# Autodaten einlesencars = pd.read_csv('../data/auto-mpg/auto-mpg.data', header=None, sep='\s+')

# Verbrauchswerte extrahiereny = cars.iloc[:,0].values

# Leistungs- und Gewichtswerte extrahierenX = cars.iloc[:,[3,4]].values

# Plot erstellen#g = sns.regplot(x=X, y=y, fit_reg=False)

# Einfache lineare Regressionreg = linear_model.LinearRegression()reg.fit(X,y)

# Plot erstellenfig = plt.figure()ax = fig.add_subplot(111, projection='3d')

# Datenpunkte plottenfor i in range(0,len(y)):

ax.scatter(X[i,0], X[i,1], y[i], color='blue', marker='x')

Data Science / Kapitel 2: Regression

Page 37: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

37

Multiple lineare Regression in Python# Vorhersagewerte berechnenX0 = np.arange(min(X[:,0]), max(X[:,0]), 25) X1 = np.arange(min(X[:,1]), max(X[:,1]), 25) X0, X1 = np.meshgrid(X0, X1)Z = X0.copy() n = X0.shape[0] m = X0.shape[1] for i in range(0, n):

for j in range(0, m): Z[i,j] = reg.predict([[X0[i,j], X1[i,j]]])

# Hyperebene Plottenax.plot_surface(X0, X1, Z, color='red', linewidth=0, antialiased=False)

# Plot beschriftenax.set_xlabel('Leistung [hp]') ax.set_ylabel('Gewicht [lbs]') ax.set_zlabel('Verbrauch [mpg]')

# Plot anzeigenplt.show()

# Koeffizienten und Bestimmtheitsmaß ausgebenprint('Parameter:')print('w0: %f'%reg.intercept_)print('w1: %f'%reg.coef_[0]) print('w2: %f'%reg.coef_[1]) print('Bestimmtheitsmaß')print('R2: %f'%metrics.r2_score(y,reg.predict(X)))

Data Science / Kapitel 2: Regression

Page 38: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

38

Multiple lineare Regression in Python

§ Vollständiges Jupyter-Notebook unter:

http://swl.htwsaar.de/.../2017-vl-ds-kap2-regression.html

http://swl.htwsaar.de/.../2017-vl-ds-kap2-regression.ipynb

Data Science / Kapitel 2: Regression

Page 39: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

39

2.3 Nominale und ordinale Merkmale§ Wie lassen sich nominale und ordinale Merkmale so

kodieren, dass sie für lineare Regression und

andere Verfahren verwendbar sind?

§ Nominale Merkmale (z.B. Herkunft) werden in ein binäres Merkmal je in den Daten vorhandenem Wert kodiert

(one-hot encoding)

Herkunft

1312

Herkunft 1 Herkunft 2 Herkunft 3

1 0 00 0 11 0 00 1 0

Data Science / Kapitel 2: Regression

Page 40: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

40

Nominale und ordinale Merkmale§ Ordinale Merkmale (z.B. Energieeffizienzklasse) werden

auf ganze Zahlen abgebildet, so dass die Ordnungder ursprünglichen Werte erhalten bleibt

§ Hierbei wird implizit angenommen, dass die Abstände

zwischen benachbarten Werten gleich groß,

d.h. diese äquidistant sind

Energiee�zienzklasseACB

Energiee�zienzklasse021

Data Science / Kapitel 2: Regression

Page 41: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

41

Nominale und ordinale Merkmale in Pythonimport pandas as pd

# Autodaten einlesencars = pd.read_csv('../data/auto-mpg/auto-mpg.data', header=None, sep='\s+')

# Daten der ersten zehn Autos ausgebenprint(cars.head(n=10), "\n")

# Nominales Merkmal Herkunft kodierenorigin_one_hot = pd.get_dummies(cars[7], prefix='origin')

# Neue Merkmale mit ursprünglichen Daten konkatenierencars = pd.concat([cars, origin_one_hot], axis=1)

# Daten der ersten zehn Autos ausgebenprint(cars.head(n=10), "\n")

Data Science / Kapitel 2: Regression

Page 42: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

42

Nominale und ordinale Merkmale in Python

§ Vollständiges Jupyter-Notebook unter:

http://swl.htwsaar.de/.../2017-vl-ds-kap2-regression.html

http://swl.htwsaar.de/.../2017-vl-ds-kap2-regression.ipynb

import numpy as npimport pandas as pd

# Daten mit einem metrischen und einem ordinalen Merkmal erzeugendata = pd.DataFrame(np.matrix([[1.2,'A'], [2.1, 'B'], [1.7, 'C'], [3.2, 'A'], [4.2,'B']])) # Daten ausgebenprint(data,"\n")

# Ordnung der Werte angebenorder = ['A', 'B', 'C'] # Ordinales Merkmal kodierenencoded_feature = data[1].astype("category", ordered=True, categories=order).cat.codes

# Neues Merkmal mit urprünglichen Daten konkatenierendata = pd.concat([data, encoded_feature], axis=1)

# Daten ausgebenprint(data)

Data Science / Kapitel 2: Regression

Page 43: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

43

Zusammenfassung§ Multiple lineare Regression sagt ein abhängiges

metrisches Merkmal anhand mehrererunabhängiger metrischer Merkmale voraus

§ Optimale Parameter der Regressionshyperebene

lassen sich analytisch bestimmen

§ Nominale und ordinale Merkmale können so kodiert

werden, dass sie für lineare Regression

verwendbar sind

Data Science / Kapitel 2: Regression

Page 44: 2. Regression - swl.htwsaar.de€¦ · 5 Inhalt § 2.1 Einfache lineare Regression § 2.2 Multiple lineare Regression § 2.3 Nominale und ordinale Merkmale § 2.4 Gradientenabstiegsverfahren

44

Literatur[1] L. Fahrmeir, R. Künstler, I. Pigeot und G. Tutz:

Statistik – Der Weg zur Datenanalyse,

Springer, 2017 (Kapitel 12)

[2] S. Raschka: Machine Learning in Python,

mitp, 2017 (Kapitel 10)

Data Science / Kapitel 2: Regression