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
1/35
Prädiktion und Klassifikation mit Random Forest
Prof. Dr. T. [email protected]
20.11.14
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
Prädiktion und Klassifikation mit Random Forest
3/35
Decision Tree: Supervised Classification
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%
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
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
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
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
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
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 ,
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
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,
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
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
Prädiktion und Klassifikation mit Random Forest
15/35
2.2.3 Node 3
2,4,6,9 7,8
9 2,4,6
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
Prädiktion und Klassifikation mit Random Forest
17/35
2.2.4 Node 4
2,4,6,9 7,8
9 2,4,6
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
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
Prädiktion und Klassifikation mit Random Forest
20/35
2.3 Wald evaluieren
- Oob-TestSet erstellen
- Objekte von Baum Klassifizieren lassen
- Fehlerquote berechnen
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
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
Prädiktion und Klassifikation mit Random Forest
23/35
2.3.3 Für alle Bäume …
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
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%
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
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
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.
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
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% -
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% -
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
Prädiktion und Klassifikation mit Random Forest
33/35
Zusammenfassung
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
Prädiktion und Klassifikation mit Random Forest
35/35