Upload
rhian
View
67
Download
0
Embed Size (px)
DESCRIPTION
Prädiktion und Klassifikation mit Random Forest Prof. Dr. T. Nouri [email protected] Technical University NW-Switzerland. Übersicht Probleme mit Decision Tree Der Random Forests RF Implementation & Tests RF Resultate Rückblick. Decision Tree. Probleme mit Decision Tree. rule 1, - PowerPoint PPT Presentation
Citation preview
1/35
Prädiktion und Klassifikation mit Random Forest
Prädiktion und Klassifikation mit Random Forest
Prof. Dr. T. [email protected]
Technical University NW-Switzerland
2/35
Prädiktion und Klassifikation mit Random Forest
Übersichta. Probleme mit Decision Tree
b. Der Random Forests RF
c. Implementation & Tests RF
d. Resultate
e. Rückblick
3/35
Prädiktion und Klassifikation mit Random Forest
Decision Tree
4/35
Prädiktion und Klassifikation mit Random Forest
Probleme mit Decision Tree
rule 1,conditions Gender = 2, FishLastWeek = 0; FishLastWeek = 1 Age = 3Then Blood Pressure is High 71.4
5/35
Prädiktion und Klassifikation mit Random Forest
a. Der Random Forests1. Allgemeines
2. Die Erstellung eines Baumes1. „Random Trainingsets“ generieren2. Baum erstellen3. Wald testen
3. Scoring
6/35
Prädiktion und Klassifikation mit Random Forest
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
7/35
Prädiktion und Klassifikation mit Random Forest
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
8/35
Prädiktion und Klassifikation mit Random Forest
2.1 „Random Trainingsets“ generieren
ntrain = Anzahl ObjekteHier: ntrain = 10
(Die Trainingsdaten solltenrepräsentativ für alle möglichen Daten sein.)
Wähle zufällig ntrain Objekte aus den InputDaten(Wiederholungen sinderlaubt)
TrainingSet Trn1
TrainingSet Trn2
3x
3x
2x
2x
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr
9/35
Prädiktion und Klassifikation mit Random Forest
2.2 Baum erstellen
1. 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
10/35
Prädiktion und Klassifikation mit Random Forest
2.2.1 Node 1
Im Node 1 wird derBest Split bei Var1 und Var4 gesucht.
Var1 hat den kleineren„Entropie“-Wert
Var1 ist der best Split.
Ent
51021129
63101428
63101428
63101428
51001627
51001627
51001627
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
Ent
51021129
63101428
63101428
63101428
51001627
51001627
51001627
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
Ent
51021129
63101428
63101428
63101428
51001627
51001627
51001627
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
Ent
51021129
63101428
63101428
63101428
51001627
51001627
51001627
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
6.113.25Ent
51021129
63101428
63101428
63101428
51001627
51001627
51001627
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
6.113.25Ent
51021129
63101428
63101428
63101428
51001627
51001627
51001627
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr
11/35
Prädiktion und Klassifikation mit Random Forest
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
12/35
Prädiktion und Klassifikation mit Random Forest
2.2.2 Node 2
Im Node 2 wird derBest Split bei Var1 und Var2 gesucht.
Var2 hat den kleineren„Entropie“-Wert
Var2 ist der best Split.Ent
51021129
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
Ent
51021129
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
Ent
51021129
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
Ent
51021129
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
02.25Ent
51021129
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
02.25Ent
51021129
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr
13/35
Prädiktion und Klassifikation mit Random Forest
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
14/35
Prädiktion und Klassifikation mit Random Forest
2.2.3 Node 3
Im Node 3 befindensich nur noch Objektemit Class = 2, derKnoten ist daher reinund muss nicht mehrweiter gesplittetwerden.
63101428
63101428
63101428
51001627
51001627
51001627
Var5Var4Var3Var2Var1ClassCaseNbr
63101428
63101428
63101428
51001627
51001627
51001627
Var5Var4Var3Var2Var1ClassCaseNbr
63101428
63101428
63101428
51001627
51001627
51001627
Var5Var4Var3Var2Var1ClassCaseNbr
63101428
63101428
63101428
51001627
51001627
51001627
Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr
15/35
Prädiktion und Klassifikation mit Random Forest
2.2.3 Node 3
2,4,6,9 7,8
9 2,4,6
16/35
Prädiktion und Klassifikation mit Random Forest
2.2.4 Node 4
Im 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
17/35
Prädiktion und Klassifikation mit Random Forest
2.2.4 Node 4
2,4,6,9 7,8
9 2,4,6
18/35
Prädiktion und Klassifikation mit Random Forest
2.2.5 Node 5
Im Node 4 befindensich nur noch Objektemit Class = 1, derKnoten ist daher reinund muss nicht mehrweiter gesplittetwerden.
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbr
32003016
63005014
51202112
Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr
19/35
Prädiktion und Klassifikation mit Random Forest
2.2.5 Node 5
Der Fertig entwickelte Baum
9 2,4,6
2,4,6,9 7,8
20/35
Prädiktion und Klassifikation mit Random Forest
2.3 Wald evaluieren
- Oob-TestSet erstellen
- Objekte von Baum Klassifizieren lassen
- Fehlerquote berechnen
21/35
Prädiktion und Klassifikation mit Random Forest
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.
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbr
630100210
51021129
63101428
51001627
32003016
63204215
63005014
32100113
51202112
63011221
Var5Var4Var3Var2Var1ClassCaseNbrObj.Nbr
22/35
Prädiktion und Klassifikation mit Random Forest
2.3.2 Objekte Klassifizieren
Obj. Nbr
Class Var1 Var2 Var3 Var4 Var5
1 2 2 1 1 0 63
Node1
Var1
Node2
Var2
Node3
IsLeaf
Node4
IsLeafNode5
IsLeaf
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
23/35
Prädiktion und Klassifikation mit Random Forest
2.3.3 Für alle Bäume …
24/35
Prädiktion und Klassifikation mit Random Forest
2.3.3 … werden die Objekte Klassifiziert
- Jeder Baum klassifiziert sein Oob-TestSet ObjektScore
- Die ObjektScore gibt für jedes Objekti an, mit welcher Wahrscheinlichkeit es falsch Klassifiziert wurde
- Aussagekraft des Waldes = Durchschnitt aller ObjektScores
mdim
eObjektScorft Aussagekra
mdim
1i i
25/35
Prädiktion und Klassifikation mit Random Forest
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%
26/35
Prädiktion und Klassifikation mit Random Forest
3. Scoring
• Wenn ein Random Forest generiert wurde, können ihm beliebige Testdaten eingegeben werden.
• Jedes Test-Objekt wird von jedem Baum klassifiziert.
Class = 1Class = 1
Class = 2Class = 1
Objekti
Tree1
Objekti
Tree2
Objekti
Tree3
Objekti
Treejbt
Der Test Fall wird somit derjenigen Klasse zugewiesen, die am Meisten Stimmen erhält:VOTING
27/35
Prädiktion und Klassifikation mit Random Forest
b. Implementation & Tests von RF
- Implementierung des Modells in der SAS-Language
- Einbindung in den Enterprise Miner
28/35
Prädiktion und Klassifikation mit Random Forest
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.
29/35
Prädiktion und Klassifikation mit Random Forest
c. Tests
- Durchläufe mit 1, 5, 10 und 100 Bäumen für alle Forest Modelle
- Supervised und Unsupervised Scoring mit allen Modellen
30/35
Prädiktion und Klassifikation mit Random Forest
d. Resultate / Supervised
Supervised Scoring 100 Trees
40%
50%
60%
70%
80%
90%
100%
SAS RF RF Hybrid Breiman RF Decision Tree1
Decision Tree2
SmallBPressBankSatImage
DatenSetSAS RF
RF Hybrid
Breiman RF
Decision Tree 1
Decision Tree 2
SmallBPress
100% 100% 100% 100% 100%
Bank 100% 100% 100% 100% 100%
SatImage 100% 100% 100% 94% -
31/35
Prädiktion und Klassifikation mit Random Forest
d. Resultate / Unsupervised
Unsupervised Scoring 100 Trees
40%
50%
60%
70%
80%
90%
100%
SAS RF RF Hybrid Breiman RF Decision Tree 1 Decision Tree 2
SmallBPressBankSatImage
DatenSetSAS RF
RF Hybrid
Breiman RF
Decision Tree
1
Decision Tree
2
SmallBPress
81% 51% 80% 50% 60%
Bank 93% 93% 94% 81% 91%
SatImage 91% 90% 91% 84% -
32/35
Prädiktion und Klassifikation mit Random Forest
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 Decision Tree
33/35
Prädiktion und Klassifikation mit Random Forest
Zusammenfassung
34/35
Prädiktion und Klassifikation mit Random Forest
e. Rückblick
- Erste Kommerzielle Implementation
- Random Forest liefert bessere Ergebnisse Klassifikation/Vorhersage als Decision Trees
- Nur die besten aussagekräftigsten Bäume wählen ====> Besser Modell
35/35
Prädiktion und Klassifikation mit Random Forest