Entscheidungsbäume

Werbung
Proseminar Data Mining
Entscheidungsbäume
von
Alexander M. Bielesch
[email protected]
SS 2000 Universität Ulm
0 Inhaltsübersicht
0
Inhaltsübersicht .................................................................................................................i
1
Entscheidungsbäume........................................................................................................1
1.1
Numerische Attribute:.................................................................................................1
1.2
Fehlende Werte: .........................................................................................................3
1.3
Pruning:......................................................................................................................3
1.4
Erwartete Fehlerrate ..................................................................................................6
1.5
Komplexität.................................................................................................................9
1.6
Vom Baum zur Regel ................................................................................................10
1.7
Literatur....................................................................................................................10
i
1 Entscheidungsbäume
Das Prinzip der Erstellung eines Entscheidungsbaumes beruht auf der Methode des Teile und Herrsche-Algorithmus (divide and conquer), welcher bereits in den Grundzügen beschrieben wurde.
Doch in dieser beschriebenen Vorgehensweise kann es zu Problemen führen, da die Methode nur
auf nominellen Attributen gut funktioniert. Bei numerischen muss noch etwas verfeinert werden, da
es nicht möglich ist alle Zahlenwerte abzuarbeiten.
1.1
Numerische Attribute:
Für numerische Attribute wird die zu treffende Entscheidung auf einen 2-Wege oder Binären Splitt reduziert.
Beispiel: Wetterproblem (Tabelle 1.3) reduziert auf die Zahlenwerte
64
65
68
69
70
71
yes
no
yes
yes
yes
no
72
no
yes
75
yes
yes
80
81
83
85
no
yes
yes
No
Wo nun ein effektiver Schnitt gesetzt werden soll, hängt von dem zu erwartenden Informationswert ab, der wie schon beschrieben, für jede mögliche Trennung berechnet werden kann.
Es ist üblich einen Trennwert zwischen zwei vorhanden Werten zu setzen die das Problem
am besten erfassen.
Am Beispiel wählen wir z.B. den Wert 71,5 der so ziemlich den Mittelweg darstellt. Der zu
erwartende Informationswert ergibt sich aus den Anfragen:
Temperature <71,5 → 4 yes, 2 no
Temperature >71,5 → 5 yes, 3 no
Der Informationsgehalt ist demnach
Info ([4,2],[5,3]) = (6/14)×(info[4,2])+(8/14)×info([5,3]) = 0,939 bits
Wenn man einen Entscheidungsbaum mittels des Divide-and-conquer Algorithmuses erstellt, wird, nachdem das erste Teilungsattribut festgelegt wurde, ein sogenannter top-leveltree-node (Wurzelknoten) angelegt, welcher das Attribut entsprechend teilt. Der Algorithmus verfährt nun rekursiv in den Kindknoten fort.
Für jedes numerische Attribut kann es vorkommen, dass die Teilinstanzen an jedem KindKnoten entsprechend dieses Attributes neu geordnet werden müssen. (Dies ist die übliche
Methode). Jedoch ist es hier nicht unbedingt immer notwendig neu zu ordnen, denn die Sortierreihenfolge an einem Elternknoten kann genutzt werden, um die Sortierreihenfolge an
den Kindknoten festzulegen. Dadurch kann eine schnellere Implementierung erreicht werden.
Betrachtet man die Sortierreihenfolge des Wetterproblems*:
64 65 68 69 70 71 72 72 75 75 80 81 83 85
7
6
5
9
4
14
8
12
10
11
2
13
3
1
* die zweite Zeile gib die entsprechenden Instanzen an
Angenommen man teilt zuerst nach dem Attribut „outlook“. Betrachtet man nun den Kindknoten „sunny“ so stellt man fest, dass hierfür die Instanzen 1,2,8,9, 11 zutreffen.
Um ein unnötiges mehrfaches Durchscannen (durchlaufen) zu vermeiden, kann man zu jedem Attribut entsprechend die Sortierreihenfolge speichern, danach ist es nicht mehr notwendig irgendwelche Sortierungen vorzunehmen.
wage increase
first year
Numerischer Splitt
> 2,5
≤ 2,5
Working hours
per week
≤ 36
> 36
health plan
contribution
bad
none
Nomineller Splitt
bad
half
good
full
bad
Zu beachten ist, dass man im Gegensatz zu den nominalen Attributen, die numerischen Attribute auf einen binären Splitt reduziert hat. Daraus ergibt sich ein bedeutender Unterschied.
Splittet man nach einem nominellen Attribut, wurden alle Informationen aus diesem
Attribut herausgenommen, splittet man nach einem numerischen Attribut kann man
noch weitere Teilungen vornehmen und dadurch mehr Informationen gewinnen.
Diese mögliche Mehrfachverwendung führt aber zu dem Problem der nahezu unverständlichen und sehr komplexen Bäume. Um dies zu vermeiden ist es möglich an ei-
nem einzelnen Knoten nach mehreren Werten gleichzeitig zu filtern. (
einfacherer
Baum, jedoch komplizierter zu erstellen).
x<?*?
x>??
1.2
Fehlende Werte:
Es wurde bereits beschrieben wie fehlende Werte, die oft in realen Datensätzen auftreten
können, gehandhabt werden.
Man kann die fehlende Attribute mit definierten Werten initialisieren (z.B. –1, ...), oder einfach nicht beachten. Die erst genannte Methode ist für diejenigen Attribute sinnvoll, die essentiell sind. D.h. beim Fehlen dieser Werte nicht weiter verfahren werden soll. Doch meist
handelt es sich bei den Fehleinträgen um Attribute die nicht derart essentiell sind, dennoch
eine bedeutende Informationsquelle darstellen. D.h. sie müssen beachtet werden.
Doch wie soll man nun mit Instanzen umgehen, die fehlende Attribute aufweisen. Wie bereits beschrieben (Kapitel 3.1) kann man die Instanz mittels eines Gewichtungsschemas in
Teile aufsplitten, und entsprechend der proportionalen Durchgangsrate absinken lassen. Dadurch kann man mehrere Lösungen erhalten, die ebenfalls nach einem Gewichtungsschema
ausgewertet werden können.
Eine andere Frage besteht darin, festzulegen, wie der Trainingssatz geteilt werden soll, sobald man einen Splittattribut festgelegt hat. Dies erfolgt ebenfalls durch ein Gewichtungsschema. (Absinken lassen für jede möglichen Attributwert ...)
1.3
Pruning:
Eine der bedeutendsten Aufgaben ist es die gefundenen Regeln (den erstellten Baum) möglichst klein und effektiv zu halten. Deswegen ist es unausweichlich den Baum zu generalisieren, d.h. unnötige Teilbereiche zu beschneiden (Pruning) bzw. Umformungen vorzunehmen.
Beim Pruning unterscheidet man zwei verschiedene Arten: Das sogenannte postpruning
(backward pruning) und das sogenannte prepruning (forward pruning). Beim Postpruning
baut man zuerst den gesamten Baum auf, und kürzt unnötige Teile weg, bzw. formt den
Baum um. Beim prepruning versucht man beim Erstellung des Baumes alle unnötigen Knoten zu vermeiden, da dieses Verfahren aber sehr komplex, zeitaufwendig und dem ersten
Verfahren teils unterlegen ist, spielt es in der nachfolgenden Betrachtung keine Rolle.
Das meist umgesetzte Verfahren ist das schon genannte postpruning, das man wiederum in
die zwei Teilbereiche dem subtree replacement (Teilbaumersetzung) und dem subtree raising (Teilbaum Erweiterung) aufteilt.
Subtree-replacement:
Die Idee liegt darin bestimmte „Teilbäume“ auszuwählen und durch einen einzelnen
neuen Zweig zu ersetzen. Dieses Verfahren startet in den Blättern und arbeitet sich
von unten nach oben (bis zur Wurzel).
Betrachten wir wieder das Beispiel:
wage increase
first year
> 2,5
≤ 2,5
Working hours
per week
≤ 36
Statutory holidays
> 36
health plan
contribution
bad
none
bad
half
good
≤ 10
>10
good
full
bad
wage increase
fist year
≤4
>4
bad
good
Welches zu
wage increase
first year
≤ 2,5
> 2,5
Statutory holidays
bad
≤ 10
>10
wage increase
fist year
good
≤4
>4
bad
good
Evaluiert.
Subtree-raising:
Das Prinzip besteht hierin mehrere Knoten zusammenzufassen, d.h. zu generalisieren. „Raising“ heißt es deswegen, weil meist ein tieferliegender Knoten mit einem
darüber liegenden Knoten zusammenfällt, wobei aber nicht mehr von den ursprünglichen Konten gesprochen werden kann.
Am folgenden Beispiel wird dieses Schema verdeutlicht.
A
A
B
C
1
2
4
C
5
1’
2’
3’
3
Bei dem Teilästen des Knotens C handelt es sich nicht um die ursprünglichen Töchter 1, 2, 3 sondern, bedingt durch die Umformung, um neue Tochterknoten, die auch
die Bedingungen von B (4,5) involvieren.
Da dieses Verfahren sehr rechenaufwendig ist, wird es in heutigen Implementierungen (C 4.5 , C5) eigentlich nur für diejenigen Äste verwendet die sehr stark frequentiert sind d.h. von vielen Instanzen erreicht wird.
1.4
Erwartete Fehlerrate
Doch wie soll nun entschieden werden, ob ein Knoten durch ein Blatt, einen anderen Knoten
oder gar nicht ersetzt werden soll. Um diese Entscheidung rationell zu treffen, wird die Fehlerwahrscheinlichkeit benötigt, die aus dem Entfernen oder Verändern hervorgehen würde.
Mittels dieser Maßzahl wird eine eindeutige Entscheidung ermöglicht.
Wie berechnet man die Fehlerwahrscheinlichkeit? Es macht keinen Sinn, wenn man von der
Fehlerwahrscheinlichkeit der Trainingsdaten ausgeht, da in diesem Fall keinerlei Veränderung ermöglicht würde, da der Baum schließlich aus denselben Daten generiert wurde.
Eine Möglichkeit nun an diese Fehlerrate zu kommen ist, aus den ursprünglichen Daten
Teilbereiche auszublenden und diese als unabhängige Testdaten anzuwenden, also die
sogenannte reduced error pruning Methode. Der Nachteil besteht darin, dass weniger
Daten herangezogen werden.
Eine Alternative ist es Fehlerabschätzung anhand der Trainingsdaten abzufassen (C4.5).
Die dahinterstehende Idee beruht darauf, dass alle Instanzen die einen Knoten erfassen
betrachtet werden. Die Mehrheitsklasse wird dazu ausgewählt den Knoten zu repräsentieren, also diejenige, die für einen überwiegenden Teil der Instanzen zutrifft. Dadurch
erhält man eine gewisse Fehlerzahl. (E) aus der Gesamtzahl der Instanzen (N).
Mittels der bereits beschriebenen Fehlerberechnung („hold out“ Methode Kapitel 5.2) kann
man die Fehlerwahrscheinlichkeit herleiten. Doch muss man beachten, dass im Gegensatz zu
den beschriebenen Verfahren sich hierbei nicht um unabhängige Testdaten handelt, und dass
man nicht die Erfolgsrate betrachtet sondern die Fehlerrate. Aufgrund dieser Abweichungen verwendet man eher die Vertrauensgrenze anstatt eines Vertrauensbereiches.
Mittels den bereits betrachteten mathematischen (statistischen) Methoden und der vorgegebenen Vertrauensrate (c) kann man eine Grenzwert z finden so dass gilt:
 f −q

