35
Prädiktion und Klassifikation mit Random Forest 1/35 Prädiktion und Klassifikation mit Random Forest Prof. Dr. T. Nouri [email protected] 20.11.14

Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

1/35

Prädiktion und Klassifikation mit Random Forest

Prof. Dr. T. [email protected]

20.11.14

Page 2: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

2/35

Übersicht

1. Probleme mit Decision Tree

2. Der Random Forests RF

3. Implementation & Tests RF

4. Resultate

5. Rückblick

Page 3: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

3/35

Decision Tree: Supervised Classification

Page 4: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

4/35

Probleme mit Decision Tree

rule 1,conditions

Gender = 2,FishLastWeek = 0;FishLastWeek = 1Age = 3

ThenBlood Pressure is High 71.4%

Page 5: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

5/35

Der Random Forests

1.Allgemeines

2.Die Erstellung eines Baumes1.„Random Training sets“ generieren2.Baum erstellen3.Wald testen

3.Scoring

Page 6: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

6/35

1 Allgemeines zum Random Forest

- Erweiterung des traditionellen Entscheidungsbaum-Modells- Viele Bäume- Weniger Splitvariablen- Zufällige Datensets- Kein Baum ist gleich wie der andere

Page 7: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

7/35

2.1 „Random Trainingsets“ generieren

1. Daten einlesen

2. Anzahl Objekte (ntrain) und Anzahl Variablen (mdim) berechnen

3. Zufällig ntrain Objekte aus allen Objekte auswählen(Wiederholungen sind erlaubt)

4. Immer ntrain Objekte ergeben ein Training-Set Trnn

5. Mit jedem Training-Set wird ein Baum gebaut

Page 8: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

8/35

2.1 „Random Trainingsets“ generieren

ntrain = Anzahl ObjekteHier: ntrain = 10

(Die Trainingsdaten solltenrepräsentativ für allemöglichen Daten sein.)

Wähle zufällig ntrainObjekte aus den InputDaten(Wiederholungen sinderlaubt)

TrainingSet Trn1

TrainingSet Trn2

3x3x

2x

2x

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Page 9: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

9/35

2.2 Baum erstellen1. Zufällig mtry Variablen aus den mdim Variablen aussuchen.

mtry wird mit den Startparametern angegeben.Als gute Zahl für mtry wird empfohlen.Hier wird mtry = 2 verwendet.

Var1 Var2 Var3 Var4 Var5

mdimmtry

2. Für die mtry Variablen wird berechnet, welche von ihnen dieTrni -Daten am besten aufteilt. (find best split)Dies kann mit dem Gini-Index, Entropie, usw. berechnet werden.

In diesem Fall wurde folgende Entropieformel verwendet:

nplnpn

plnpEntropie""p+= Anz. richtig klassifiziertep-= Anz. falsch klassifizierten = Anzahl Objekte

Page 10: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

10/35

2.2.1 Node 1

Im Node 1 wird derBest Split bei Var1und Var4 gesucht.

Var1 hat den kleineren„Entropie“-Wert

Var1 ist der best Split.

Ent51021129631014286310142863101428510016275100162751001627320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

Ent51021129631014286310142863101428510016275100162751001627320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

Ent51021129631014286310142863101428510016275100162751001627320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

Ent51021129631014286310142863101428510016275100162751001627320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

6.113.25Ent51021129631014286310142863101428510016275100162751001627320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

6.113.25Ent51021129631014286310142863101428510016275100162751001627320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Wenn Var 1 <= 2.5 dann Class = 1 ,

Page 11: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

11/35

2.2.1 Node 1

Rule 1: Wenn Var 1 <= 2.5 dann Class = 1 , Gehe zu Node 2Die Daten werden mit der Rule 1 aufgeteilt.

2,4,6,9 7,8

Page 12: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

12/35

2.2.2 Node 2Im Node 2 wird derBest Split bei Var1und Var2 gesucht.

Var2 hat den kleineren„Entropie“-Wert

Var2 ist der best Split.Ent51021129320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

Ent51021129320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

Ent51021129320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

Ent51021129320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

02.25Ent51021129320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

02.25Ent51021129320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Wenn Var 2 <= 1.5 dann Class = 2,

Page 13: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

13/35

2.2.2 Node 2

Rule 2: Wenn Var 2 <= 1.5 dann Class = 2, Gehe zu Node 4Die Daten werden mit der Rule 2 aufgeteilt.

2,4,6,9 7,8

9 2,4,6

Page 14: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

14/35

2.2.3 Node 3Im Node 3 befindensich nur noch Objektemit Class = 2, derKnoten ist daher reinund muss nicht mehrweiter gesplittetwerden.

631014286310142863101428510016275100162751001627

Var5Var4Var3Var2Var1ClassCaseNbr

631014286310142863101428510016275100162751001627

Var5Var4Var3Var2Var1ClassCaseNbr

631014286310142863101428510016275100162751001627

Var5Var4Var3Var2Var1ClassCaseNbr

631014286310142863101428510016275100162751001627

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Page 15: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

15/35

2.2.3 Node 3

2,4,6,9 7,8

9 2,4,6

Page 16: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

16/35

2.2.4 Node 4Im Node 5 befindensich nur noch Objektemit Class = 2, derKnoten ist daher reinund muss nicht mehrweiter gesplittetwerden.

51021129

Var5Var4Var3Var2Var1ClassCaseNbr

51021129

Var5Var4Var3Var2Var1ClassCaseNbr

51021129

Var5Var4Var3Var2Var1ClassCaseNbr

51021129

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Page 17: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

