8 Entscheidungsbäume 8.1 Einführung 8 Entscheidungsbäume 8.1 Entscheidungsbäume 8.1 Einführung 8.1 Bäume: Einführung Im Folgenden wird der Aufbau von Entscheidungsbäumen am Beispiel des Methode und des daraus Implementierten Programms CART (Classification and Regression Trees; Breiman et al., 1984) systematisch vorgestellt. Entscheidungsbäume 8 Entscheidungsbäume Äquivalente Funktion in R: rpart() in Paket rpart. 8.1 Einführung Entscheidungsbäume sind auf den ersten Blick ein grundlegend anderer Ansatz zur Konstruktion von Klassifikationsregeln. Ihre Regeln sind meist sehr verständlich für den Anwender, können sich aber nicht sehr flexibel an die Daten anpassen. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume Sommersemester 2013 300 8.1 Einführung 8 Entscheidungsbäume 8.1 Bäume: Einführung 8.2 Vorüberlegungen Sommersemester 2013 302 8.2.1 Klassenwahrscheinlichkeiten 8.2.1 Klassenwahrscheinlichkeiten Einführung (aus: Chee Jen Chang (2002)) Vorwissen über Klassenwahrscheinlichkeiten: Bei der Konstruktion eines Klassifikationsbaums benutzt CART ganz wesentlich a-priori Wahrscheinlichkeiten (priors). Im Folgenden sei Entscheidungsbäume bestehen aus einer Abfolge von binären Entscheidungen, die als Baum darstellbar sind. N Anzahl Fälle in der Stichprobe, Nj Anzahl Fälle in Klasse j und πj a-priori Wahrscheinlichkeit der Klasse j Fälle. In jedem Knoten findet eine Ja-Nein“ Entscheidung statt ” (Elternknoten, parent node). Bei Ja“ folgt die Entscheidung ” im nächsten Knoten auf der linken Seite (Kindknoten, child node), bei Nein“ auf der rechten Seite. ” Die Entscheidungen werden so getroffen, dass die Knoten möglichst eine reine“ Klasse darstellen. ” In jedem Endknoten (terminal node) wird eine Zuordnung zu der Klasse getroffen, die dort am häufigsten vorkommt. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 301 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 303 8 Entscheidungsbäume 8.2 Vorüberlegungen 8.2.1 Klassenwahrscheinlichkeiten 8 Entscheidungsbäume 8.2.1 Klassenwahrscheinlichkeiten Auch Entscheidungsbäume verwenden also a-priori-Wissen: 8 Entscheidungsbäume 8.2 Vorüberlegungen Sommersemester 2013 Zwei Fragenformate sind in CART möglich: 1 2 304 8.2.2 Komponenten der Baumkonstruktion Eine Menge von Fragen, auf denen die Teilungsentscheidung basiert, 2 Teilungsregeln und Anpassungsgüte-Kriterien zur Beurteilung einer Teilung und 3 Regeln zur Zuweisung einer Klasse zu einem Endknoten. Sommersemester 2013 Ist Z = b?“, falls Z eine nominale Variable ist und b eine ” ganze Zahl, die von Z angenommen werden kann. Z.B. Ist ” Geschlecht = 1?“ Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.2 Vorüberlegungen Sommersemester 2013 306 8.2.2 Komponenten der Baumkonstruktion 8.2.2 Komponenten der Baumkonstruktion Die Konstruktion eines Klassifikationsbaums beruht im Wesentlichen auf drei Komponenten: 1 Ist X ≤ d?“, falls X eine stetige oder ordinale Variable ist ” und d eine Konstante in dem Wertebereich von X . Z.B. Ist ” Einkommen ≤ 2000 e?“ Offenbar ist die Anzahl der sinnvollen Teilungspunkte bei jeder Variable beschränkt durch die Anzahl der unterschiedlichen Werte, die die Variable in der Stichprobe annimmt. 8.2.2 Komponenten der Baumkonstruktion Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8.2.2 Komponenten der Baumkonstruktion Typ und Format von Fragen Bei Daten gestütztem Vorwissen (data prior) wird angenommen, dass die Verteilung der Klassen in der Grundgesamtheit dieselbe ist wie die Verteilung in der Stichprobe. Die Wahrscheinlichkeiten πj werden geschätzt N durch pj = Nj . Bei der Annahme von gleichen Wahrscheinlichkeiten (priors equal): Klassen treten in der Grundgesamtheit gleich häufig auf. Im Fall von zwei Klassen: P(Klasse 1) = P(Klasse 2) = 0.5. Als dritte Möglichkeit kann noch der Mittelwert zwischen den ersten beiden Wahrscheinlichkeitsschätzern verwendet werden (mixed priors). Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8.2 Vorüberlegungen 8.2.2 Komponenten der Baumkonstruktion Wenn Z eine nominale Variable ist mit m unterschiedlichen Werten in der Stichprobe, dann ist die Anzahl der möglichen Teilungen mit Z gleich m. Wenn anstelle der Fragen Ist Z = b?“ allgemeinere ” Fragen des Typs Ist Z ∈ S“, S beliebige Teilmenge der m Werte, ” zugelassen sind, dann ist die maximale Anzahl unterschiedlicher Teilungen = 2m−1 . In CART basieren Teilungen standardmäßig auf einer einzigen Variable. 305 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 307 8 Entscheidungsbäume 8.2 Vorüberlegungen 8.2.3 Unreinheitsmaß 8 Entscheidungsbäume 8.2.3 Unreinheitsmaß 8.2 Vorüberlegungen 8.2.3 Unreinheitsmaß 8.2.3 Unreinheitsmaß Teilungsregeln und Anpassungsgütekriterien Auf der anderen Seite nimmt das Gini Unreinheitsmaß sein Minimum (=0) an, wenn alle Fälle eines Knotens in genau eine Klasse fallen. D.h. wenn t ein reiner Knoten“ ist mit ” verschwindender Fehlklassifikationsrate, dann ist i(t) = 0. Sei j = 1, 2, . . . , G die Nummer der Klasse einer kategoriellen abhängigen Variablen, dann definiert p(j|t) die Klassenwahrscheinlichkeit der abhängigen Variable im Knoten t, so dass p(1|t) + p(2|t) + p(3|t) + . . . + p(G |t) = 1, j = 1, . . . , G . Definition 1 (Unreinheitsmaß) Ein Unreinheitsmaß i(t) im Knoten t ist definiert als eine Funktion der Klassenwahrscheinlichkeiten p(1|t), p(2|t), p(3|t), . . ., d.h. i(t) = f [p(1|t), p(2|t), . . . , p(G |t)]. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume Sommersemester 2013 8.2 Vorüberlegungen 308 8.2.3 Unreinheitsmaß 8 Entscheidungsbäume 8.2.3 Unreinheitsmaß 8.2 Vorüberlegungen Sommersemester 2013 310 8.2.4 Anpassungskriterium 8.2.4 Anpassungskriterium Definition 3 (Anpassungsgüte der Teilung) Definition 2 (Gini Unreinheitsmaß) Sei s eine Teilung im Knoten t. Dann ist die Anpassungsgüte dieser Teilung definiert als die Verringerung der Unreinheit gemessen durch Das Gini Unreinheitsmaß im Knoten t ist definiert als i(t) := 1 − S Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken mit S := G X 2 p (j|t), ∆i(s, t) = i(t) − pL i(tL ) − pR i(tR ), j=1 wobei wobei S die Reinheitsfunktion ist. s eine spezielle Teilung ist, pL der Anteil der Fälle im Knoten t, der in den linken Kindknoten tL geht, CART verwendet im Wesentlichen das Gini Kriterium. Das Gini Unreinheitsmaß nimmt sein Maximum an, wenn jede Klasse in dem Knoten mit gleicher Wahrscheinlichkeit angenommen wird, d.h. wenn pR der Anteil der Fälle im Knoten t, der in den rechten Kindknoten tR geht, i(tL ) Unreinheit des linken Kindknotens und p(1|t) = p(2|t) = . . . = p(G |t), i(tR ) Unreinheit des rechten Kindknotens. d.h. bei minimaler Reinheit S. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 309 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 311 8 Entscheidungsbäume 8.2 Vorüberlegungen 8.2.5 Klassenzuordnungsregeln 8 Entscheidungsbäume 8.2.5 Klassenzuordnungsregeln 8.2 Vorüberlegungen 8.2.5 Klassenzuordnungsregeln 8.2.5 Klassenzuordnungsregeln Fehlklassifikationskosten werden wie zuvor für Paare von Klassen definiert: Es gibt im Wesentlichen zwei Regeln, wie man Knoten Klassen zuordnet. Das Mehrheitsvotum c(i, j) := Kosten der falschen Zuordnung einer Beobachtung aus Klasse i zu Klasse j. Ordne einem Endknoten t diejenige Klasse zu, für die p(j|t) am größten ist. Wenn also die Mehrheit der Fälle eines Endknotens zu einer speziellen Klasse gehört, dann wird dieser Knoten dieser Klasse zugeordnet. Diese Regel geht von gleicher Fehlklassifikationskosten für jede Klasse aus und ist insofern ein Spezialfall von Regel 2. Die erwarteten Fehlklassifikationskosten bei der Wahl von Klasse j im Endknoten t ergeben sich dann als: Cj = p(1|t) · c(1, j) + . . . + p(G |t) · c(G , j). Regel (2) ist also tatsächlich Bayes-Regel, weil sie diejenige Klasse Aj wählt mit den kleinsten erwarteten Kosten Cj . Falls alle Kosten gleich sind, ergibt sich Regel (1). Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.2 Vorüberlegungen Sommersemester 2013 312 8.2.5 Klassenzuordnungsregeln Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.2.5 Klassenzuordnungsregeln Sommersemester 2013 314 8.3 Konstruktion 8.3 Konstruktion eines Klassifikationsbaums Minimale Kosten Die Konstruktion eines Klassifikationsbaums beginnt mit der binären Partition einer Stichprobe (bzw. der Baumwurzel) in Teilstichproben (Kindnoten, Endknoten) mit Hilfe einfacher Fragen der Art Ist X ≤ d?“, wobei X eine Variable in dem Lerndatensatz ” ist und d eine reelle Zahl. Ordne einem Endknoten t diejenige Klasse zu mit den kleinsten erwarteten Fehlklassifikationskosten. Die Anwendung dieser Regel berücksichtigt unterschiedliche Kosten der Fehlklassifikation von Beobachtungen unterschiedlicher Klassen. Zu Anfang befinden sich alle Beobachtungen in der Baumwurzel. Dieser Knoten ist unrein“ bzw. heterogen, weil ” er alle Beobachtungen enthält unabhängig von ihrer Klassenzugehörigkeit. Das Ziel ist, eine Regel zu finden, die diese Beobachtungen in 2 Gruppen (bzw. Knoten) aufteilen, die homogener sind als die Baumwurzel. CART dazu benutzt einen computerintensiven Algorithmus, der nach dem besten Teilungspunkt sucht für jede Variable. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 313 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 315 8 Entscheidungsbäume 8.3 Konstruktion 8 Entscheidungsbäume 8.3 Konstruktion eines Klassifikationsbaums Die von CART benutzte Methode wird auch binäre ” an der rekursive Partitionierung“ genannt. Beginnend Baumwurzel wird dabei unter Benutzung z.B. des Gini-Indexes als Teilungsregel wie folgt vorgegangen: 1 Teilungen mit Linearkombinationen Alternativ zu der Verwendung von einzelnen Variablen können auch Linearkombinationen zur Teilung verwendet werden. Das ist z.B. sinnvoll, wenn die Klassenstruktur von solchen Linearkombinationen abhängt. CART teilt die Beobachtungen testweise in zwei Kindknoten mit Hilfe der ersten Variable an allen ihren möglichen Teilungspunkten, d.h. an allen von dieser Variable angenommenen Werten. Teilungen mit Linearkombination haben (im Fall von zwei Variablen) die folgende Form: Ist α1 X1 + α2 X2 ≤ d ?“ ” Beispiel: Ist 0.55 × Konsum + 0.05 × Alter = 40?“ ” Wenn die Antwort Ja“ ist, dann wird die Beobachtung dem ” linken Kindnoten zugeordnet, ansonsten dem rechten. Ja-Fälle“ werden in den linken Knoten gesetzt, ” Nein-Fälle“ in den rechten. ” 2 CART beurteilt dann die durch die Teilungen erzielte Verringerung der Unreinheit i(t) mit Hilfe der Formel 3 CART wählt als beste Teilung diejenige mit der größten Verringerung der Unreinheit. Falls kategorielle Variable vorkommen, sollten sie in Dummy Variablen umgewandelt werden. ∆i(s, t) = i(t) − pL i(tL ) − pR i(tR ) (s.o.). Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume Sommersemester 2013 316 8.3 Konstruktion 8.3 Konstruktion eines Klassifikationsbaums Schritte 1-3 werden für alle anderen Variablen wiederholt. 5 CART ordnet dann die Variablen bzgl. ihrer Fähigkeit an, die Unreinheit zu verringern. 6 CART wählt diejenige Variable und den dazu gehörigen Teilungspunkt aus, die die Unreinheit der Baumwurzel oder eines Elternknotens am meisten verringert. 7 CART führt dann die Teilung gemäß dieses Teilungspunkts aus. 8 Schritte 1-7 werden rekursiv wiederholt auf jedem Endknoten der augenblicklichen Stufe. 9 CART konstruiert so einen sehr großen Baum mit sehr vielen Endknoten, die sämtlich entweder rein sind oder nur sehr wenige Fälle enthalten. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 4 Sommersemester 2013 8.4 weitere Überlegungen 8.4 Teilungen mit Linearkombinationen Sommersemester 2013 318 8.4 weitere Überlegungen 8.4 Fehlende Werte Fehlende Werte Alle Regeln sind natürlich nur dann ausführbar, wenn die dazugehörigen Variablen keinen fehlenden Wert haben. Trotzdem ist die Unvollständigkeit von Daten im Allg. kein Problem für CART. CART speichert nämlich zu jeder optimalen Teilung zusätzlich sog. Surrogat-Variablen, die zur Teilung herangezogen werden, wenn der Wert der Teilungsvariablen fehlt. 317 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 319 8 Entscheidungsbäume 8.4 weitere Überlegungen 8 Entscheidungsbäume 8.4 Fehlende Werte 8.4 weitere Überlegungen 8.4 Wichtigkeit von Variablen Für diese Teilungen werden dann die Informationsgewinne (Verringerung der Unreinheit) über alle Knoten für jede Variable summiert. CART klassifiziert in solchen Fällen auf der Basis der besten verfügbaren Surrogat-Variable, d.h. derjenigen verfügbaren Variable, die der ursprünglichen Teilungsvariable insofern am ähnlichsten ist, dass die Anzahl Fälle im linken und rechten Kindknoten möglichst gleich den Anzahlen ist, die durch die optimale Teilung erzeugt worden wären. Das ergibt eine Reihenfolge der Variablen. Es ist üblich, die Güte einer Variable relativ in % des Informationsgewinns der wichtigsten Variable auszudrücken. CART identifiziert standardmäßig 5 Surrogat-Variablen in jedem Knoten, wenn Regeln mit einzelnen Variablen verwendet werden. Im Fall von Linearkombinationen sind keine Surrogate verfügbar. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume Sommersemester 2013 320 8.4 weitere Überlegungen Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.4 Wichtigkeit von Variablen Sommersemester 2013 322 8.4 weitere Überlegungen 8.4 Ausreißer Wichtigkeit von Variablen Ausreißer in den unabhängigen Variablen haben im Allg. keinen Einfluss auf die CART Analyse, weil die Teilungen zumeist an Nichtausreißer-Werten durchgeführt werden. Surrogat-Variablen können außerdem verwendet werden, um sog. maskierte Variablen zu identifizieren, die zur Teilung herangezogen werden würden, wenn eine andere Variable nicht verfügbar wäre, und um die Variablen bzgl. ihrer (relativen) Wichtigkeit für die Klassifikation zu beurteilen. Wenn Ausreißer in der abhängigen Variablen existieren, dann werden sie in kleinen Knoten isoliert und haben keinen weiteren Einfluss auf den Rest des Baumes. Bei der Beurteilung der Wichtigkeit einer Variable x wird für diese Variable in jedem Knoten des optimalen Baums die Surrogatteilung bestimmt, d.h. diejenige Teilung durch die Variable x, die der optimalen Teilung in obigem Sinne am ähnlichsten ist. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 321 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 323 8 Entscheidungsbäume 8.5 Pruning 8 Entscheidungsbäume 8.5 Stutzen (pruning) des Baumes Hohe Komplexität! Die Kostenkomplexität hat die folgenden Eigenschaften: Stutzen (pruning) des Baumes Wenn β = 0 ist, dann nimmt die Kostenkomplexität ihr Minimum bei dem größtmöglichen Baum an. Auf der anderen Seite, wenn β wächst und genügend groß ist (etwa unendlich), dann hat ein Baum mit nur einem Endknoten (der Baumwurzel) die niedrigste Kostenkomplexität. Große Bäume können zwei Probleme haben: 1 Obgleich sie sehr genau sind, d.h. kleine oder Null-Wiedereinsetzungs-Fehlerraten haben, erzeugen sie große Fehlerraten auf neuen Datensätzen, und 2 das Verstehen und Interpretieren von Bäumen mit vielen Endknoten ist kompliziert. Große Bäume sind also komplexe Bäume. Wenn β fällt und sich Null annähert, werden die Bäume mit minimaler Kostenkomplexität größer. Der Baum der richtigen ” Größe“ mit der richtigen Komplexität“ sollte zwischen den ” obigen Extremen liegen. Die Komplexität eines Baumes wird gemessen durch die Anzahl seiner Endknoten. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.5 Pruning 8.5 Stutzen (pruning) des Baumes Sommersemester 2013 324 8.5 Pruning Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.5 Stutzen (pruning) des Baumes Sommersemester 2013 326 8.5 Pruning 8.5 Stutzen (pruning) des Baumes Abweichungen von der Idealsituation einer Nullfehlerrate beinhalten den Zwiespalt zwischen Genauigkeit und Komplexität. Der Zusammenhang zwischen Baumkomplexität und Genauigkeit kann aufgefasst werden als Kosten-Komplexitätsmaß: Die Suche nach dem Baum der richtigen Größe“ beginnt mit dem ” Stutzen (pruning) der Äste des größten Baumes (Tmax ) von den Endknoten her ( bottom up“). ” Dabei wird schrittweise vorgegangen: Stutze zunächst von den Endknoten her so lange wie die Wiedereinsetzungsfehlerrate gleich bleibt (T1 ). Definition 4 (Kosten-Komplexität) Die Kosten-Komplexität ist definiert als: Kosten-Komplexität = Wiedereinsetzungs-Fehlerrate + β × Anzahl Endknoten, wobei β (= Strafe“ (penalty) pro zusätzlichem Endknoten) als ” Komplexitätsparameter (complexity parameter) bezeichnet wird. Dann suche nach der sog. schwächsten Verbindung, d.h. nach dem Knoten, bei dem das Abschneiden des darunter liegenden Baumes die Wiedereinsetzungsfehlerrate insofern am wenigsten vergrößert, dass die kleinste Erhöhung des Strafparameters“ β notwendig ist, damit die ” Kostenkomplexität mit und ohne dem darunter liegenden Baum gleich ist. Schneide den Unterbaum der schwächsten Verbindung ab. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 325 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 327 8 Entscheidungsbäume 8.5 Pruning 8 Entscheidungsbäume 8.5 Stutzen (pruning) des Baumes Wiederhole die Suche nach der schwächsten Verbindung in dem gestutzten Baum iterativ so lange, bis nur die Baumwurzel übrig ist. Dabei steigt der Strafparameter“ ” (complexity parameter) und die Anzahl Knoten des Baumes fällt. Bei der 10-fachen Kreuzvalidierung werden zunächst maximale Bäume auf der Basis von jeweils 9/10 der Stichprobe erzeugt, dann werden diese Bäume mit denselben Komplexitätsparametern (Strafparametern) zurückgestutzt, d.h. es werden Minimalkostenbäume für die Reihe von Strafparametern βk bestimmt, die bei der Gesamtstichprobe ermittelt wurden, Aus dieser Reihe von Teilbäumen bestimme dann mit Hilfe von Kreuzvalidierung bzw. Testdatensätzen den Baum mit der optimalen Vorhersagegenauigkeit. Eine genauere Erklärung findet sich in Breiman et al. 1984, S. 66–81. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume Sommersemester 2013 8.5 Pruning 8.5 Stutzen (pruning) des Baumes auf allen diesen Bäumen wird die kreuzvalidierte Fehlerrate bestimmt. Man beachte, dass die Anzahl Endknoten in solchen Bäumen nicht gleich sein muss, sondern nur der Strafparameter. 328 8.5 Pruning Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.5 Stutzen (pruning) des Baumes Sommersemester 2013 330 8.5 Pruning 8.5 Stutzen (pruning) des Baumes Der Stutzungsprozess produziert eine Reihe von ineinander enthaltenden Unterbäumen zusammen mit zwei Arten von Fehlerraten und Kostenkomplexitätsmaßen, basierend zum einen auf (z.B. 10-fach) Kreuzvalidierung und zum anderen auf Wiedereinsetzung (offensichtliche Fehlerrate). CART identifiziert schließlich den Baum mit den minimalen Kosten und wählt einen optimalen“ Baum innerhalb einer ” Standardabweichung des Baumes mit minimalen kreuzvalidierten Kosten. Die Option der Eine-Standardabweichung-Regel kann geändert werden. Der Grund für eine solche Regel ist, dass es bessere“ Bäume ” geben könnte mit kreuzvalidierten Fehlerraten in der Nähe derjenigen des Minimalkostenbaumes. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 329 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 331 8 Entscheidungsbäume 8.5 Pruning 8 Entscheidungsbäume 8.5 Stutzen (pruning) des Baumes 8.6 Alternativen 8.6 Alternative Klassifikationsbäume Breiman et al. (1984) schlagen vor, als optimalen Baum den kleinsten Baum zu wählen mit einer kreuzvalidierten Fehlerrate innerhalb einer Standardabweichung der Fehlerrate des Minimalkostenbaums. Damit kann auch der Minimalkostenbaum selber zum Optimalkostenbaum werden, d.h. zum Baum der richtigen Größe“. ” Der kreuzvalidierte Fehler wird zunächst wie die Komplexität fallen, dann ein Minimum erreichen und schließlich wieder steigen. oder auch Conditional Inference Trees, die über Splits mit Hilfe von Unabhängigkeitstests entscheiden und damit einige Eigenschaften von Bäumen in Spezialfällen deutlich verbessern, siehe Hothorn et al. (2006), in R: Funktion ctree() in Paket party. Den optimalen Baum erhält man, indem man die eine ” Standardabweichung Regel“ auf den Minimalkostenbaum anwendet. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume Sommersemester 2013 332 8.6 Alternativen Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.6 Alternative Klassifikationsbäume Sommersemester 2013 334 8.7 Fallstudie in R 8.7 Fallstudie: Bäume in R – rpart Es gibt viele Varianten von Klassifikationsbäumen, die sich insbesondere durch die Wahl des Teilungskriteriums unterscheiden. Im Informatik Teil wurden bereits solch andere Ansätze vorgestellt. Weitere Beispiele sind (vgl. Michie et al. (1994), S. 61/2): Wir setzen die Fallstudie mit den Pima Indianern aus dem Kapitel zur logistischen Regression fort. Zum Lernen: Funktion rpart() aus Paket rpart. > > > > > CHAID (CHi-squared Automatic Interaction Detection) verwendet χ2 -Tests über die Unabhängigkeit von Zeilen (Variablen) und Spalten (Klassen) in Kontingenztafeln zur Teilung. library("rpart") set.seed(20060911) pid_rpart <- rpart(diabetes ~ ., data = pid_learn) plot(pid_rpart, uniform = TRUE) text(pid_rpart) C4.5 und verwandte Algorithmen verwenden sogenannte Entropiemaße zur Identifikation der Variablen mit der größten Information über die Klasseneinteilung (in R über das RWeka Paket zugänglich). Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 333 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 335 8 Entscheidungsbäume 8.7 Fallstudie in R 8 Entscheidungsbäume 8.7 Bäume in R – rpart 8.7 Fallstudie in R 8.7 Bäume in R – rpart glucose< 130.5 | mass< 27.35 > pid_rpart <- prune(pid_rpart, cp = 0.018) > plot(pid_rpart, uniform = TRUE) > text(pid_rpart) mass< 29.95 age< 29.5 glucose< 160 glucose< 157.5 neg glucose< 130.5 | pressure>=61 pedigree< 0.625 neg neg pos pos mass< 27.35 glucose< 106.5 mass< 29.95 age< 42.5 mass>=36.65 pos age< 29.5 neg pregnant>=1.5 neg pos pedigree< 0.625 neg pos neg pos pos Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume pos pos mass>=34.4 neg neg glucose>=136.5 neg neg Sommersemester 2013 336 8.7 Fallstudie in R Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 8.7 Bäume in R – rpart pos Sommersemester 2013 8.7 Bäume in R – rpart Zum Prunen: Zum Vorhersagen: > pid_rpart$cptable > pred_rpart <- predict(pid_rpart, newdata = pid_test, + type = "class") > mc(pred_rpart) 1 2 3 4 5 6 338 8.7 Fallstudie in R CP nsplit rel error xerror xstd 0.24117647 0 1.0000000 1.0000000 0.06230853 0.09411765 1 0.7588235 0.9117647 0.06083331 0.02745098 2 0.6647059 0.7705882 0.05783822 0.01764706 5 0.5823529 0.7647059 0.05769506 0.01372549 10 0.4941176 0.8000000 0.05853104 0.01000000 14 0.4294118 0.8411765 0.05943855 $table pred true neg pos neg 133 25 pos 36 58 $rate [1] 0.2420635 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 337 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 339 8 Entscheidungsbäume 8.7 Fallstudie in R 8 Entscheidungsbäume 8.7 Bäume in R – Party mit ctree Breiman, L., Friedman, J.H., Olshen, R.A., Stone, C.J. (1984): Classification and regression trees. Monterey, Calif., U.S.A.: Wadsworth. > library("party") > pid_ctree <- ctree(diabetes ~ ., data = pid_learn) > plot(pid_ctree, tp_args = list(beside = FALSE, reverse = TRUE, + id = FALSE)) Chee Jen Chang (2002): Partitioning Groups using Classification and Regression Tree in Biomedical Research, http://binfo.ym.edu.tw/edu/seminars/pdf/CART_YMUBC.pdf. 1 glucose p < 0.001 ≤ 130 ≤ 101 11 mass p < 0.001 8 pedigree p = 0.017 >9 ≤ 29.9 4 mass p = 0.042 Webb, P., von Braun, J., Yohannes, Y. (1992): Famine in Ethiopia: Policy implications of coping failure at national and household levels. Research Report 92. Washington, D.C.: International Food Policy Research Institute. > 29.9 > 0.52 1 0.8 n = 136 1 0.8 n = 60 1 0.8 n = 48 1 0.8 n = 119 neg n = 11 neg 0.8 neg 1 neg n = 41 1 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0.2 0 0 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8 Entscheidungsbäume 0 pos 0.6 0.4 0.2 0 pos 0.6 0.4 0.2 0 pos 0.6 0.4 0.2 pos 0.6 0.4 0.2 pos 0.6 0.4 0 Yohannes, Y., Webb, P. (1999): Classification and Regression trees, CARTTM : A User Manual for Identifying Indicators of Vulnerability to Famine and Chronic Food Insecurity; Washington, D.C.: International Food Policy Research Institute (IFPRI), http://www.ifpri.org/pubs/microcom/micro3.pdf. > 34 neg 0.8 pos neg pos 1 ≤ 0.52 neg ≤ 34 Michie, D., Spiegelhalter, D. J., Taylor, C. C. (1994): Machine Learning, Neural and Statistical Classification; Ellis Horwood, New York. > 101 3 pregnant p = 0.033 n = 85 Hothorn, T., Hornik, K., Zeileis, A. (2006): Unbiased Recursive Partitioning: A Conditional Inference Framework; Journal of Computational and Graphical Statistics, 15(3), 651-674. > 130 2 glucose p < 0.001 ≤9 0 Sommersemester 2013 340 8.7 Fallstudie in R Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder 8.7 Bäume in R – Party mit ctree Sommersemester 2013 342 9.1 Konstruktion von Zufallswäldern 9.1 Zufallswälder (Random Forests) > pred_ctree <- predict(pid_ctree, newdata = pid_test) > mc(pred_ctree) Zufallswälder 9 Zufallswälder $table pred true neg pos neg 140 18 pos 45 49 9.1 Konstruktion von Zufallswäldern Zufallswälder klassifizieren auf der Basis vieler Klassifikationsbäume, vgl. Breiman (2001, 2002). Die Bildung der dazu erforderlichen Klassifikationsbäume ist dabei zufallsabhängig. Deshalb spricht man von Zufallswäldern. $rate [1] 0.25 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 8.8 Literatur 8.8 Literatur – Bäume Sommersemester 2013 341 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 343 9 Zufallswälder 9.1 Konstruktion von Zufallswäldern 9 Zufallswälder 9.1 Konstruktion von Zufallswäldern Ein neues Objekt wird dann von dem Zufallswald so klassifiziert, dass es von jedem der berechneten Bäume einmal klassifiziert wird und dann der Klasse zugeordnet wird, die die meisten Bäume bevorzugt haben (Demokratie im Wald!). Definition 5 (Zufallswald (Random Forest)) Ein Zufallswald (Random Forest) ist implizit definiert über seine Konstruktion, die auf den folgenden 3 Folien beschrieben ist. Vorteil des Zufallswalds im Gegensatz zu einem einzigen Klassifikationsbaum: Jede Variable, die einen Beitrag zur Klassentrennung liefert, wird irgendwann auch bei der Klassifikation verwendet. Zuerst muss festgelegt werden, wie viele Bäume den Wald bilden sollen. Dabei wird die Klassifikationsgüte eines Waldes meist umso besser, je mehr einzelne Bäume berechnet werden. Eine große Anzahl Bäume führt nicht zu Overfitting und ist deshalb zu bevorzugen. Nachteil des Zufallswalds im Gegensatz zu einem einzigen Klassifikationsbaum: Verständlichkeit geht verloren, denn die Klassifikationsregel ist nicht mehr einfach ablesbar. Grundsätzlich hängt die Anzahl der Bäume aber von verschiedenen Parametern ab, z.B. der Anzahl Merkmalen und der Anzahl Klassen. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder Sommersemester 2013 344 9.1 Konstruktion von Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 346 9.2 Wichtigkeit von Variablen in Zufallswäldern Zufallswälder Die Bäume werden nicht aus allen zur Verfügung stehenden Daten bestimmt, sondern es wird für jeden Baum eine Stichprobe (mit Zurücklegen) aus den Beobachtungen gezogen – vgl. Bootstrap, daher auch Zufallswald. 9 Zufallswälder 9.2 Wichtigkeit einzelner Variablen in Zufallswäldern Zufallswälder eignen sich also besonders dann zur Klassifikation, wenn es mehrere Variablen gibt, die nur einen kleinen Beitrag zur Klassentrennung liefern. Da hier mit vielen unterschiedlichen Stichproben gearbeitet wird, spricht man auch von bagging (Bootstrap aggregation). Außerdem werden für die Bestimmung der Verzweigungsregeln nicht alle Variablen verwendet, sondern es wird zufällig eine (vorher festgelegte) Anzahl aus allen Variablen gezogen. Nur diese werden nach der besten Partition durchsucht. Der Beitrag zur Klassentrennung kann durch die Wichtigkeit einer Variablen bestimmt werden. Eine mögliche Berechnung dieser Wichtigkeit ergibt sich aus dem Gini-Index. Jeder Baum sollte dabei so groß wie möglich sein (kein Pruning). Er soll auf der entsprechenden Stichprobe mit den gezogenen Variablen den kleinstmöglichen Wiedereinsetzungsfehler haben. Sommersemester 2013 Sommersemester 2013 9.2 Wichtigkeit einzelner Variablen in Zufallswäldern 9 Zufallswälder 9.1 Konstruktion von Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9.1 Konstruktion von Zufallswäldern 9.1 Konstruktion von Zufallswäldern 345 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 347 9.2 Wichtigkeit einzelner Variablen in Zufallswäldern 9 Zufallswälder 9.2 Wichtigkeit von Variablen in Zufallswäldern Um zu einem Maß für die Wichtigkeit einer bestimmten Variablen zu kommen, werden in jedem Baum die Out-of-Bag-Objekte auch klassifiziert, nachdem die Werte der Variablen, deren Wichtigkeit bestimmt werden soll, bei den zu klassifizierenden Objekten zufällig permutiert wurden. Wenn man das für jeden Baum durchführt, erhält man eine neue Fehlerrate. Als Maß für die Wichtigkeit einer Variable erhält man: Prozentualer Anstieg von der ursprünglichen ” OBB-Fehlerrate zu der neuen Fehlerrate“. Definition 6 In den Bäumen des Zufallswalds werden die Verzweigungen so bestimmt, dass sie zur größtmöglichen Verminderung des Gini-Indexes führen. I := VG /NV ergibt ein Maß für die Wichtigkeit einer Variablen mit VG Summe der Verminderungen des Gini-Indexes im gesamten Wald, die auf eine bestimmte Variable zurückzuführen sind NV Anzahl der Verzweigungen, die diese Variable verwenden Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder Sommersemester 2013 Je stärker die Fehlerrate angestiegen ist, umso wichtiger ist die entsprechende Variable für die Klassentrennung. 348 9.2 Wichtigkeit einzelner Variablen in Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 350 9.3 Sicherheit der Klassifikation in Zufallswäldern Zufallswälder Alternativ lässt sich die Wichtigkeit mit einem Maß berechnen, das auf der OUT-of-Bag-Bootstrap Fehlerrate (OBB-Fehlerrate) beruht. Die OBB-Fehlerrate berechnet sich, indem für jeden einzelnen Baum die Beobachtungen, die nicht zur Bildung des Baums verwendet wurden, mit dem jeweiligen Baum klassifiziert werden. Sommersemester 2013 Sommersemester 2013 9.3 Sicherheit der Klassifikation in Zufallswäldern 9 Zufallswälder 9.2 Wichtigkeit von Variablen in Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9.2 Wichtigkeit einzelner Variablen in Zufallswäldern 9 Zufallswälder 9.2 Wichtigkeit von Variablen in Zufallswäldern 9 Zufallswälder 9.3 Sicherheit der Klassifikation in Zufallswäldern Um zu untersuchen, wie zuverlässig die Klassifikation eines Objekts mit dem Zufallswald ist, kann die so genannte Margin verwendet werden. Dazu wird zunächst einmal eine Out-of-Bag-Klassifikation der Objekte für alle Bäume durchgeführt. Dann wird für jedes Objekt untersucht, wie oft es den einzelnen Klassen zugeordnet wurde. Diese Anzahl nennt man Votes (Stimmen) für die Klassen. Die Summe der Votes für die Klassen ergibt die Anzahl Bäume, die insgesamt das Objekt klassifiziert haben. 349 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 351 9 Zufallswälder 9.3 Sicherheit der Klassifikation in Zufallswäldern 9.3 Bemerkungen zu Zufallswäldern Random Forests in R: Funktion randomForest() in Paket randomForest. Definition 7 (Margin) Als Maß für die Sicherheit der Klassifikation eines einzelnen Objekts verwendet man den Margin Nw − maxi (Ni ) , M := No Eine auf Conditional Inference Trees basierende Version der Random Forests gibt es in R mit der Funktion cforest() in Paket party. i = {1, ..., g }\w , mit Es wurde erwähnt, dass die Methode der Konstruktion von Zufallswäldern, nämlich viele Klassifikationsregeln zusammenfassend zu gewichten, als bagging bezeichnet wird. Diese Technik des bagging kann auch auf andere (u.U. auch gleichzeitig auf unterschiedliche) Klassifikationsverfahren angewandt werden. Nw Anzahl Votes für die wahre Klasse w , Ni Anzahl Votes für Klasse i (ohne w !), No Anzahl Bäume, für die das Objekt Out-of-Bag ist. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder Sommersemester 2013 352 9.3 Sicherheit der Klassifikation in Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 354 9.3 Bagging als Verallgemeinerung Der Margin nimmt positive Werte an, wenn das Objekt Out-of-Bag richtig klassifiziert wurde, und negative, wenn es falsch klassifiziert wurde. Der Betrag des Margin zeigt an, wie sicher die Klassifikation ist: Definition 8 (Bagging) Mit bagging (Bootstrap aggregation) wird die Sammlung vieler gleichartiger Lerner und deren gemeinsame Entscheidungsregel bezeichnet, wobei die Lerner aus Bootstrapstichproben sowohl der Beobachtungen als auch der Variablen eines Datensatzes generiert werden. Werte nahe bei 1 zeigen an, dass die meisten Bäume das Objekt in dieselbe Klasse klassifiziert haben. Werte nahe 0 deuten an, dass die Klassifikation sehr unsicher ist. Die Anzahl Votes für die wahre Klasse ist dann ähnlich hoch wie die Anzahl Votes für die falsche Klasse mit den meisten Votes. Sommersemester 2013 Sommersemester 2013 9.3 Sicherheit der Klassifikation in Zufallswäldern 9 Zufallswälder 9.3 Sicherheit der Klassifikation in Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9.3 Sicherheit der Klassifikation in Zufallswäldern 9 Zufallswälder 9.3 Sicherheit der Klassifikation in Zufallswäldern Bemerkung: Die Lerner sind typischerweise von recht einfacher Struktur. Beispiel: Random Forests als Bagging Verfahren, die einzelne Bäume als Lerner verwenden. 353 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 355 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern 9.4 Beispiel zu Zufallswäldern 9.4 Beispiel zu Zufallswäldern Zufallswälder 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern Flugzeugelektronik Aus 16 Charakteristika einer Stromreihe und 5 Charakteristika einer Sensorreihe soll bestimmt werden, ob ein so genannter Lichtbogen vorliegt oder nicht. Dabei werden 2 Arten von Lichtbögen unterschieden (Serial Arc und Wet Arc). Es werden also 3 Klassen unterschieden. Lichtbögen können zu Kabelbränden führen, die insbesondere in Flugzeugen sehr gefährlich sind. Es liegen 1235 Beobachtungen vor. Wichtigkeit einzelner Variablen Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder Sommersemester 2013 356 9.4 Beispiel zu Zufallswäldern 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern Sommersemester 2013 358 9.4 Beispiel zu Zufallswäldern 9.4 Beispiel zu Zufallswäldern Zunächst müssen die Parameter des Verfahrens festgelegt werden: Die Abbildung zeigt die Wichtigkeit der einzelnen Variablen für die sehr gute Klassentrennung. Man erkennt, dass nur sehr wenige Variablen besonders wichtig sind, also stark zur Senkung der Unreinheit (gemessen mit dem Gini-Index) beitragen oder bei einer Permutation der Werte der entsprechenden Variablen die Fehlerrate stark ansteigen lassen. Pro Baum werden genauso viele Beobachtungen verwendet wie insgesamt zur Verfügung stehen (1235), allerdings zufällig mit Zurücklegen gezogen. Pro Baum werden 3 zufällig bestimmte Variablen verwendet. Es werden 1000 Bäume verwendet. Daraus ergibt sich eine 246-fach kreuzvalidierte Fehlerrate von 2.59%. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 Die anderen Variablen scheinen aber trotzdem einen kleinen Beitrag zur Klassentrennung zu liefern. Gerade in solchen Fällen wird die Verwendung von Zufallswäldern empfohlen, da alle Variablen an der Klassifikation beteiligt werden ohne Überanpassung an die Daten. 357 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 359 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern Um zu untersuchen, wie zuverlässig die Klassifikation durch den Zufallswald ist, kann die Margin in der folgenden Abbildung betrachtet werden. Wieder zum Datensatz der Pima Indianer als Fortsetzung der Fallstudie“: ” > library("randomForest") > set.seed(20060911) > pid_rf <- randomForest(diabetes ~ ., data = pid_learn, + mtry = 3, ntree = 100, importance = TRUE, + keep.forest = TRUE) Die Margin von 75 (von den 1235) Objekten ist < 0.5. Für alle anderen Objekte kann man die Klassifikation als relativ sicher bezeichnen. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder 9.5 Fallstudie in R 9.5 Fallstudie: Zufallswälder in R Sommersemester 2013 360 9.4 Beispiel zu Zufallswäldern Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken 9 Zufallswälder 9.4 Beispiel zu Zufallswäldern Sommersemester 2013 362 9.5 Fallstudie in R 9.5 Fallstudie: Zufallswälder in R > pred_rf <- predict(pid_rf, newdata = pid_test) > mc(pred_rf) $table pred true neg pos neg 134 24 pos 38 56 $rate [1] 0.2460317 Abb. 2 : Margins Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 361 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 363 9 Zufallswälder 9.5 Fallstudie in R 10 Idee des Boostings 9.5 Fallstudie: Zufallswälder in R 10.0 Idee des Boostings > varImpPlot(pid_rf) pid_rf Boosting glucose ● mass ● age ● pregnant ● pedigree pressure triceps ● mass 9 Zufallswälder ● age ● pregnant ● ● triceps Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken (nach Szczot, 2005) ● pedigree 0.2 0.3 0.4 0.5 0.6 MeanDecreaseAccuracy 10 Idee des Boostings ● pressure ● ● 0.1 glucose ● 0 10 20 30 40 50 60 MeanDecreaseGini Sommersemester 2013 364 9.6 Literatur Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 366 10 Idee des Boostings 9.6 Literatur – Random Forests und Bagging 10.0 Idee des Boostings Breiman, L. (2001): Random Forests; Machine Learning Journal 45(1), 5-32. Idee Eine wesentliche Idee des Boosting ist, statt eines starken ” Klassifikators“, wie zum Beispiel einer LDA, schwächere Klassifikatoren für ein Entscheidungsproblem einzusetzen, indem man ihre Ergebnisse kombiniert. Die Idee dabei ist, dass wesentlich leichter ein paar Faustregeln für ein Problem zu finden sind, als eine generelle Regel, die das Problem wirklich löst. Breiman, L. (2002): Manual on setting up, using, and understanding random forests V3.1, http://oz.berkeley.edu/users/breiman/ Using_random_forests_V3.1.pdf. Hothorn, T., Hornik, K., Zeileis, A. (2006): Unbiased Recursive Partitioning: A Conditional Inference Framework; Journal of Computational and Graphical Statistics, 15(3), 651-674. Man beachte, dass auch bei Zufallswäldern insofern vereinfachte Regeln kombiniert wurden, dass bei jeder Regel immer nur eine kleine Anzahl Variablen verwendet wurde. Michie, D., Spiegelhalter, D. J., Taylor, C. C. (1994): Machine Learning, Neural and Statistical Classification; Ellis Horwood, New York. Webb, P., von Braun, J., Yohannes, Y. (1992): Famine in Ethiopia: Policy implications of coping failure at national and household levels. Research Report 92. Washington, D.C.: International Food Policy Research Institute. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 365 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 367 10 Idee des Boostings 10 Idee des Boostings 10.0 Boosting: Beispiel 10.0 Boosting: Beispiel Wir suchen einen Algorithmus, der beim Pferderennen auf den Gewinner tippen soll. Um eine Entscheidungsregel aufzustellen, fragen wir einen Experten. Ihm wird es schwer fallen, eine einzige Regel aufzustellen, anhand derer man auf den Gewinner schließen kann. Stattessen fällt es ihm leichter, einige Faustregeln zu nennen (wie zum Beispiel Tipp auf das ” Pferd, das in der letzten Zeit oft gewonnen hat.“ oder Tipp ” auf das Pferd, das die besten Quoten hat.“). Die Idee, Boosting Verfahren für Klassifikationsprobleme einzusetzen, wurde erst 1990 von Freund veröffentlicht. Fünf Jahre später wurde der AdaBoost Algorithmus von Shapire und Freund vorgestellt. AdaBoost hat erstaunlich gute Ergebnisse für viele Klassifikationsprobleme geliefert. Deswegen stehen auch AdaBoost und seine Varianten im Fokus dieses Abschnitts. Es ist einsichtig, dass solche Regeln allein nur ein bisschen besser sind, als zufällig auf ein Pferd zu tippen. Wenn man allerdings viele solche Daumenregeln kombiniert zu einer gewichteten Mehrheitsentscheidung, so erhält man u.U. einen mächtigen Entscheidungsalgorithmus. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 368 10 Idee des Boostings Sommersemester 2013 370 10 Idee des Boostings 10.0 Boosting: Beispiel 10.0 Boosting: Zweiklassenfall Die Hoffnung besteht nun darin, dass so kombinierte Daumenregeln bessere Ergebnisse liefern werden als eine einzige allgemeine Regel. Boosting ist ein Verfahren, das eine effiziente Entscheidungsregel für ein Klassfikationsproblem aufstellt, indem es mehrere einfache Regeln kombiniert. Diese Regeln werden im Folgenden schwache Klassifikatoren (weak learner) oder Basisklassifikatoren genannt. Als Input ist ein Trainingdatensatz (y1 , x1 ), ..., (ym , xm ) gegeben, wobei xi ein Datenpunkt aus dem Merkmalsraum X ist und yi das dazugehörige Klassenlabel aus Y . Hier liegt ein Zweiklassenproblem vor, d.h. Y = −1, +1. Die einzelnen xi werden zunächst alle mit 1/m gleichgewichtet. Nach jeder Trainingsrunde verändern sich diese Gewichte – gemäß einer Verteilung Dt – zugunsten der Beispiele, die den größten Fehler verursacht haben. Natürlich müssen sich die Gewichte Dt (i) zu 1 aufsummieren. Aus dieser Gewichtung des Trainingssatzes werden die Gewichte αt der einzelnen Weak-Learner bestimmt. Diese Vorgehensweise adaptiert den Strong-Learner zugunsten der schwierigen Beispiele im Trainingssatz. Das Ergebnis von Boosting dagegen bezeichnen wir als starken Klassifikator (strong learner). Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 369 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 371 10 Idee des Boostings 10 Idee des Boostings 10.0 Boosting: Zweiklassenfall 10.0 Boosting: Klassifikationsgüte Pseudocode von ADABoost Die Güte der Klassifikationsregel wird mit ihrem Fehler Initialisiere Di = 1/m. Für t = 1, ..., T führe durch: t = Pi∼Dt (ht (xi ) 6= yi ) Trainiere Basislerner gemäß der Verteilung Dt . gemessen. Für den schwachen Lerner berechnet Adaboost den Parameter αt , der die Wichtigkeit angibt, die dem Basisklassifikator ht zugeschrieben wird. Ist der Fehler t < 0.5, so ist αt > 0. Je kleiner der Fehler, desto größer wird αt . Der Strong-Learner H ist dann die gewichtete Mehrheitsentscheidung der schwachen Lerner ht über die Runden t = 1, ..., T . Man erhält ht : X → {−1, 1} mit Fehler t = Pi∼Dt (ht (xi ) 6= yi ) t Setze αt = 0.5 ln( 1− t ) P Setze Zt = i Dt (i)e −αt yi ht (xi ) Setze Dt+1 (i) = Dt (i)e −αt yi ht (xi ) Zt Berechne Gesamtentscheidung: H(x) = Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken PT t=1 αt ht (x) Sommersemester 2013 372 10 Idee des Boostings Sommersemester 2013 374 10 Idee des Boostings 10.0 Boosting: Zweiklassenfall 10.0 Boosting: Klassifikationsgüte In den Runden t = 1, ..., T wird jeweils ein schwacher Lerner ausgesucht. Die Aufgabe dieses Basis-Lerners ist es, eine Klassifikationsregel ht gemäß der Verteilung Dt zu finden. Der schwache Lerner unterliegt der Restriktion, dass er auf dem Trainingssatz einen Fehler < 0.5 produzieren soll. Die schwache Klassifikationsregel soll also immer ein bisschen besser sein als eine zufällige Klassifikationsregel (, die ja im Durchschnitt einen Fehler von 0.5 erzielt). Dies ist im Allg. nicht ohne Kenntnis der Daten zu erreichen. Natürlich kann statt mehrerer schwacher Lerner auch ein einziger, vielleicht gar nicht so schwacher, Lerner verwendet werden, der mit Hilfe von Boosting verbessert werden soll. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 Im AdaBoost Algorithmus ist die Klassifikationsregel ht eine Abbildung von X nach {−1, +1}. Dies kann man verallgemeinern, indem der schwache Lerner eine Vorhersage ht (xi ) ∈ |R trifft. Dann ist das Vorzeichen von ht (xi ) das Klassenlabel und der Wert gibt die Zuverlässigkeit der Vorhersage an. Die wichtigste Eigenschaft des Adaboost Lernverfahrens ist seine Fähigkeit, den Trainingsfehler zu minimieren. Man kann zeigen (ohne Bew.), dass der Trainingsfehler des starken Lerners H minimiert werden kann, wenn αt so gewählt wird, dass Zt minimal wird. Bei binären Klassifikatoren führt das zu dem αt im Pseudocode. 373 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 375 10 Idee des Boostings 10 Idee des Boostings 10.0 Boosting: Klassifikationsgüte 10.0 Literatur – Boosting Shapire, Y., Freund, R.E. (1995): A decision-theoretic generalization of on-line learning and an application to boosting. In Computational Learning Theory: Eurocolt ’95, 23–37. Springer-Verlag Schreibt man den Fehler des Klassifikators ht als t = 0.5 − γt , so gibt γt an, um wie viel besser die Vorhersage des Basislerners als der Zufall ist. Damit kann man zeigen (ohne Beweis), dass für den Trainingsfehler gilt: Q P 1 −2 t γt2 . t Zt ≤ e m |{i : H(xi ) 6= yi }| ≤ Ist die Regel des schwachen Lerners etwas besser als eine zufällige Regel, so ist γt > γ > 0. In diesem Fall fällt der Fehler exponentiell. AdaBoost adaptiert die Fehlerraten der einzelnen Basislerner. Die Ungleichung zeigt, dass Ada-Boost tatsächlich ein Verfahren ist, das eine Menge von schwachen Klassifikatoren, deren Entscheidungen etwas besser als zufällig sind, zu einem starken Klassifikator kombinieren kann. Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 Szczot, M. (2005): Boosting schwacher Lerner; Seminararbeit; Informatik, Universität Ulm; in: http://www.informatik.uni-ulm.de/ni/Lehre/SS05/ HauptseminarMustererkennung/ausarbeitungen/Szczot.pdf 376 Katharina Morik und Uwe Ligges: Wissensentdeckung in Datenbanken Sommersemester 2013 377