Pr 
> z = c
 q (1−q ) N

(1)
gegebene Vertrauens rate ( > 25%)
c
f −q =
E
N
überwachte Fehlerrate
q
richtige Fehlerrate
Wie zuvor führt dies zu einer höheren Vertrauensrate für q welche nun als pessimistische
Vorhersage an einem Knoten (e) verwendet wird.
f +
e=
f
f2
z2
z2
+z
−
+
2N
N N 4N 2
z2
1+
N
( 2)
Die Formeln (1) und (2) sind im Kapitel 5.2 hergeleitet
Um zu verstehen, wie dies nun funktioniert betrachtet man das Tarifproblem mit folgenden
Vorgaben:
25% Vertrauensrate
damit ergibt sich für z= 0,69
wage increase
first year
≤ 2,5
> 2,5
Working hours
per week
≤ 36
> 36
health plan
contribution
1 bad
1 good
none
4 bad
2 good
half
1 bad
1 good
full
4 bad
2 good
Betrachtet man das linke mittlere Blatt für das gilt
E=2
N=6
Und somit
ƒ = 0,33
Eingesetzt in die Abschätzungsformel ergibt es ein Wert von
e = 0,47
Dies bedeutet, dass man anstatt der Fehlerwahrscheinlichkeit der Testdaten (33%)
eine pessimistische Fehlerwahrscheinlichkeit von 47% annimmt. Und in der Tat ist
dies eine sehr pessimistische Annahme, da bei einer 2-fach Entscheidung kaum mehr
als 50% Fehler angenommen werden. Doch betrachtet man sich den Nachbarblatt
stellt man fest, dass dieses noch eine schlechtere Bewertung erfährt (mit E = 1 und N
= 2), denn hier beträgt die Fehlerwahrscheinlichkeit, mit e = 72, 72%. Das dritte
Blatt erhält wiederum dieselbe Fehlerwahrscheinlichkeit als das erste.
Als nächstes müssen nun die einzelnen Fehlerraten mit einem Gewichtungsschema
kombiniert werden, welche zu einer agregierten Fehlerwahrscheinlichkeit von 0,51
führt (Schema: 6:2:6).
Nun betrachtet man die Fehlerwahrscheinlichkeit für den Elternknoten „Health plan
contribution“. Dieser beinhaltet neun schlechte und fünf gute Beispiele, so dass die
Trainingsdatenwahrscheinlichkeit für ƒ=5/14 beträgt. Mit diesen Werten ergibt die
obige Formel eine pessimistische Fehlerrate von 0,46%. Da dies weniger ist als die
Kindknoten (hier Blätter) werden sie einfach weggeschnitten.
Als Folgeschritt betrachtet man nun den Knoten „working hours per week“, welcher
nun zwei Kinder in Blattform hat.
Die Fehlerwahrscheinlichkeit für das erste (mit E =1 und N = 2) ist 0,72, die des
zweiten 0,46. Werden diese nach einem Gewichtungsschema von 2:14 gewertet führt
es wiederum zu einem Fehlerwert , der höher ist als der zu erwartende Fehler beim
Knoten selbst, somit werden die Teilbäume beschnitten.
wage increase
first year
≤ 2,5
> 2,5
bad
Dieses Verfahren schein recht effektiv zu arbeiten, dennoch kann man um einen noch
bessere Anpassung zu gewährleisten den Eingangsvertrauenswert verändern.
1.5
Komplexität
Wie verhält es sich aber mit der Komplexität des Erstellens von Entscheidungsbäumen.
Angenommen es werden n Instanzen mit m Attributen betrachtet so ergibt sich eine Komplexität von O(mn log n):
Ein Baum mit n Blättern hat eine Komplexität von O(log n), vorausgesetzt er ist
nicht entartet (d.h. gleichmäßiger Verteilt, keine „lineare Liste“). Unter der Tatsache
dass jedes einzelne Attribut in jeder Tiefe betrachtet werden muss (nicht zwingend
an jedem Knoten), ergibt sich eine Komplexität von O(n log n) für jedes Attribut und
somit für alle Attribute zusammen O(mn log n)
Betrachtet man die numerischen Attribute so kommt die Tatsache hinzu, dass diese sortiert
werden müssen, dies bedeutet bei einer normalen Komplexität eines Sortieralgorithmuses
von (n log n) Operationen für jedes der numerischen Attribute.
Als Weiteres schließt sich noch der Arbeitsaufwand für das Pruning des Baumes an. Hierunter fallen die beiden Methoden der Teilbaum-Ersetzung mit einer Komplexität von O(n)
und der Teilbaum-Erweiterung mit O(n(log n)²). Wie setzt sich diese Komplexitäten zusammen?
Bei der Teilbaum-Ersetzung folgt sie aus der Tatsache, dass die Komplexität von
der Anzahl der Knoten abhängt (eines für jedes Attribut), also eine fixe Größe
(da jeder Knoten betrachtet wird).
Die Teilbaum Erweiterung hat dieselbe Grundkomplexität, hierbei kommt aber
noch hinzu, dass während des gesamten Prozesses an jeder Instanz eine Klassifizierung notwendig werden kann (also O(n log n)). Da aber die Klassifikation
nicht eine Einzeloperation ist ergibt sich die genannte Komplexität (
Eine Teil-
baumerweiterung an der Wurzel ist komplexer als eine tief im Baum)
Somit ergibt sich eine totale Komplexität von
(
O(mn log n ) + O n(log n )
1.6
2
)
Vom Baum zur Regel
Es ist möglich die Regeln (wie bereits erklärt) direkt aus dem Baum auszulesen, indem man
für alle Blätter Regeln generiert und den Querschnitt daraus nimmt. Die erhaltenden Regeln
sind wie schon beschrieben komplexer als notwendig. Doch es gibt einige Vorgehensweise
dies zu minimieren:
Man nimmt die Regeln wie bei dem ursprünglichen Verfahren und wendet die o.g. Fehlererwartung auf den Regelsatz an:
Man betrachtet die Fehlerwahrscheinlichkeit mit der Regel und ohne die gefundene Regel.
Ist diese ohne die Regel kleiner, so lässt man die Vorschrift wegfallen. Auf diese Weise verfährt man mit allen Vorschriften und am Schluss muss nur noch nach Duplikaten durchforstet werden.
Doch Vorsicht: Diese Methode garantiert keine Redundanzfreiheit, genauso wenig wie die
optimale Lösung. Deswegen Grund gibt es bessere Vorgehensweisen, die ohne einen Entscheidungsbaum auskommen.
1.7
Literatur
Quelle und Arbeitsgrundlage:
[1] Witten, Frank: Data Mining
Herunterladen