17/35

2.2.4 Node 4

2,4,6,9 7,8

9 2,4,6

Page 18: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

18/35

2.2.5 Node 5Im Node 4 befindensich nur noch Objektemit Class = 1, derKnoten ist daher reinund muss nicht mehrweiter gesplittetwerden.

320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbr

320030166300501451202112

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Page 19: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

19/35

2.2.5 Node 5

Der Fertig entwickelte Baum

9 2,4,6

2,4,6,9 7,8

Page 20: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

20/35

2.3 Wald evaluieren

- Oob-TestSet erstellen

- Objekte von Baum Klassifizieren lassen

- Fehlerquote berechnen

Page 21: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

21/35

2.3.1 Oob-TestSet erstellen

Für den Test wird für jedenBaum Treei ein TestSetverwendet.Dies sind jeweils diejenigenObjekte, die nicht imTrainingsSet Trni des Baumsenthalten waren, gebildet.

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbr

630100210510211296310142851001627320030166320421563005014321001135120211263011221

Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr

Page 22: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

22/35

2.3.2 Objekte KlassifizierenObj. Nbr Class Var1 Var2 Var3 Var4 Var5

1 2 2 1 1 0 63

Node1Var1

Node2Var2

Node3IsLeaf

Node4IsLeaf

Node5IsLeaf

Rule 2: Wenn Var 2 <= 1.5 dann Class = 2Gehe zu Node 4

Rule 1: Wenn Var 1 <= 2.5 dann Class = 1Gehe zu Node 2

Objekt1: Class = 2

Page 23: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

23/35

2.3.3 Für alle Bäume …

Page 24: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

24/35

2.3.3 werden die Objekte Klassifiziert

- Jeder Baum klassifiziert sein Oob-Test Set Objekt Score

- Die Objekt Score gibt für jedes Objekti an, mit welcher Wahrscheinlichkeites falsch Klassifiziert wurde

- Aussagekraft des Waldes = Durchschnitt aller Objekt Scores

mdimeObjektScor

ftAussagekramdim

1i i

Page 25: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

25/35

2.3.4 Fehlerquote berechnenObjekt Ausgewählt Davon falsch Fehler-%

1 4 1 25%2 3 0 0%3 2 1 50%4 2 1 50%5 3 2 66.67%6 2 0 0%7 6 3 50%8 3 2 66.67%9 1 1 100%10 3 0 0%

Total: 40.83%

Page 26: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

26/35

3. Scoring• Wenn ein Random Forest generiert wurde, können ihm beliebige Testdaten

eingegeben werden.• Jedes Test-Objekt wird von jedem Baum klassifiziert.

Class = 1 Class = 1Class = 2

Class = 1

Objekti

Tree1

Objekti

Tree2

Objekti

Tree3

ObjektiTreejbt

Der Test Fall wird somit derjenigen Klasse zugewiesen, die am Meisten Stimmenerhält:VOTING

Page 27: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

27/35

b. Implementation & Tests von RF

- Implementierung des Modells in der SAS-Language- Einbindung in den Enterprise Miner

Page 28: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

28/35

c. Tests

- 4 Verschiedene Modelle- SAS Random Forest- Breiman Random Forest- Decision Tree 1- Decision Tree 2

- 3 Verschiedene Datensets- SmallBPress 10 Training / 10 Test 5 Var.- Bank 50 Training / 500 Test 8 Var.- SatImage 4435 Training /2000 Test 36 Var.

Page 29: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

29/35

c. Tests

- Durchläufe mit 1, 5, 10 und 100 Bäumen für alle Forest Modelle

- Supervised und Unsupervised Scoring mit allen Modellen

Page 30: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

30/35

d. Resultate / Supervised

40%

50%

60%

70%

80%

90%

100%

SAS RF RF Hybrid Breiman RF Decision Tree 1 Decision Tree 2

Supervised Scoring 100 Trees

SmallBPressBankSatImage

DatenSet SAS RF RF Hybrid Breiman RF Decision Tree 1 Decision Tree 2SmallBPress 100% 100% 100% 100% 100%

Bank 100% 100% 100% 100% 100%SatImage 100% 100% 100% 94% -

Page 31: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

31/35

d. Resultate / Unsupervised

40%

50%

60%

70%

80%

90%

100%

SAS RF RF Hybrid Breiman RF Decision Tree 1 Decision Tree 2

Unsupervised Scoring 100 Trees

SmallBPressBankSatImage

DatenSet SAS RF RF Hybrid Breiman RF Decision Tree 1 Decision Tree2

SmallBPress 81% 51% 80% 50% 60%Bank 93% 93% 94% 81% 91%

SatImage 91% 90% 91% 84% -

Page 32: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

32/35

d. Resultate

- Random Forest liefert die besseren Resultateals traditionelle Modelle

- Voraussetzung ist eine Mindestanzahl von Bäumen(mehr als 100)

- Somit ist das Random Forest - Modell eine bessere Alternative zum DecisionTree

Page 33: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

33/35

Zusammenfassung

Page 34: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

34/35

e. Rückblick

- Erste Kommerzielle Implementation

- Random Forest liefert bessere Ergebnisse Klassifikation/Vorhersage als DecisionTrees

- Nur die besten aussagekräftigsten Bäume wählen ====> BesserModell

Page 35: Prädiktion und Klassifikation mit Random Forest und Klassifikation mit Random... · 2016. 1. 10. · Prädiktion und Klassifikation mit Random Forest 9/35 2.2 Baum erstellen 1. Zufällig

Prädiktion und Klassifikation mit Random Forest

35/35