Folien zu “Data Mining” von I. H. Witten and E. Frank übersetzt von N. Fuhr 6 Implementierung: Reale ML-Verfahren Entscheidungsbäume: von ID3 zu C4.5 Pruning, fehlende Werte, nummerische Attribute, Effizienz Entscheidungsregeln: von PRISM zu Induct und PART Fehlende Werte, nummerische Attribute, Berechnung der Signifikanz, Regeln mit Ausnahmen Erweiterte lineare Klassifikation: Support-Vektoren Nichtlineare Grenzen, Hyperebenen mit maximalem Abstand, Kernel-Funktionen Instanz-basiertes Lernen Beschleunigung, Rauschunterdrückung, Attributgewichtung, Generalisierung von Exemplaren Nummerische Vorhersage Regressions-/Modell-Bäume, lokal gewichtete Regression Clustern: hierarchisch, inkrementell, probabilistisch K-means, heuristisch, Mischungs-Modell, EM, Bayes'sches Cl. 2 Algorithmen für praktische Anwendungen Damit ein Algorithmus für ein breites Spektrum an Anwendungen einsetzbar ist, muss er: Nummerische Attribute unterstützen Fehlende Werte erlauben Robust gegenüber verrauschten Daten sein In der Lage sein, beliebige Konzeptbeschreibungen zu approximieren (zumindest im Prinzip) Die grundlegenden Verfahren müssen erweitert werden, um diese Anforderungen zu erfüllen 3 Entscheidungsbäume Erweiterung von ID3: Unterstützung nummerischer Attribute: einfach Mit fehlenden Werten angemessen umgehen: schwieriger Stabilität bei verrauschten Daten: erfordert Pruning-Mechanismus Endergebnis: C4.5 (Quinlan) Bekanntester und (wahrscheinlich) meistbenutzter LernAlgorithmus Kommerzieller Nachfolger: C5.0 4 Nummerische Attribute Standardmethode: binäre Aufteilung z.B. temp < 45 Im Gegensatz zu nominalen Attributen hat jedes Attribut viele mögliche Aufteilungspunkte Lösung besteht in einfacher Erweiterung: Berechne den Informationsgewinn (oder ein anderes Maß) für jeden möglichen Aufteilungspunkt des Attributs Wähle “besten” Aufteilungspunkt Informationsgewinn für den besten Aufteilungspunkt = Informationsgewinn des Attributs Höherer Berechnungsaufwand 5 Wetterdaten Outlook Temperature Humidity Windy Play Sunny Hot High False No Sunny Hot High True No Overcast Hot High False Yes Rainy Mild Normal False Yes … If If If If If …Outlook … Temperature …Humidity … Windy Sunny 85 85 False No Sunny 80 90 True No Play Overcast 83 86 False Yes outlook = sunnyRainy and humidity 75= high then 80 play = no False Yes outlook = rainy and windy = true then play = no … … … … … outlook = overcast then play = yes humidity = normal then play = yes none of the If above then = play = yes outlook sunny and humidity > 83 then play = no If outlook = rainy and windy = true then play = no If outlook = overcast then play = yes If humidity < 85 then play = yes If none of the above then play = yes 6 Beispiel Aufteilung nach dem Attribut temperature: 64 65 Yes No 68 69 70 71 Yes Yes Yes No 72 No 72 75 Yes Yes 75 80 Yes No 81 83 85 Yes Yes No Z.B. temperature < 71.5: yes/4, no/2 temperature ≥ 71.5: yes/5, no/3 Info([4,2],[5,3]) = 6/14 info([4,2]) + 8/14 info([5,3]) = 0.939 Bits Platziere die Aufteilungspunkte in der Mitte zwischen den Werten Kann alle Aufteilungspunkte in einem Durchlauf evaluieren! 7 Vermeide wiederholtes Sortieren! Sortiere Instanzen nach den Werten des nummerischen Attributs Zeitkomplexität für das Sortieren O (n log n) Muss dies für jeden Knoten des Baums wiederholt werden? Nein! Sortierreihenfolge der Kinder kann aus der Sortierreihenfolge der Eltern abgeleitet werden Zeitkomplexität für die Ableitung: O (n) Nachteil: für jedes nummerische Attribut muss ein Vektor von Sortierindices verwaltet werden. 8 Binäre vs. MehrwegeAufteilung Aufteilung (Mehrwege-) eines nominalen Attributs nutzt die Information des Attributs vollständig aus Nominales Attribut wird höchstens einmal in jedem Pfad des Baums getestet Im Gegensatz zu binären Aufteilungen von nummerischen Attributen! nummerische Attribute können mehrfach entlang eines Pfades im Baum getestet werden Nachteil: Baum ist schwer zu verstehen Abhilfe: nummerische Attribute vorher diskretisieren, oder Mehrwege-Aufteilung (anstelle binärer) 9 Berechnung von Mehrwege-Aufteilungen Einfache und effiziente Methode zur Generierung von Mehrwege-Aufteilungen: Greedy-Algorithmus Dynamische Programmierung findet eine optimale Mehrwege-Aufteilungen in O (n2) Schritten imp (k, l, m ) ist die Unreinheit (impurity) der besten Aufteilung der Werte xl … xm in k Teilintervalle imp (k, 1, i ) = min0<j <i imp (k–1, 1, j ) + imp (1, j+1, i ) imp (k, 1, N ) liefert die beste k-Wege-Aufteilung In der Praxis funktioniert der Greedy-Algorithmus genauso gut 10 Fehlende Werte Teile Instanzen mit fehlenden Werten auf Jeder Teil, der einen Zweig entlang läuft, erhält ein Gewicht proportional zur relativen Häufigkeit des Zweiges Die Gewichte summieren sich zu 1 Der Informationsgewinn kann auch für Anteile von Instanzen berechnet werden Benutze Summe der Gewichte anstelle von Anzahlen Bei der Klassifikation wird die Instanz in gleicher Weise aufgeteilt Mische die Wahrscheinlichkeitsverteilung entsprechend den Gewichten 11 Pruning Vermeide Überadaption an verrauschte Daten Beschneide (prune) den Entscheidungsbaum Zwei Strategien: • • Postpruning nehme einen vollständigen Entscheidungsbaum und entferne unzuverlässige Teile Prepruning es wird nicht weiter verzweigt, wenn die Informationen unzuverlässig werden Postpruning wird in der Praxis bevorzugt— Prepruning kann nicht “früh genug stoppen” 12 Prepruning Basiert auf einen Signifikanztest Der Baum wird nicht mehr erweitert, wenn es keinen statistisch signifikanten Zusammenhang zwischen irgendeinem Attribut und der Klasse an einem bestimmten Knoten gibt Populärster Test: Chi-Quadrat-Test ID3 benutzt Chi-Quadrat-Test zusätzlich zum Informationsgewinn Nur statistisch signifikante Attribute werden bei der Auswahl nach dem Informationsgewinn berücksichtigt 13 Früher Abbruch a b class 1 0 0 0 2 0 1 1 3 1 0 1 4 1 1 0 Prepruning kann die Expansion des Baums zu früh stoppen Klassisches Beispiel: EXOR/Paritäts-Problem Kein einzelnes Attribut korreliert statistisch signifikant mit einer Klasse Die Struktur ist nur im voll expandierten Baum sichtbar Prepruning würde den Wurzelknoten nicht expandieren Aber: EXOR-Probleme treten selten in der Praxis auf Und: Prepruning ist schneller als Postpruning 14 Postpruning Erst wird der vollständige Baum aufgebaut Dann wird er beschnitten Der vollständige Baum zeigt alle Zusammenhänge zwischen den Attributen Problem: einige Teilbäume können aufgrund von Zufälligkeiten entstanden sein Zwei pruning-Operationen: Ersetzen von Teilbäumen (Subtree replacement) Hochziehen von Teilbäumen (Subtree raising) Mögliche Strategien: Fehlerabschätzung Signifikanztests MDL-Prinzip 15 Ersetzen von Teilbäumen Bottom-up Attribute Type Ein Baum wird nur Duration (Number of years) betrachtet, nachdem all Wage increase first year Percentage Wage increase second year Percentage seine Teilbäume behandelt Wage increase third year Percentage Cost of livingsind adjustment {none,tcf,tc} worden Working hours per week Pension Standby pay Shift-work supplement Education allowance Statutory holidays Vacation Long-term disability assistance Dental plan contribution Bereavement assistance Health plan contribution Acceptability of contract (Number of hours) {none,ret-allw, empl-cntr} Percentage Percentage {yes,no} (Number of days) {below-avg,avg,gen} {yes,no} {none,half,full} {yes,no} {none,half,full} {good,bad} 1 2 3 1 2% ? ? none 28 none ? ? yes 11 avg no none no none bad 2 4% 5% ? tcf 35 ? 13% 5% ? 15 gen ? ? ? ? good 3 4.3% 4.4% ? ? 38 ? ? 4% ? 12 gen ? full ? full good … 40 2 4.5 4.0 ? none 40 ? ? 4 ? 12 avg yes full yes half good 16 Hochziehen von Teilbäumen Lösche Knoten Verteile Instanzen neu Aufwändiger als Ersetzen von Teilbäumen (Lohnt sich der Aufwand?) 17 Schätzung der Fehlerquote Nur abschneiden, wenn der (geschätzte) Fehler reduziert wird Fehler auf den Trainingsdaten ist KEIN guter Schätzer (würde fast nie zum Abschneiden führen) Benutze zurückgelegte Datensätze zum Abschneiden (“reduced-error pruning”) Die C4.5-Methode Schätze Vertrauensintervall aus den Trainingsdaten Benutze daraus abgeleiteten heuristischen Schwellenwert zum Abschneiden Methode basiert auf Standard-Bernoulli-Prozess Fragwürdige statistische Annahmen (bzgl. der Trainingsdaten) 18 Die C4.5-Methode Fehlerschätzung für einen Teilbaum als gewichtete Summe der Fehlerschätzungen seiner Blätter Fehlerschätzung für einen Knoten: z2 f f2 z2 z2 e= f z − / 1 2 2N N N 4N N Für c = 25% ist z = 0.69 (aus der Normalverteilung) f ist der Fehler auf den Trainingsdaten N ist die Anzahl der durch ein Blatt abgedeckten Instanzen 19 Beispiel Beispiel f = 5/14 e = 0.46 e < 0.51 abschneiden! f=0.33 e=0.47 f=0.5 e=0.72 f=0.33 e=0.47 Kombination im Verhältnis 6:2:6 ergibt 0.51 20 Komplexität der BaumInduktion Annahmen: m Attribute n Trainingsinstanzen Baumtiefe O (log n) Baumkonstruktion Teilbaumersetzung Hochziehen von Teilbäumen O (m n log n) O (n) O (n (log n)2) Jede Instanz kann neu zugeordnet werden zu jedem Knoten zwischen ihrem Blatt und der Wurzel Kosten für die Umordnung (im Mittel): O (log n) Totale Kosten: O (m n log n) + O (n (log n)2) 21 Von Bäumen zu Regeln Einfache Methode: eine Regel pro Blatt C4.5-Regeln: „Gieriges“ Entfernen von Bedingungen aus Regeln, wenn dadurch der geschätzte Fehler reduziert wird Kann zu Regel-Duplikaten führen Wird abschließend überprüft Dann behandle jede Klasse einzeln betrachte die Regeln für diese Klasse finde eine “gute” Teilmenge (anhand der MDL) Dann: ordne die Teilmengen, um Konflikte zu vermeiden Abschließend: „Gieriges“ Entfernen von Regeln, wenn dies den Fehler auf den Trainingsdaten reduziert 22 C4.5: Auswahl und Optionen C4.5-Regeln sind langsam für große und verrauschte Datenmengen Kommerzielle Version C5.0 benutzt eine andere Technik Wesentlich schneller und etwas genauer C4.5 hat zwei Parameter Konfidenzniveau (Default 25%): kleinere Werte führen zu stärkerem Beschneiden Minimale Anzahl Instanzen in den beiden häufigsten Zweigen (Default 2) 23 Diskussion TDIDT: Top-Down Induction of Decision Trees Die am meisten untersuchte ML-Methode für Data Mining Verschiedene Kriterien für die Attribut/TestAuswahl führen nur zu leicht unterschiedlichen Resultaten Verschiedene Pruning-Methoden verändern i. w. die Größe des resultierenden (beschnittenen) Baumes C4.5 erzeugt univariate Entscheidungsbäume Einige TDITDT-Systeme können multivariate Bäume erzeugen (z.B. CART) 24 Klassifikationsregeln Einheitliches Vorgehen: trenne-undherrsche Unterschiede: Suchmethode (z.B. greedy, beam search, ...) Auswahlkriterien (z.B. Präzision, ...) Pruning-Methode (z.B. MDL, zurückgelegte Daten, ...) Abbruchkriterium (z.B. minimale Präzision) Nachbearbeitung der Regeln Außerdem: Entscheidungsliste vs. eine Regel pro Klasse 25 Auswahlkriterien für Bedingungen Grundlegender Abdeckungsalgorithmus: Füge Bedingung zu Regel, um die Präzision zu erhöhen Wähle Bedingung mit der höchsten Präzision Maß 1: p/t t Anzahl Instanzen, die durch die Regel abgedeckt werden p Anzahl der positiven Fälle darunter Generiert schnell Regeln, die keine negativen Instanzen abdecken Kann Regeln mit sehr geringer Abdeckung erzeugen —Spezialfälle oder Rauschen? Maß 2: Informationsgewinn p (log(p/t) – log(P/T)) P und T: positive/alle Instanzen, bevor die neue Bedingung hinzugefügt wurde Informationsgewinn betont die positiven Instanzen stärker als die negativen Die Maße interagieren mit den benutzten PruningMechanismen 26 Fehlende Werte, nummerische Attribute Einheitliche Behandlung fehlender Werte: sie erfüllen keine Bedingung Algorithmus muss entweder Andere Bedingungen benutzen, um positive Instanzen zu selektieren, oder sie unberücksichtigt lassen, um sie dann später gesondert zu behandeln In einigen Fällen ist es besser, “fehlend” als einen gesonderten Wert zu behandeln nummerische Attribute werden wie in Entscheidungsbäumen behandelt 27 Pruning von Regeln Zwei Hauptstrategien: Inkrementelles Beschneiden Globales Beschneiden Weiterer Unterschied: Pruning-Kriterium Fehler auf den zurückgelegten Daten (reduced-error pruning) Statistische Signifikanz MDL-Prinzip Außerdem: Post-Pruning vs. Pre-Pruning 28 INDUCT Initialize E to the instance set Until E is empty do For each class C for which E contains an instance Use basic covering algorithm to create best perfect rule for C Calculate m(R): significance for rule and m(R-): significance for rule with final condition omitted If m(R-) < m(R), prune rule and repeat previous step From the rules for the different classes, select the most significant one (i.e. with smallest m(R)) Print the rule Remove the instances covered by rule from E Continue Benutzt inkrementelles Pruning 29 Berechnung der Signifikanz INDUCTs Signifikanzmaß für eine Regel: Wahrscheinlichkeit, dass eine zufällige Regel mit derselben Abdeckung mindestens genausogut ist Zufällige Regel R wählt t Fälle zufällig aus den Daten aus Wie wahrscheinlich ist es, dass p davon zur korrekten Klasse gehören? Diese Wahrscheinlichkeit ist durch die hypergeometrische Verteilung gegeben 30 Hypergeometrische Verteilung Datenmenge enthält T Instanzen Klasse C enthält P Beispiele Zuf. Regel wählt t Beispiele aus p Beispiele korrekt abgedeckt Pr[ von t zufällig ausgewählten Beispielen, gehören p zur Klasse C] Wahrscheinlichkeit, dass eine zufällige Regel mindestens genauso gut ist ? ∑ P T −P p t− p min t , P m R= i= p Dies ist die statistische Signifikanz der Regel T t P T −P i t−i T t 31 Binomialverteilung Datenmenge enthält T Instanzen Zuf. Regel wählt t Beispiele aus Klasse C enthält P Beispiele p Beispiele korrekt abgedeckt Hypergeometrische V. aufwändig zu berechnen Approximation: Stichprobe mit Ersetzung statt ohne Ersetzung t P p T p P 1− T t− p 32 Benutzung einer PruningMenge Für statistische Validität muss das Maß auf Daten berechnet werden, die nicht zum Trainieren benutzt wurden: Dies erfordert eine Wachstumsmenge und eine Pruning-Menge Reduced-error pruning: generiere volle Regelmenge und beschneide sie dann Incremental reduced-error pruning: vereinfache jede Regel, sobald sie generiert wurde Daten können neu aufgeteilt werden, nachdem die Regel beschnitten wurde Stratifikation bringt Vorteile 33 Incremental reduced-error pruning Initialize E to the instance set Until E is empty do Split E into Grow and Prune in the ratio 2:1 For each class C for which Grow contains an instance Use basic covering algorithm to create best perfect rule for C Calculate w(R): worth of rule on Prune and w(R-): worth of rule with final condition omitted If w(R-) < w(R), prune rule and repeat previous step From the rules for the different classes, select the one that’s worth most (i.e. with largest w(R)) Print the rule Remove the instances covered by rule from E Continue 34 Maße beim incremental reduced-error pruning [p + (N – n)] / T (N - # negative Beispiele, n - # abgedeckte neg. Bs.) Widerspricht der Intuition: p = 2000 und n = 1000 vs. p = 1000 und n = 1 Erfolgsquote p / t Problem: p = 1 und t = 1 vs. p = 1000 und t = 1001 (p – n) / t Gleicher Effekt wie bei der Erfolgsquote, da äquivalent zu 2p/t – 1 Problem einfaches Maß für den Nutzen einer Regel zu finden, das der Intuition entspricht Benutze hypergeometrisches/binomisches Maß? 35 Variationen Generiere Regeln für geordnete Klassen Beginne mit der kleinsten Klasse Größte Klasse wird durch die Default-Regel behandelt Abbruchkriterium Stoppe Regelproduktion, wenn die Genauigkeit zu klein wird Regel-Lerner RIPPER: Benutzt MDL-basiertes Abbruchkriterium Verwendet Post-Prozessierung, um die Regel entsprechend dem MDL-Kriterium zu modifizieren 36 PART Vermeidet globalen Optimierungsschritt, der in C4.5rules und RIPPER benutzt wird Generiert Entscheidungsliste basierend auf einer trenne-und-herrsche-Prozedur Erzeugt einen partiellen Entscheidungsbaum, um eine Regel zu gewinnen Eine Regel wird nur beschnitten, wenn all ihre Implikationen bekannt sind Vermeidet übereilte Generalisierung Benutzt die C4.5-Prozedur zur Baumgenerierung 37 Generierung eines partiellen Baums Expand-subset (S): Choose test T and use it to split set of examples into subsets Sort subsets into increasing order of average entropy while there is a subset X not yet been expanded AND all subsets expanded so far are leaves expand-subset(X) if all subsets expanded are leaves AND estimated error for subtree ≥ estimated error for node undo expansion into subsets and make node a leaf 38 Beispiel 39 Anmerkungen zu PART Konvertiere Blatt mit maximaler Abdeckung in eine Regel Fehlende Werte werden wie bei C4.5 behandelt D.h., teile Instanz auf Zeitaufwand zur Generierung einer Regel: Worst case: gleicher Aufwand wie bei einem beschnittenen Baum Tritt bei verrauschten Daten auf Best case: gleicher Aufwand wie bei der Generierung einzelner Regel Tritt bei unverrauschten Daten auf 40 Regeln mit Ausnahmen Idee: erlaube Ausnahmen bei Regeln Beispiel: Regel für die Iris-Daten If petal-length ≥ 2.45 and petal-length < 4.45 then Iris-versicolor Neue Instanz: Sepal Sepal length width Petal length Petal width Type 5.1 2.6 0.2 Iris-setosa 3.5 Modifizierte Regel: If petal-length ≥ 2.45 and petal-length < 4.45 then Iris-versicolor EXCEPT if petal-width < 1.0 then Iris-setosa 41 Ein komplexeres Beispiel Ausnahmen zu Ausnahmen zu Ausnahmen default: Iris-setosa except if petal-length ≥ 2.45 and petal-length < 5.355 and petal-width < 1.75 then Iris-versicolor except if petal-length ≥ 4.95 and petal-width < 1.55 then Iris-virginica else if sepal-length < 4.95 and sepal-width ≥ 2.45 then Iris-virginica else if petal-length ≥ 3.35 then Iris-virginica except if petal-length < 4.85 and sepal-length < 5.95 then Iris-versicolor 42 Vorteile von Ausnahmen Regeln können inkrementell geändert werden Einfache Berücksichtigung neuer Daten Einfache Berücksichtigung von Domänenwissen Menschen denken oft in Ausnahmen Jede Konklusion kann in dem Kontext von Regeln und Ausnahmen betrachtet werden, die zu ihr geführt haben Lokalitätseigenschaft ist wichtig zum Verständnis großer Regelmengen “Normale” Regelmenge bieten diesen Vorteil nicht 43 Mehr zu Ausnahmen Default...except if...then... ist logisch äquivalent zu if...then...else (wobei else den Default-Fall spezifiziert) Aber: Ausnahmen bieten einen psychologischen Vorteil Annahme: Defaults und frühe Tests werden häufiger angewendet als spätere Ausnahmen Ausnahmen stehen für Spezialfälle 44 Regeln mit Ausnahmen Gegeben: eine Methode zur Generierung einer einzelnen guten Regel Dann können Regeln mit Ausnahmen einfach generiert werden: 1. Wähle Default-Klasse für die oberste Regel 2. Generiere eine gute Regel für eine der übrigen Klassen 3. Wende diese Methode rekursiv auf die beiden durch die Regel erzeugten Teilmengen an (D.h. abgedeckte/nicht abgedeckte Instanzen) 45 Beispiel zu den Iris-Daten Exceptions are represented as Dotted paths, alternatives as solid ones. 46 Erweiterung der linearen Klassifikation Lineare Klassifikatoren können keine nichlinearen Klassengrenzen modellieren Einfacher Trick: Transformiere die Attribute in einen neuen Merkmalsraum, der aus Kombinationen der Attributwerte besteht Z.B..: alle Produkte von n Faktoren, die aus den Attributen konstruiert werden können Beispiel mit zwei Attributen und n = 3: x=w 1 a 13w 2 a 12 a 2 w 3 a 1 a 22 w 3 a 32 47 Probleme mit diesem Ansatz 1. Problem: Geschwindigkeit 10 Attribute, und n = 5 ⇒ >2000 Koeffizienten Benutze lineare Regression mit Attributselektion Laufzeit wächst kubisch mit der Anzahl der Attribute 2. Problem: Überadaption Anzahl der Koeffizienten ist groß im Verhältnis zur Anzahl Trainingsinstanzen Fluch der Dimensionalität! (Curse of dimensionality) 48 Supportvektor-Maschinen Supportvektor-Maschinen sind Algorithmen zum Lernen linearer Klassifikatoren Wenig anfällig gegen Überadaption, da sie eine spezielle lineare Entscheidungsgrenze lernen: Die Hyperebene mit maximalem Abstand (maximum margin hyperplane) Schnell im nichtlinearen Fall Benutzt mathematischen Trick, um die Generierung von “Pseudo-Attributen” zu vermeiden Der nichtlineare Raum wird implizit generiert 49 Die Hyperebene mit maximalem Abstand Die Instanzen, die am nächsten zur Hyperebene mit maximalem Abstand liegen, werden Supportvektoren genannt 50 Supportvektoren Die Supportvektoren definieren die Hyperebene mit maximalem Abstand! Alle anderen Instanzen können gelöscht werden, ohne dass ihre Position oder Richtung sich ändert D.h., die Hyperebene kann beschrieben werden als x=w0w1 a1w 2 a2 x=b ∑ i is supp. vector αi y i ai ⋅a 51 Berechnung der Supportvektoren x=b ∑ i is supp. vector αi y i ai ⋅a Supportvektor: Trainingsinstanz mit αi > 0 Berechnung von αi und b ?— Quadratisches Optimierungsproblem mit Nebenbedingungen Standardsoftware zur Lösung dieser Probleme Aber: spezifische Algorithmen sind schneller Beispiel: Platts sequential minimal optimization Algorithmus (implementiert in WEKA) Anmerkung: diese Verfahren setzen separierbare Daten voraus! (d.h. Trennebene existiert) 52 Nichtlineare SVMs “Pseudo-Attribute” repräsentieren Attributkombinationen Überadaption ist kein Problem, da die Hyperebene mit maximalem Abstand stabil ist Es gibt meist wenige Supportvektoren (relativ zur Größe der Trainingsmenge) Berechnungsaufwand ist aber weiterhin ein Problem Bei jeder Berechnung des Skalarprodukts müssen alle “Pseudo-Attribute” berücksichtigt werden 53 Ein mathematischer Trick Vermeide Berechnung der “Pseudo-Attribute”! Berechne Skalarprodukt vor der nichtlinearen Transformation Beispiel: für x=b ∑ αi y i ai ⋅a i is supp. vector berechne x=b ∑ i is supp. vector αi y i ai ⋅a n Entspricht einer Abbildung in den Instanzenraum, der durch alle Produkte der n Attribute aufgespannt wird 54 Andere Kernel-Funktionen Transformation wird “kernel function” genannt Polynomieller Kernel x=b ∑ αi y i ai ⋅a n i is supp. vector Andere Möglichkeiten: x=b ∑ i is supp. vector Einzige Anforderung: Beispiele: αi y i K ai ⋅a K x i , x j =φ x i ⋅φ x j K x i , x j = x i⋅x j 1d − x i − x j K x i , x j =e 2 2σ2 K x i , x j =tanh βx i⋅x j b 55 Rauschen Bisher: Annahme separierbarer Daten (im originalen oder dem transformierten Raum) Man kann SVMs auf verrauschte Daten anwenden, indem man einen “Rausch-Parameter” C einführt C begrenzt den Einfluss einzelner Trainingsinstanzen auf die Trennebene Korrespondierende Nebenbedingung: 0 ≤ αi ≤ C Immer noch ein quadratisches Optimierungsproblem C muss experimentell bestimmt werden 56 Spärliche Daten SVM-Algorithmus wird wesentlich schneller bei spärlichen Daten (d.h. viele Werte sind 0) Warum? Weil sehr viele Skalarprodukte berechnet werden Spärliche Daten ⇒ effiziente Berechnung des Skalarprodukts Iteration über die von Null verschiedenen Werte SVMs können spärliche Datenmengen mit 10.000en von Attributen berechnen 57 Anwendungen Bildverarbeitung: z.B. Gesichtererkennung Besser als alternative Ansätze (1.5% Fehler) Handschrifterkennung von Postleitzahlen Vergleichbar mit den besten Alternativen (0.8% Fehler) Bioinformatik: z.B. Vorhersage der Struktur von Proteinen Textklassifikation Modifizierte SVM-Verfahren können auch für die nummerische Vorhersage eingesetzt werden 58 Instanz-basiertes Lernen Praktische Probleme des 1-NN-Verfahrens: Langsam (aber: es gibt schnelle Varianten mit baumartigen Zugriffsstrukturen) Abhilfe: entferne irrelevante Daten Rauschen (aber: k -NN hat kaum Probleme mit verrauschten Daten) Abhilfe: entferne verrauschte Instanzen Alle Attribute werden als gleich wichtig angesehen Abhilfe: gewichte Attribute (oder wähle einfach aus) Führt keine explizite Generalisierung durch Abhilfe: Regel-basierter NN-Ansatz 59 Lernen von Prototypen Nur die an der Entscheidung beteiligten Instanzen müssen gespeichert werden Verrauschte Instanzen sollten ausgefiltert werden Idee: benutze nur prototypische Beispiele 60 Beschleunige, bekämpfe Rauschen IB2: spart Speicher, beschleunigt die Klassifikation Arbeitet inkrementell Speichert nur fehlklassifizierte Instanzen Problem: verrauschte Daten werden festgehalten IB3: behandelt Rauschen Entfernt Instanzen, die zu schlechten Entscheidungen führen Berechne Vertrauensintervalle für 1. Die Erfolgsquote der Instanz 2. Default-Präzision seiner Klasse Akzeptanz/Zurückweisung von Instanzen Akzeptiere, wenn die UG von 1 die OG von 2 überschreitet Weise zurück, wenn die OG von 1 die UG von 2 unterschreitet 61 Gewichtete Attribute IB5: gewichte jedes Attribut (Gewichte können klassenspezifisch sein) Gewichtete Euklidische Distanz: w 1 2 x 1− y 1 2 . . .w 2 x n − y n 2 n Ändere Gewichte basieren auf dem nächsten Nachbarn Klasse korrekt: erhöhe Gewicht Klasse falsch: reduziere Gewicht Betrag der Änderung für das i te Attribut hängt ab von |xi- yi| 62 Rechteckige Generalisierungen Nächster-Nachbar-Regel wird außerhalb der Rechtecke benutzt Rechtecke sind Regeln! (Aber sie können konservativer sein als “normale” Regeln.) Geschachtelte Rechtecke sind Regeln mit Ausnahmen 63 Generalisierte Beispiele Generalisiere Instanzen zu Hyper-Rechtecken Online: inkrementelle Modifikation von Rechtecken Offline-Version: suche kleine Menge von Rechtecken, die die Instanzen abdeckt Wichtige Design-Entscheidungen: Erlaube überlappende Rechtecke? Erfordert die Auflösung von Konflikten erlaube geschachtelte Rechtecke? Behandlung nicht abgedeckter Instanzen? 64 Separierung generalisierter Exemplare Klasse 1 Klasse 2 Trennlinie 65 Generalisierte DistanzFunktionen Gegeben: einige Transformationsoperationen auf Attributen K*: Distanz = Wahrscheinlichkeit, dass Instanz A zufällig in Instanz B transformiert wird Mittelwert über alle Transformationspfade Gewichte Pfade entsprechend ihrer Wahrscheinlichkeit (hierzu wird geeignete Metrik benötigt) Einheitliche Methode, um verschiedene Attributtypen zu behandeln Einfach generalisierbar auf Distanzen zwischen Mengen von Instanzen 66 Bäume für die nummerische Vorhersage Regression: die Berechnung eines Ausdrucks, der eine nummerische Größe vorhersagt Regressionsbaum: “Entscheidungsbaum”, bei dem jedes Blatt eine nummerische Größe vorhersagt Vorhersagewert ist der Mittelwert der Trainingsinstanzen, die dieses Blatt erreichen Modellbaum: “Regressionsbaum” mit linearen Regressionsmodellen in den Blattknoten Lineare Stücke approximieren eine stetige Funktion 67 Lineare Regression für die CPU-Daten PRP = + + + + + 56.1 0.049 0.015 0.006 0.630 0.270 1.460 MYCT MMIN MMAX CACH CHMIN CHMAX 68 Regressionsbaum für die CPU-Daten 69 Modellbaum für die CPUDaten 70 Nummerische Vorhersage Entsprechende Varianten existieren für alle bislang behandelten Verfahren Entscheidungsbäume, Regel-Lerner, SVMs, usw.. Alle Klassifikationsverfahren können auf Regressionsprobleme mittels Diskretisierung angewendet werden Diskretisiere die Klasse in Intervalle Vorhersagewert = gewichtetes Mittel der IntervallMittelpunkte Gewichtung entsprechend den Klassenwahrscheinlichkeiten 71 Regressionsbäume Wie Entscheidungsbäume, aber: Aufteilungskriterium: minimiere Varianz innerhalb der Teilmenge Abbruchkriterium: Varianz wird klein Pruning-Kriterium: basierend auf einem nummerischen Fehlermaß Vorhersage: Blatt sagt Mittelwert der Klassenwerte der Instanzen voraus Stückweise konstante Funktionen Einfach zu interpretieren Raffiniertere Version: Modellbäume 72 Modellbäume Konstruiere einen Regressionsbaum Jedes Blatt ⇒ lineare Regressionsfunktion Glättung: berücksichtige Vorhersage des Elternknotens npkq Glättungsformel: p ' = nk Gleicher Effekt kann erreicht werden durch Einbeziehung der Vorfahr-Modelle in die Blätter Erfordert Regressionsfunktion in jedem Knoten In jedem Knoten wird nur Teilmenge der Attribute benutzt Diejenigen Attribute, die im Teilbaum vorkommen (+evtl. die, die im Pfad zur Wurzel auftreten) Schnell: Baum benutzt meist nur kleine Teilmenge aller Attribute 73 Aufbau des Baumes Aufteilung: Reduktion der Standardabweichung Abbruch: ∣T i∣ SDR=sd T −∑ ×sd T i ∣T∣ i Standardabweichung < 5% seines Wertes auf der vollen Trainingsmenge Zu wenige Instanzen (z.B. < 4) Pruning: Heuristische Schätzung des absoluten Fehlers von LR-Modellen: n ×average_absolute_error n− Gierige Entfernung von Termen des LR-Modells, um den Schätzfehler zu minimieren Starkes Beschneiden: einzelnes Modell kann den ganzen Teilbaum ersetzen Gehe bottom-up vor: vergleiche Fehler des LR-Modells eines internen Knotens mit dem Fehler des ganzen Teilbaums 74 Nominale Attribute Konvertiere nominale Attribute in binäre Sortiere Attribut nach mittlerem Klassenwert Für Attribut mit k Werten, generiere k – 1 binäre Attribute i tes ist 0 für Werte innerhalb der ersten i , sonst 1 Behandle binäre Attribute wie nummerische Man kann zeigen: die beste Aufteilung nach einem der neuen Attribute entspricht der besten (binären) Aufteilung des originalen Attributs 75 Fehlende Werte Modifiziertes Aufteilungskriterium: [ ∣T i∣ m SDR= × sd T −∑ ×sd T i ∣T∣ i ∣T∣ Um zu bestimmen, zu welcher Teilmenge eine Instanz gehört, benutze SurrogatSplitting ] Teile nach dem Attribut auf, dessen Korrelation zu dem originalen am größten ist Problem: komplex und zeitaufwändig Einfache Lösung: benutze immer die Klasse Testmenge: ersetze fehlenden Wert durch den Mittelwert 76 Surrogat-Splitting basierend auf der Klasse Wähle Aufteilungspunkt basierend auf Instanzen mit bekannten Werten Aufteilungspunkt teilt Instanzen in 2 Teilmengen auf L (kleinerer Klasse-Mittelwert) R (größerer Wert) m ist das Mittel der beiden Mittelwerte Für eine Instanz mit einem fehlenden Wert: Wähle L, falls Klassenwert < m Sonst wähle R Wenn der Baum voll konstruiert ist, ersetze fehlenden Werte durch Mittelwerte der zugehörigen Blattknoten 77 Pseudo-Code für M5' Vier Methoden: Hauptmethode: MakeModelTree Methode zum Aufteilen: split Methode zum Beschneiden: prune Methode zur Fehlerberechnung: subtreeError Methoden werden kurz vorgestellt Nehme an, dass die lineare Regressionsmethode die Attribut-Teilmengen basierend auf dem Fehler auswählt 78 MakeModelTree MakeModelTree (Instanzen) { SD = sd(instances) for each k-valued nominal attribute convert into k-1 synthetic binary attributs root = newNode root.instances = instances split(root) prune(root) printTree(root) } 79 split split(node) { if sizeof(node.instances) < 4 or sd(node.instances) < 0.05*SD node.type = LEAF else node.type = INTERIOR for each attribute for all possible split positions of attribute calculate the attribute's SDR node.attribute = attribute with maximum SDR split(node.left) split(node.right) } 80 prune prune(node) { if node = INTERIOR then prune(node.leftChild) prune(node.rightChild) node.model = linearRegression(node) if subtreeError(node) > error(node) then node.type = LEAF } 81 subtreeError subtreeError(node) { l = node.left; r = node.right if node = INTERIOR then return (sizeof(l.instances)*subtreeError(l) + sizeof(r.instances)*subtreeError(r)) /sizeof(node.instances) else return error(node) } 82 Modellbaum für ServoResult Daten of merging 83 Lokal gewichtete Regression nummerische Vorhersage zur Kombination von Instanz-basiertem Lernen linearer Regression “Lazy”: Berechnet Regressionsfunktion zum Vorhersagezeitpunkt arbeitet inkrementell Gewichtet Trainingsinstanzen entsprechend Distanz zur Testinstanz benötigt gewichtete Version der linearen Regression Vorteil: nichtlineare Approximation Aber: langsam 84 Entwurfsentscheidungen Gewichtungsfunktion: Inverse Euklidische Distanz Gauss'scher Kernel angewendet auf Euklidische Distanz Triangularer Kernel analog usw. Glättungsparameter zur Skalierung der Distanzfunktion Multipliziere Distanz mit dem Kehrwert dieses Parameters Mögliche Variante: Distanz der k-nächsten Trainingsinstanz (macht ihn datenabhängig) 85 Diskussion Regressionsbäume wurden als CART eingeführt Modellbäume wurden von Quinlan vorgeschlagen (M5) M5’: geringfügig verbessert, frei verfügbar Quinlan untersuchte auch die Kombination von Instanz-basiertem Lernen mit M5 CUBIST: Quinlan’s kommerzieller Regellerner für nummerische Vorhersage Interessanter Vergleich: Neuronale Netze vs. M5 86 Clustern Unüberwachtes Lernen: kein Zielwert vorgegeben Unterschiede zwischen Modellen/Algorithmen: Exklusiv vs. überlappend Deterministisch vs. probabilistisch Hierarchisch vs. flach Inkrementell vs. Batch-Lernen Problem: Evaluierung?—meist durch Betrachtung des Ergebnisses Aber: Wenn als Problem der Dichte-Schätzung aufgefasst, kann man die Cluster auf den Testdaten evaluieren 87 Hierarchisches Clustern Bottom up Start: jede Instanz = 1 Cluster In jedem Schritt: vereinige die beiden Cluster mit der kleinsten Distanz Entwurfsentscheidung: Distanz zwischen Clustern z.B. kleinster Abstand zwischen zwei Instanzen aus verschiedenen Clustern vs. Distanz der Zentroiden Top down Start: alle Instanzen in einem Cluster Aufteilung in zwei Cluster Rekursive Prozessierung jedes erzeugten Clusters Sehr effizient Beide Methoden erzeugen Dendrogramm g a c i e d k b j f h 88 Der k-means-Algorithmus Zum Clustern der Daten in k Gruppen: (k vorgegeben) 2. Wähle k Zentroiden z.B. zufällig 3. Ordne Instanzen den Clustern zu anhand des Abstands zu den Zentroiden 4. Neuberechnung der Zentroiden 5. Gehe zu 1 bis Konvergenz erreicht wurde 89 Diskussion Ergebnisse können stark schwanken abhängig von den initialen Zentroiden Kann in lokalem Minimum enden Beispiel: initiale ClusterZentren Instanzen Chance auf Erreichen des globalen Optimums kann erhöht werden durch Wiederholung mit verschiedenen Startwerten 90 Inkrementelles Clustern Heuristischer Ansatz (COBWEB/ClassIT) Bildet eine inkrementelle Hierarchie von Clustern Start: Baum besteht aus einem leeren Wurzelknoten Danach: füge sukzessiv Instanzen ein aktualisiere den Baum in jedem Schritt hierzu muss das passende Blatt für die jeweilige Instanz gefunden werden evtl. muss hierzu der Baum restrukturiert werden Änderungsentscheidungen basieren auf der Klassen-Nützlichkeit 91 Clustern der Wetterdaten ID Outlook Temp. Humidity Windy A Sunny Hot High False B Sunny Hot High True C Overcast Hot High False D Rainy Mild High False E Rainy Cool Normal False F Rainy Cool Normal True G Overcast Cool Normal True H Sunny Mild High False I Sunny Cool Normal False J Rainy Mild Normal False K Sunny Mild Normal True L Overcast Mild High True M Overcast Hot Normal False N Rainy Mild High True 1 2 3 92 Clustern der Wetterdaten ID Outlook Temp. Humidity Windy A Sunny Hot High False B Sunny Hot High True C Overcast Hot High False D Rainy Mild High False E Rainy Cool Normal False F Rainy Cool Normal True G Overcast Cool Normal True H Sunny Mild High False I Sunny Cool Normal False J Rainy Mild Normal False K Sunny Mild Normal True L Overcast Mild High True M Overcast Hot Normal False N Rainy Mild High True 4 5 Mische besten und zweitbesten Knoten 3 Evtl. muss der besten Knoten geteilt werden, wenn Mischen nicht hilft 93 Resultierende Hierarchie ID Outlook Temp. Humidity Windy A Sunny Hot High False B Sunny Hot High True C Overcast Hot High False D Rainy Mild High False Ups! a und b sind sehr ähnlich 94 Beispiel: Iris-Daten (Teilmenge) Clustern mit Schwellenwert 96 Klassen-Nützlichkeit Klassen-Nützlichkeit (Category utility): quadratische Verlustfunktion, definiert über bedingte Wahrscheinlichkeiten: ∑ Pr [C l ] ∑ ∑ Pr [ ai=vij∣C l ] −Pr [ ai=vij ] 2 CUC 1, C 2,. .. ,C k = l i 2 j k Jede Instanz in einer anderen Klasse ⇒ Zähler wird zu 2 m−Pr [ a i =v ij ] maximal Anzahl Attribute 97 Nummerische Attribute 1 f a = e 2 π σ Nehme Normalverteilung an Dann: ∑ Pr [ a i =v ij ]2 ⇔∫ f ai 2 da i = j Damit wird CU = a− μ 2 2σ2 1 2 π σi 2 2 Pr [ C ] Pr [ a =v ∣C ] −Pr [ a =v ] ∑ l ∑∑ i ij l i ij l i j k zu ∑ Pr [ C l ] CU = l 1 2π k ∑ i 1 1 − σ il σ i Vorgegebene minimale Varianz Schärfe(acuity)-Parameter 98 Wahrscheinlichkeitsbasiertes Clustern Probleme mit dem heuristischen Ansatz: Division durch k? Reihenfolge der Beispiele? Reichen Restrukturierungs-Operationen aus? Ist das Ergebnis zumindest ein lokales Minimum der Klassen-Nützlichkeit? Probabilistischer Ansatz ⇒ suche die wahrscheinlichsten Cluster für die Daten Instanz gehört mit einer gewissen Wahrscheinlichkeit zu einem bestimmten Cluster 99 Endliche Mischungen Modelliere Daten über Mischung von Verteilungen Eine Verteilung pro Cluster liefert die Wahrscheinlichkeit von Attributwerten in diesem Cluster Endliche Mischungen: endliche Anzahl von Clustern Einzelne Verteilungen sind Normalverteilungen (üblicherweise) Kombiniere Verteilungen durch Gewichtung der Cluster 100 Mischungsmodell für 2 Klassen Daten A A B B A A A A A 51 43 62 64 45 42 46 45 45 B A A B A B A A A 62 47 52 64 51 65 48 49 46 B A A B A A B A A 64 51 52 62 49 48 62 43 40 A B A B A B B B A 48 64 51 63 43 65 66 65 46 A B B A B B A B A 39 62 64 52 63 64 48 64 48 A A B A A A 51 48 64 42 48 41 Modell µA=50, σA =5, pA=0.6 µB=65, σB =2, pB=0.4 101 Anwendung des Mischungsmodells Wahrscheinlichkeit, dass Instanz x zu Cluster A gehört: Pr [ x∣A] Pr [ A] f x ; A , A p A Pr [ A∣x ]= = Pr [ x ] Pr [ x ] mit 1 f x ; μ , σ = e 2 π σ x− μ 2 2σ2 Wahrscheinlichkeit einer Instanz bei gegebenem Cluster: Pr [ x∣the distributions ]=∑ Pr [ x∣cluster i ]Pr [ cluster i ] i 102 Lernen der Cluster Annahme: wir wissen, dass es k Cluster gibt Lernen der Cluster ⇒ Bestimme ihre Parameter D.h. Mittelwerte und Standardabweichungen Gütekriterium: Wahrscheinlichkeit der Trainingsdaten bei gegebenen Clustern EM-Algorithmus findet lokales Maximum dieser Wahrscheinlichkeit 103 EM-Algorithmus EM = Expectation-Maximization Generalisiere k-means zu probabilistischem Modell Iterative Prozedur: E “Erwartungs”-Schritt: Berechne Cluster-Wahrscheinlichkeit für jede Instanz M “Maximierungs”-Schritt: Schätze Verteilungsparameter aus den ClusterWahrscheinlichkeiten Speichere Cluster-Wahrscheinlichkeiten als Instanzgewichte Stopp, wenn kaum noch Verbesserung 104 Mehr zu EM Schätze Parameter aus gewichteten Instanzen w x w x ...w x μ A= 1 1 2 2 n n w 1w 2 ...w n w 1 x 1− μ 2 w 2 x 2 − μ 2 . ..w n x n − μ 2 σ 2= A w 1 w 2 ...w n Stopp, wenn log-likelihood konvergiert Log-likelihood: ∑ log p A Pr [ x i∣A ] p B Pr [ x i∣B ] i 105 Erweiterung des Mischungsmodells Mehr als zwei Verteilungen: einfach Mehrere Attribute: einfach— Unabhängigkeitsannahme! Korrelierte Attribute: schwierig Gemeinsames Modell: bivariate Normalverteilung mit einer (symmetrischen) Kovarianzmatrix n Attribute: Schätzung von n + n (n+1)/2 Parametern 106 Mehr Erweiterungen des Mischungsmodells Nominale Attribute: einfach, wenn unabhängig Korrelierte nominale Attribute: schwierig Zwei korrelierte Attribute ⇒ v1 v2 Parameter Fehlende Werte: einfach Auch andere als die Normalverteilung können benutzt werden: “log-normal” wenn Minimum vorgegeben ist “log-odds” wenn nach unten und oben beschränkt Poisson für Attribute mit ganzzahligen Werten Benutze Kreuzvalidierung zur Schätzung von k ! 107 Bayes'sches Clustern Problem: viele Parameter ⇒ EM führt zu Überadaption Bayes'scher Ansatz: gebe jedem Parameter eine a-priori-Wahrscheinlichkeitsverteilung Berücksichtige a-priori-Verteilung bei der Wahrscheinlichkeitsschätzung Bestraft die Einführung zusätzlicher Parameter Z.B.: Laplace-Schätzer für nominale Attribute Man kann auch einen a-priori-Wert für die Anzahl Cluster vorgeben! Implementierung: AUTOCLASS (NASA) 108 Diskussion Interpretation der Cluster durch überwachtes Lernen Post-Prozessierungs-Schritt Reduziere Abhängigkeit zwischen Attributen? Prä-Prozessierungs-Schritt Z.B. Benutzung von principal component analysis Kann benutzt werden, um fehlende Werte zu schätzen Hauptvorteil von probabilistischem Clustern: Kann die Wahrscheinlichkeit der Daten schätzen Objektiver Vergleich verschiedener Modelle möglich 109