Data Mining Vorlesung Stand 19.01.2016 apl. Prof. Dr.-Ing. habil. Rainer Knauf Fachgebiet Künstliche Intelligenz Fakultät für Informatik und Automatisierung Technische Universität Ilmenau [email protected] Zuse-Bau, Raum 3061 (Sekretariat: 3060) Tel. 03677-69-1445, 0361-3733867, 0172-9418642 1 0. Einführung Motivation In großen Datenmengen liegen oftmals “versteckte” Informationen Manuelle Analyse verschlingt Unmassen von Ressourcen (Zeit, Geld, …) Viele Datenbestände wurden (noch) nicht analysiert Data Mining, d.h. Extraktion impliziter, bislang unbekannter, potentiell nützlicher Information aus Datenbeständen Automatische Erkundung und Analyse großer Datenmengen zwecks Aufdeckung von Mustern 2 Der evolutionäre Stufenprozess der Modellbildung Business Understanding Projektziele Projektanforderungen Deployment Data Understanding Interpretation der Modelle Realisierung der Projektziele Ist die Qualität der Daten hinreichend für diese Ziele? Data Evaluation a) bzgl. der Testdaten b) bzgl. der Projektziele Data Preparation Auswahl relevanter Attribute Verknüpfung von Datenquellen Umgang mit fehlenden Daten Modeling Auswahl & Anwendung konkreter Verfahren des Data Mining 3 The Aim of the Game Abstrakte Informationen (Muster, Korrelationen, …) in großen Datenmengen erkennen Modelle bilden, welche Regularitäten, Zusammenhänge, … in großen Datenmengen erklären = Data 0010110110 1101100011 0010011010 0100110011 1001100110 0100100111 0110111000 1100010001 1011101010 0100110011 1010100011 1100110011 10011111 001001 1011 01 „Knowledge Discovery in Databases“ Data Preprocessing Attributauswahl Reduzierung der Dimensionen Normalisierung Auswahl von Subsets aus Daten … Data Mining Data Postprocessing Erkennung von Mustern Visualisierung Interpretation der Muster … Knowledge 4 Anwendungsbereiche Wirtschaft Analyse des Kaufverhaltens, Datenerhebung z.B. mit Kundenkarten Medizin Erkennung von Symptomen für pathologische Erscheinungen empirische Ermittlung der Wirkung von Medikamenten Staat Aufdeckung von Korruption und Steuerhinterziehung durch Analyse von Geldströmen Analyse von Bevölkerungs- und Einwanderungsdaten zur Terrorabwehr Wissenschaft Interpretation von Geodaten zur Vorhersage von Naturkatastrophen Erkennen genetischer Muster für krankhafte Veranlagungen Energieversorgung, Transport, Mobilkommunikation, … Ermittlung des typischen Kundenverhaltens zum Ressourcen-Management Ermittlung des typischen Kundenverhaltens in außergewöhnlichen Situationen (Stromausfall, Naturkatastrophe, ...) 5 Typische Aufgabenklassen Vorhersagemodelle Vorhersage eines Attribut-Wertes auf der Grundlage anderer Attribut-Werte durch Klassifikation (diskrete Werte) Regression (kontinuierliche Werte) Analyse von Assoziationen Erkennung von assoziierten Eigenschaften in den Daten (häufig zusammen besuchten Webseiten, häufig gemeinsam gekaufte Waren, …) Cluster Analyse Partitionierung der Daten in Cluster mit ähnlichen Eigenschaften (ähnliches Kaufverhalten von Kunden, ähnliches Lernverhalten, ähnliche Texte auf Webseiten …) Erkennung von Anomalien Identifizierung von Datenobjekten, die sich signifikant von den restlichen unterscheiden und damit auf Anomalien hinweisen: Krankheiten technische Fehler (in einem Netzwerk z.B.) Betrug (Kreditkartendaten, Bankgeschäfte, Versicherungsbetrug, …) bevorstehende Naturkatastrophen (Klimadaten), … 6 1. Daten 1.1 Arten von Daten Datensatz: Menge von Datenobjekten DS := {DO1, DO2, …, DOn} Datenobjekt: beschrieben durch Attribut-Wert Paare DOi:= {[Ai1,Wi1],[Ai2,Wi2], …} Beispiel: Datensatz Prüfungsergebnisse Studierender der Tokyo Denki University student ID semester DO1 SIE0019 1 DO2 SIE0019 DO3 units rating Curriculum Planning 1 A 1 Workshop 1 S SIE0019 1 Speaking & Writing in English Ι 2 B DO4 SIE0019 1 Basic Mathematics A 3 A DO5 SIE0019 1 European, American, and Asian Studies 4 S DO6 SIE0019 1 Architectural Design Practice 4 A … … … … … DO41 SIE0019 7 Chinese I 2 C DO42 SIE0019 7 Course Project A 4 A DO43 SIE0019 7 Electronics B 4 A DO44 SIE0020 1 Curriculum Planning 1 A DO45 SIE0020 1 Computer Literacy 2 A … … … … … … … course 7 Eigenschaften von Attribut-Werten Attribut-Typen klassifiziert man bzgl.: Unterscheidbarkeit: = Ordenbarkeit: ≤ ≥ Addierbarkeit: + Multiplizierbarkeit: */ qualitativ quantitativ unterscheidbar ordenbar addierbar multiplizierbar nominale Attribute + - - - ordinale Attribute + + - - IntervallAttribute + + + - rationale Attribute + + + + 8 Attribut - Typen Quantitativ Qualitativ Attribut-Typ Beschreibung nominal aufzählbare Werte ordinal aufzählbare Werte mit Ordnungsrelation Operationen Beispiele =, ≠ Postleitzahlen, StudentenMatrikelnummer, Augenfarbe, Kodierungen obige, Noten (1,..5, S, A, ...,E), verbale Beschreibungen ≤, ≥ quantitativer Merkmale <, > (hart, mittel, weich), Intervall numerische Werte, bei denen Summen und Differenzen eine Interpretation haben obige, Temperatur in °C oder °F, Kalenderdaten +, - rational numerische Werte, bei denen (neben Summen und Differenzen) auch Produkt und Quotienten eine Interpretation haben obige, Temperatur in K, Länge, Gewicht, Alter, /, * Geldsummen, elektr. Spannung, … 9 Legale Attributwert-Transformationen Transformation Beispiel, Kommentar Nominal Eineindeutige Abbildungen neuer Werte zu alten Werten Neukodierung Ordinal Reihenfolge-erhaltende Zuordnung neuer Werte zu alten Werten NeuerWert := f (AlterWert) f: monotone Funktion Umrechnung eines arithmetischen Notendurchschnitts in eine verbale Leistungsbewertung („sehr gut“, „gut“, …) Quantitativ Qualitativ Attribut-Typ Intervall NeuerWert := a * AlterWert + b a, b: Konstanten Rational NeuerWert := a * AlterWert a: Konstante Umrechnung von Fahrenheit in Celsius Umrechnung von Zoll in cm 10 Diskrete und kontinuierliche Attribute Diskrete Attribute haben eine Menge aufzählbarer Werte werden meist als integer-Variablen repräsentiert binäre Attribute sind ein Spezialfall diskreter Attribute Beispiele: Postleitzahlen Menge der Wörter eines Dokuments Kontinuierliche Attribute haben reelle Zahlen als Wertebereich können allerdings nur mit einer endlichen Anzahl von Ziffern repräsentiert werden werden typischerweise als Gleitkommazahl repräsentiert Beispiele: Temperatur Länge Gewicht 11 Asymmetrische Attribute Ein Attribut heißt asymmetrisch, wenn für selbiges nur Werte verschieden von Null von Interesse sind. ‘n Beispiel In einem Datensatz sei jedes Datenobjekt ein Student (ähnlich wie in Folie 8) und jedes Attribut erfasst, ob ein Student einen bestimmten Kurs belegt hat. Attribute dieser Art sind von Natur aus binär: ja oder nein, hier kodiert mit 1 (ja) oder 0 (nein). Wollte man für jeden Studenten alle Kurse der Universität erfassen (auch solche Kurse erfassen, die er nicht belegt hat), wären bei allen Studenten die meisten Attribut-Werte Null. Dies ist nicht nur sehr ineffizient, sondern könnte auch dazu führen, dass bei einigen Ähnlichkeitsmaßen alle Studenten als sehr ähnlich betrachtet werden. Für dieses Attribut sind nur Werte ≠ 0 von Interesse. 12 1.2 Ähnlichkeitsmaße 1.2.1 Ähnlichkeit zwischen Attributen Ähnlichkeit (similarity): Verschiedenheit (dissimilarity): s(x,y) d(x,y) denkbare Ansätze für Attributwerte x und y Attribut-Typ Verschiedenheit (dissimilarity) nominal (Aufzählungstyp ohne Ordnungsrelation) 0 , if x y d 1 , if x y ordinal (Aufzählungstyp mit Ordnungsrelation) n Werte, abgebildet auf ganze Zahlen 0, 1, …, n-1 d rational Intervall | x y| n 1 d | x y | Ähnlichkeit (similarity) 1 , if x y s 0 , if x y s 1 d 1 s e d 1 d d min_ d s 1 max_ d min_ d 13 s d s Ähnlichkeitsmaße zwischen Datenobjekten x=[x1, …, xn] und y=[y1, …, yn] 1.2.2 Ähnlichkeit (similarity): Verschiedenheit, Abstand (dissimilarity): s(x,y) d(x,y) Anforderung an Ähnlichkeitsmaße d ist nicht negativ • d und s sind symmetrisch • d(x,y) = d(y,x) s(x,y) = s(y,x) Dreiecks-Ungleichung für Abstände • ∀x,y: d(x,y) ≥ 0 d(x,z) ≤ d(x,y) + d(y,z) bei Identität gilt • d(x,y)=0 gdw. x=y • s(x,y)=1 gdw. x=y 14 Ansätze für Verschiedenheit (Abstand) zwischen [x1, …, xn] und [y1, …, yn] Minkowski Distance (Verallgemeinerung der Euclidean Distance) n r d ( x, y ) ( | x y | ) k k k 1 1 r Typischerweise verwendete Spezialfälle r = 1 Manhatten (city block) Distance (L1 norm) für bin. Attribute auch Hamming Distance genannt Summe der Abstände aller Dimensionen 1 … n misst für binäre Attribute die Anzahl der Bits, die verschieden sind r = 2 Euclidian Distance (L2 norm) für numerische Attribute (ordinal oder rational) misst den geometrischen Abstand der Punkte im n - dim. Euklidischen Raum Normalisierung u.U. nötig, wenn die Dimensionen verschiedene Wertebereiche haben (z.B. zum fairen Vergleich verschieden langer Dokumente in einer Dokument-Term Matrix) r → ∞ Supremum (L∞ norm) ist die größte aller Differenzen in den einzelnen Dimensionen 1 … n: d(x,y)=maxk=1…n |xk- yk| 15 Verschiedenheit (Abstand) zwischen [x1, …, xn] und [y1, …, yn] an Beispielen x 0 2 3 5 Punkt p1 p2 p3 p4 y 2 0 1 1 3 p1 2 p3 p4 1 p2 0 0 1 2 3 4 5 6 L1 p1 p2 p3 p4 p1 p2 p3 p4 0 4 4 6 4 0 2 4 4 2 0 2 6 4 2 0 L2 p1 p2 p3 p4 p1 p2 p3 p4 0 2,828 3,162 5,099 2,828 0 1,414 3,162 3,162 1,414 0 2 5,099 3,162 2 0 L∞ p1 p2 p3 p4 p1 p2 p3 p4 0 2 3 5 2 0 1 3 3 1 0 2 5 3 2 0 16 Ähnlichkeit binärer Objekte [x1, x2, …, xn] und [y1, y2, …, yn] (xi, yi {0,1} ) f00 : Anzahl von Attributen mit xi = 0 und yi = 0 f01 : Anzahl von Attributen mit xi = 0 und yi = 1 f10 : Anzahl von Attributen mit xi = 1 und yi = 0 f11 : Anzahl von Attributen mit xi = 1 und yi = 1 Ähnlichkeitsmaße Simple Matching Coefficient SMC SMC f 00 f11 Anzahl gleichwertiger Attribute Anzahl aller Attribute f 00 f 01 f10 f11 Nachteil: Bei Objekten mit vielen 0-wertigen Attributen wären alle einander sehr ähnlich Jaccard Coefficient J J Anzahl 1 - wertiger Attribute in beiden Objekten f11 Anzahl aller nicht 0 - wertiger Attribute beider Objekte f 01 f10 f11 17 Ähnlichkeitsmaße für Vektoren [x1, x2, …, xn] und [y1, y2, …, yn] einfaches Matching Kosinus-Koeffizient n n sim( x, y ) xk yk k 1 sim( x, y ) x k 1 n k x * k 1 (1) 2 k yk n 2 y k k 1 nur solche Attribute gehen ein, bei Kosinus des Winkels zwischen x und y denen in x und y verschieden von 0 cos(0) = 1 sind für Vektoren gleicher Richtung Attribute mit hohen Werten gehen cos(90°) = 0 stärker ein als andere für orthogonale Vektoren cos(180°) = -1 für entgegengesetzt gerichtete Vektoren wirkt als normalisierter Korrelationskoeffizient entspricht für normalisierte Vektoren dem einfachen Matching 18 Eigenschaften des einfachen Matching Eigenschaft Verhalten Winkel je kleiner der Winkel zwischen zwei Vektoren gleicher Euklidischer Länge, desto größer der Ähnlichkeitswert Länge längerer Vektor hat größeren oder gleichen Ähnlichkeitswert Änderung Verstärkung einzelner einzelner Komponenten: Kompo Ähnlichkeitswert größer, nenten wenn die gleiche Komponente im anderen Vektor 0 sonst gleich bleibend Einfluss von beliebig hoher Ähnlichkeitswert Einzeldurch Veränderung eines kompoeinzelnen Wertes möglich nenten Wertebereich 0 ≤ sim(x,y) ≤ ∞ Bedeutung Richtung („Thema“ beim Text-Mining) dominiert das Maß „The more, the better“ Einzelwerte können Ähnlichkeitswert dominieren Objekte, die in vielen Attributen sehr unähnlich sind, können trotzdem einen sehr hohen Ähnlichkeitswert erhalten es gibt kein Maximum, d.h. keinen Begriff einer idealen Bewertung 19 Eigenschaften der einfachen Methode Beispiel aus dem Text–Mining: Vorkommen von Wörtern in Dokumenten {d1, d2, d3, d4, d5, d6} d1 d2 d3 d4 d5 d6 Toyota Honda hybrid Super Diesel Akku 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 0 1 0 1 0 1 2 3 4 5 6 1 0 3 0 5 0 Einfache Übereinstimmung d1 d2 d3 d4 d5 d6 - 6.0 12.0 3.0 21.0 9.0 d1 - 12.0 3.0 21.0 9.0 d2 6.0 - 6.0 42.0 18.0 d3 12.0 12.0 d4 3.0 3.0 6.0 - 9.0 9.0 - 35.0 d5 21.0 21.0 42.0 9.0 d6 9.0 9.0 18.0 9.0 35.0 Erhöhung der Häufigkeit eines Terms hat proportionalen Effekt auf Ähnlichkeitswert des Dokuments Beispiel: sim(d1,d4) < sim(d1,d6) Beiträge verschiedener Terme sind voneinander unabhängig hohe Werte für „Super“, „Diesel“ und „Akku“ in d5 sorgen für hohe Ähnlichkeitswerte von d5 absurde Ergebnisse bei Anwendung auf nicht-normalisierte Vektoren Beispiel: sim(d1,d3) > sim(d1,d2), obwohl d1 und d2 identisch sind 20 Eigenschaften des Kosinus - Koeffizienten Eigenschaft Winkel Länge Änderung einzelner Komponenten Einfluss der Einzelkomponenten Werte-bereich Verhalten je kleiner der Winkel zwischen zwei Vektoren, desto größer der Ähnlichkeitswert als Folge der Normalisierung keine Veränderung des Ähnlichkeitswertes bei Veränderung des Radius Verstärkung einzelner Komponenten: Ähnlichkeitswert wird größer, wenn dadurch der Winkel zwischen den Vektoren verkleinert wird wird kleiner, wenn dadurch der Winkel zwischen den Vektoren vergrößert wird Ähnlichkeitsmaß bestimmt durch Ähnlichkeit der Proportionen (Verhältnis der Werte in den einzelnen Vektoren) 0 ≤ sim(x,y) ≤ 1 Bedeutung Richtung (= „Thema“ beim Text-Mining) dominiert das Cos-Maß vollständig es gibt ein Maximum, d.h. einen Idealwert 21 Eigenschaften des Kosinus-Koeffizienten: Beispiele d1 d2 d3 d4 d5 d6 Toyota Honda hybrid Super Diesel Akku 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 0 1 0 1 0 1 2 3 4 5 6 1 0 3 0 5 0 Kosinus - Koeffizient d1 d2 d3 - 1.000 1.000 d1 - 1.000 d2 1.000 d3 1.000 1.000 d4 0.707 0.707 0.707 d5 0.898 0.898 0.898 d6 0.621 0.621 0.621 d4 0.707 0.707 0.707 0.544 0.878 d5 0.898 0.890 0.898 0.544 0.620 d6 0.621 0.621 0.621 0.878 0.620 - Ähnlichkeitswert eines Dokuments wird allein durch sein „Thema“ (Relation der Terme innerhalb des Dokuments) bestimmt Beispiel: sim(d1,d2) = sim(d1,d3) Termgewichtsbeziehungen zwischen den in den Dokumenten vorkommenden Termen werden möglicherweise ignoriert Beispiel: sim(d5,d1) > sim(d5,d6) Nullwerte haben große Auswirkung auf das Ergebnis Beispiel: sim(d1,d5) > sim(d1,d6) 22 Ähnlichkeitsmaße für Vektoren [x1, x2, …, xn] und [y1, y2, …, yn] (erweiterter Jaccard-Koeffizient) Dice-Koeffizient Tanimoto-Koeffizient n sim( x, y ) ∑x sim( x, y ) k 1 n n ∑x ∑y k k 1 n ∑x k k 1 Einbeziehen des Anteils gemeinsamer Einträge: • Summe gemeinsamer Einträgen ≠ 0, relativ zu • Summe aller Einträge ≠ 0 Multiplikation mit 2, um Wertebereich zwischen 0.0 und 1.0 zu erhalten (binäre Vektoren) Overlap-Koeffizient n 2∑x k y k k 1 2 k k 1 n n k ∑ min(x yk n ∑y k - ∑x k y k k 1 2 k 1 bestraft Vorhandensein einer kleinen Anzahl gemeinsamer Einträge stärker als DiceKoeffizient: • (2) je weniger gemeinsame Einträge ≠ 0, desto größer der Nenner, desto kleiner der Wert des Bruches sim( x, y ) k , yk ) k 1 n n k 1 k 1 min(∑x k , ∑y k ) Maß für Inklusion erreicht 1.0, wenn jede Dimension ≠ 0 in X auch ≠ 0 in Y, und umgekehrt (binäre Vektoren) erreicht 1.0, wenn in einem Vektor die Attribute aller Dimensionen ≤ der des anderen Vektors sind sim(x,y)=1, if i (xi yi) or i (yi xi) 23 Ähnlichkeitsmaße im Vergleich d1 d2 d3 d4 d5 d6 Toyota Honda hybrid Super Diesel Akku 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 0 1 0 1 0 1 2 3 4 5 6 Einfaches Matching 1 0 3 0 5 0 d1 d1 d2 6.0 d3 12.0 d4 3.0 d5 21.0 d6 9.0 d1 d2 d3 d4 d5 d6 1.000 1.333 0.666 1.555 1.200 d2 1.000 1.333 0.666 1.555 1.200 d3 1.333 1.333 0.800 2.545 1.714 d4 0.666 0.666 0.800 0.750 1.500 d5 1.555 1.555 2.545 0.750 2.333 d6 1.200 1.200 1.714 1.500 2.333 - d1 d2 d3 d4 d5 d6 1.000 2.000 0.500 3.500 1.500 d4 3.0 3.0 6.0 9.0 9.0 d5 d6 21.0 9.0 21.0 9.0 42.0 18.0 9.0 9.0 - 35.0 35.0 - d2 1.000 2.000 0.500 3.500 1.500 d3 2.000 2.000 0.666 -4.66 6.000 d4 0.500 0.500 0.666 0.600 3.000 d5 3.500 3.500 -4.66 0.600 -7.00 d1 d1 d2 d3 d4 d5 d6 1.000 1.000 0.707 0.898 0.621 d2 1.000 1.000 0.707 0.898 0.621 d3 1.000 1.000 0.707 0.898 0.621 d4 0.707 0.707 0.707 0.544 0.878 d5 0.898 0.890 0.898 0.544 0.620 d6 0.621 0.621 0.621 0.878 0.620 - d2 1.000 1.000 1.000 1.000 0.500 d3 1.000 1.000 1.000 0.916 0.555 d4 1.000 1.000 1.000 1.000 1.000 d5 1.000 1.000 0.916 1.000 1.000 d6 0.500 0.500 0.555 1.000 1.000 - Overlap Tanimoto (erweiterter Jaccard) d1 d3 12.0 12.0 6.0 42.0 18.0 Kosinus Dice d1 d2 6.0 12.0 3.0 21.0 9.0 d6 1.500 1.500 6.000 3.000 -7.00 - d1 d1 d2 d3 d4 d5 d6 1.000 1.000 1.000 1.000 0.500 24 [ empirischer Korr.-Koeff. (n-1) → n ] Korrelation (nach Pearson) Grad der linearen (und dieser!) Abhängigkeit 2er Attribute Wird typischerweise für Zeitreihen 2er Attribute verwendet, z.B. • monatliche Durchschnittstemperatur über ein Kalenderjahr • stündlich ermittelter Aktienkurs über einen Börsentag -1 ≤ corr(x,y) ≤ +1 • corr(x,y) = -1 • corr(x,y) = 0 • corr(x,y) = +1 perfekte neg. lineare Abh. keine lineare Abh. perfekte pos. lineare Abh. s xy covarianz(x,y) corr(x,y) stdt_abw(x) std_abw(y) sx s y 1 n (xk -x)(yk -y) n-1 k 1 1 n 1 n 2 (xk -x ) (yk -y)2 n-1 k 1 n-1 k 1 n (x -x)(y -y) k 1 n k k n (x -x ) (y -y) k 1 2 k k 1 Beispiele x=[-3,6,0,3,-6] y=[1,-2,0,-1,2] corr(x,y) = -1, denn y = - ⅓ x x=[3,6,0,3,6] y=[1,2,0,1,2] corr(x,y) = 1, denn y= ⅓ x 2 k 25 Korrelation Beispiele: Streuungen bei Korrelationen zwischen -1 und 1 Autokorrelation Korrelation zwischen aufeinander folgenden Intervallen innerhalb einer Serie von Messwerten. Z.B. Korrelation zwischen • stündlich gemessenem Temperaturverlauf heute und • stündlich gemessenem Temperaturverlauf gestern 26 2. Klassifikation gegeben Menge von Datenobjekten (DO) bekannter Klassenzugehörigkeit (Training Set) jedes DO besteht aus Attributen eines dieser Attribute ist die Klassenzugehörigkeit gesucht Modell, welches die Klassenzugehörigkeit als Funktion der (anderen) Attributwerte modelliert Ziel Datenobjekte, deren Klassenzugehörigkeit unbekannt ist so korrekt wie möglich klassifizieren Evaluation des Modells Ein Test Set (mit gleichfalls bekannter Klassenzugehörigkeit) wird verwendet Üblicherweise wird die gegebene Datenmenge partitioniert in • ein Training Set zur Modellbildung und • ein Test Set zur Validierung des Modells 27 Training Set id Attribut1 Attribut2 1 yes large 125 k no 2 no medium 100 k no 3 no small 70 k no 4 yes medium 120 k no 5 no large 95 k yes 6 no medium 60 k no 7 yes large 220 k no 8 no small 85 k yes 9 no medium 75 k no 10 no small 90 k yes LernAlgorithmus Attribut3 Klasse Induktion Modell lernen Modell Test Set id Attribut1 Attribut2 Attribut3 Klasse 11 no small 55 k ? 12 yes medium 80 k ? 13 yes larg 110 k ? 14 no small 95 k ? 15 no large 67 k ? Deduktion Modell anwenden 28 Klassifikations-Techniken Entscheidungsbäume Regelbasierte Methoden Nearest-Neighbor (NN) Klassifikation Bestimmung der wahrscheinlichsten Klassenzugehörigkeit nach Bayes Support Vector Machines Neuronale Netze Evaluierung des Modells Genauigkeit (Accuracy, Anteil der korrekten Ergebnisse im Test Set) Fehlerrate (Error rate, Anteil der falschen Ergebnisse im Test Set) für binäre Klassifikation ermittelte Klasse tatsächliche Klasse 0 1 0 f00 f01 1 f10 f11 f 00 f11 accuracy f 00 f 01 f10 f11 error rate f 01 f10 f 00 f 01 f10 f11 29 2.1 Induktion von Entscheidungsbäumen Hunt‘s Algorithmus 1. Falls alle DO zur gleichen Klasse gehören, bilden sie ein Blatt des Entscheidungsbaumes. 2. Andenfalls wird (1) ein Attribut gewählt, (2) die Menge der DO entsprechend der auftretenden Attribut-Werte für dieses Attribut partitioniert, die je einen Nachfolge-Knoten bilden und (3) der Algorithmus rekursiv auf diese Nachfolgeknoten und die verbleibenden Attribute angewandt. 30 ‘n Beispiel: ausgebliebene Kredit-Tilgungen diskret nominal Hausbesitz yes Familienstand ledig 2 no verheiratet 100 k no 3 no ledig 75 k no 4 yes verheiratet 120 k no 5 no geschieden 95 k yes yes 6 no verheiratet 60 k no 7 yes geschieden 220 k no no 8 no ledig 85 k yes 9 no verheiratet 75 k no 10 no ledig 90 k yes Klassenzugehörigkeit jährliches offene Einkommen Forderungen 125 k no erstes ausgewähltes Attribut: Wertebereich: no yes no yes verschiedene Klassen Kd. Nr. 1 kontinuierlich rational Partitionierung bzgl. eines Attributs binär Hausbesitz {yes, no} 31 Hausbesitzer = yes Familienstand 1 ledig 4 verheiratet 7 geschieden jährliches offene EinForderungen kommen 125 k no 120 k no 220 k no Hausbesitzer yes no Kd. Nr. 2 3 5 6 8 9 10 Familienjährliches offene stand Einkommen Forderungen verheiratet 100 k no ledig 75 k no geschieden 95 k yes verheiratet 60 k no ledig 85 k yes verheiratet 75 k no ledig 90 k yes no yes no yes no yes verschiedene Klassen Hausbesitzer = no Partitionierung bzgl. eines Attributs Kd. Nr. no Familienstand 32 Hausbesitzer yes no no Familienstand Familienstand = verheiratet Kd. Nr. 2 jährliches Einkommen 100 k offene Forderungen no 6 60 k no 9 75 k no Familienstand = geschieden Kd. Nr. 5 jährliches Einkommen 95 k verheiratet no ledig geschieden yes jährl. Eink. ≤ 80 k offene Forderungen yes no > 80 k yes Familienstand = ledig Kd. Nr. 3 jährliches Einkommen 75 k offene Forderungen no 8 85 k yes 10 90 k yes verschiedene Klassen no yes Partitionierung bzgl. eines Attributs Ansatz zur Behandlung des numer. Attr.: Grenze zwischen no und yes als Mittelwert zwischen 75 und 85 schätzen 33 Nachteile von Hunt‘s Algorithmus funktioniert nur dann mit vollständigem Ergebnis (im Sinne, dass es für jeden neuen Fall eine Lösung liefert), wenn jede Kombination auch in den Trainingsdaten präsent ist funktioniert nur für „scharfe“ Klassenzugehörigkeiten in den Trainingsdaten und liefert auch nur solche bei der Anwendung des Entscheidungsbaumes Für folgende Fälle müssen zusätzliche Konstruktionsvorschriften erlassen werden: Fall 1 Für einen möglichen Attribut-Wert ist kein DO in den Trainingsdaten. mögliche Lösung: mehrheitlich in den Trainingsdaten auftretende Klasse als Blatt an den Entscheidungsbaum anheften Fall 2 Alle DO einer Partition haben identische Attributwerte, ihre Klassen sind aber verschieden. mögliche Lösung: mehrheitliche in dieser Partition auftretende Klasse als Blatt anheften 34 offene Fragen (1) genaue Spezifikation des Partitionierungs-Verfahrens a) Festlegung der Attribut-Werte an den Kanten für jeden Attribut-Typ (insbes. für kontinuierliche Werte) b) Festlegung eines „besten“ Attributs für die Partitionierung (2) genauere Spezifikation von Stopp-Kriterien für den Algorithmus Wenn alle DO einer Partition zur selben Klasse gehören? Wenn alle DO einer Partition den selben Wert für das gewählte Attribut haben? Weitere Kriterien ??? 35 (1 a) Festlegung der Attribut-Werte an den Kanten binäre Attribute jeder der beiden Werte bildet eine Kante nominale Attribute (ohne Ordnungsrelation) jede Partitionierung der Attributwerte in nichtleere Wertemengen ist denkbar Familienstand { verheiratet } { geschieden } Familienstand { ledig } { verheiratet } Familienstand { ledig, verheiratet } { geschieden } { ledig, geschieden } Familienstand { ledig } { verheiratet, geschieden } 36 nominale Attribute (ohne Ordnungsrelation) auch jede der 2k-1-1 Kaskadierungen der k verschiedenen Werte zu k-1 binären Entscheidungen ist denkbar Familienstand Familienstand ≠ ledig ledig ≠ verheiratet verheiratet Familienstand verheiratet Familienstand geschieden ledig geschieden Familienstand ≠ geschieden geschieden Familienstand verheiratet ledig 37 ordinale Attribute (mit Ordnungsrelation) jede Partitionierung der Attributwerte in nichtleere Wertemengen ist auch hierfür denkbar Größe { small } Größe { medium } { large } { small } Größe { medium } { medium, large } Größe { small, large } { large } { small, medium } 38 ordinale Attribute (mit Ordnungsrelation) auch jede der 2k-1-1 Kaskadierungen der k verschiedenen Werte zu k-1 binären Entscheidungen ist denkbar Größe small Größe ≠ small ≠ medium medium Größe medium Größe large small large Größe ≠ large large Größe small medium 39 kontinuierliche Attribute Wertebereich wird diskretisiert Festlegung einer Anzahl n diskreter Wertebereiche Festlegung von n-1 „split points“ x1, …, xn-1 zwischen diesen Werten Zuordnung der kontinuierlichen Attribute zu diskreten nach IntervallZugehörigkeit { (x0 , x1] , (x1 , x2] , …, (xn-1 , xn) } bzw. x0 < x ≤ x1, x1 < x ≤ x2 , …, xn-1 < x ≤ xn wobei x0 und xn auch – ∞ bzw. + ∞ sein können jährl. Eink. ≤ 70 k no > 70 k, ≤ 90 k maybe > 90 k yes 40 (1 b) Wie findet man „das beste“ Attribut? ‘n Beispiel: vor dem Splitting gehören 10 DO zur Klasse 0 (C0) und 10 DO zur Klasse 1 (C1) als Attribute stehen zur Verfügung • binäres Attribut „Besitz eines Autos“, Wertebereich { ja, nein } • nominales Attribut „bevorzugter Auto-Typ“, Wertebereich { Familienfahrzeug, • Sportwagen, Luxuswagen } nominales Attribut „Matrikel-Nummer“, Wertebereich { c1 , c2 , …, c20 } Welches dieser Splittings ist „das beste“? 41 Wie findet man „das beste“ Attribut? optimal: Knoten mit einheitlicher Klassenzugehörigkeit ein Maß der „Unreinheit“ (impurity) erzeugter Knoten wird benötigt inhomogen hohe „Unreinheit“ homogen geringe „Unreinheit“ je „verzerrter“ die Klassenverteilung ist, desto höher ist die Homogenität im Beispiel wäre C0: 10, C1: 0 und C0: 0, C1: 10 optimal C0: 5, C1: 5 der denkbar schlechteste Fall häufig verwendete Maße für „Unreinheit“ (impurity) sind Entropie Gini – Index Klassifikationsfehler 42 Sei pi = p(i|a) der Anteil der DO hinter dem Knoten mit dem Attribut a, welche zur Klasse i gehören im binären Falle gibt es nur p0 und p1, es gilt p1 = 1 – p0 Maße der „Unreinheit“ (impurity) sind m Entropie H (a ) p (i | a ) ld p (i | a ) i 1 Gini-Index m Gini (a ) 1 p (i | a ) 2 i 1 Klassifikationsfehler F (a ) 1 max p (i | a ) i wobei m die Anzahl der Klassen ist 0 ld 0 = 0 in der Entropie-Kalkulation (wegen lim( p ld ( p)) 0 ) ist p 0 diese Größen Knoten-bezogen für jeden Nachfolger Knoten berechnet werden die „Güte“ eines Attributs wird daran gemessen wird, wie weit dieses Splitting die „Unreinheit“ verbessert: Vater-Knoten vs. alle Kind-Knoten (gewichteter Durchschnitt) die Differenz der „Unreinheiten“ zwischen Vater- und Kinder-Knoten Informationsgewinn des Attributes a genannt wird: IG(a) 43 Entropie, Gini und Klassifikationsfehler bei binärer Klassifikation 44 Entropie, Gini und Klassifikationsfehler am Beispiel N C0: 4 C1: 14 Vater-Knoten H(N) Gini(N) F(N) = - 4/18*ld(4/18) - 14/18*ld(14/18) = 1 - (4/18)2 – (14/18)2 = 1 – max(4/18, 14/18) = 0.764 = 0.346 = 0.222 gewichteter Durchschnitt aller „Kinder“ N1 C0: 0 C1: 6 N2 C0: 1 C1: 5 N3 C0: 3 C1: 3 Kinder-Knoten H(N1) = -0/6*ld(0/6)-6/6*ld(6/6) = 0 Gini(N1)= 1 – 0/62 – 6/62 =0 F(N1) = 1 – max(0/6,6/6) =0 H(N2) = -1/6*ld(1/6)-5/6*ld(5/6) = 0.650 Gini(N2)= 1 – 1/62 – 5/62 = 0.278 F(N2) = 1 – max(1/6,5/6) = 0.167 H(N3) = -3/6*ld(3/6)-3/6*ld(3/6) = 1 = 0.5 Gini(N3)= 1 – 3/62 – 3/62 F(N3) = 1 – max(3/6,3/6) = 0.5 6 6 6 H ( N1 ) H ( N 2 ) H ( N 3 ) 18 18 18 0.550 (besser als Vater - Knoten) 6 6 6 Gini ( N all ) Gini ( N1 ) Gini ( N 2 ) Gini ( N 3 ) 18 18 18 0.259 (besser als Vater - Knoten) H ( N all ) F ( N all ) 6 6 6 F ( N1 ) F ( N 2 ) F ( N 3 ) 18 18 18 0.222 (gleich dem Vater - Knoten) Informationsgewinn IGH = H(N) - H( Nall ) IGGini= Gini(N) - Gini( Nall ) = 0.087 IGF = F(N) - F( Nall ) = 0.214 =0 45 Splitting verschiedener Attribut-Typen Binäre Attribute Split mit binärem Attribut a Split mit binärem Attribut b N C0: 6 C1: 6 N C0: 6 C1: 6 yes no yes no N1 C0: 4 C1: 3 N2 C0: 2 C1: 3 N1 C0: 1 C1: 4 N2 C0: 5 C1: 2 Attribut a Gini(N) Gini(N1) Gini(N2) Gini(Nall) IG Attribut b 0.5 0.4898 0.4800 0.4857 0.0143 0.3200 0.4082 0.3714 0.1286 ist zu bevorzugen 46 Splitting verschiedener Attribut-Typen Nominale Attribute N C0: 10 C1: 10 Vergleich der Partitionierungen Wertebereich: {verheiratet,ledig,geschieden} Partition C0 C1 N1 N2 N1 N2 N1 N2 N1 N2 N3 {l} { v, g } {v} { l, g } {g} { l, v } {v} {l} {g} 8 0 2 10 1 3 9 7 1 7 9 3 1 3 8 0 1 7 Gini(N) Gini(N1 ) Gini(N2 ) 0.5 0 0.3750 0.2778 0.2188 0.4922 0.3750 0.3750 0 Gini(N3 ) 0.2188 Gini(Nall ) 0.1667 0.4688 0.3124 0.1625 IG 0.3333 0.0312 0.1876 0.3375 Ergebnis ist nicht verwunderlich Die anderen Partitionierungen enthalten Verschmelzungen von Partitionen des “Siegers“ Verschmelzungen erhöhen die „Unreinheit“ ist zu bevorzugen 47 Splitting verschiedener Attribut-Typen Kontinuierliche Attribute Attribut v Finden geeigneter Split-Werte v > vsplit v ≤ vsplit Variante 1 Bestimmung genau eines Split-Wertes vsplit (Gini-) Optimum der Mittelwerte zwischen den DO ‘n Beispiel Klasse No No No Yes Yes Yes No No No No Jahreseinkommen 60 70 75 85 90 95 100 120 125 220 65 vsplit v 72.5 80 87.5 92.5 97.5 110 122.5 172.5 ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > ≤ > No 1 6 2 5 3 4 3 4 3 4 3 4 4 3 5 2 6 1 Yes 0 3 0 3 0 3 1 2 2 1 3 0 3 0 3 0 3 0 Gini 0.400 0.375 0.343 0.417 0.400 0.300 Optimum 0.343 0.375 0.400 vsplit = 97.5 48 Splitting verschiedener Attribut-Typen Kontinuierliche Attribute Attribut v Finden geeigneter Split-Werte v≤v1split ••• v1split<v≤v2split ••• Variante 2 Bestimmung mehrerer Split-Werte v1split , v2split , ..., vnsplit Mittelwerte zwischen benachbarten DO verschiedener Klassenzugehörigkeit v>vnsplit das gleiche Beispiel Klasse No No No Yes Yes Yes No No No No Jahreseinkommen 60 70 75 85 90 95 100 120 125 220 v1split = 80 vsplit v v2split = 97.5 80 97.5 v ≤ 80 80 < v ≤ 97.5 v > 97.5 No 3 0 4 Yes 0 3 0 Gini(Ni) 0 0 0 Gini(v) 0 49 Gewinn-Verhältnis (Gain Ratio) Reinheitsmaße wie Gini und Entropie protegieren Attribute mit vielen verschiedenen Werten die Anzahl der DO pro Unterbaum ist dabei allerdings kleiner als bei Attributen mit wenigen Werten Extremfall: ein DO pro Unterbaum (siehe rechten Split im Bild) – perfekter Informationsgewinn, aber untauglich als generelles Modell Hat man zu wenig DO (oder gar nur eines), kann man daraus keine statistisch relevanten Aussagen für die Gesamtheit der Objekte ableiten. eine Lösung ausschließlich binäre Splits (wie im Entscheidungsbaum-Algorithmus CART) nominale und kontinuierliche Attribute notfalls kaskadieren 50 Gewinn-Verhältnis (Gain Ratio) eine andere Lösung Informationsgewinn zur Anzahl der DO in den Unterbäumen ins Verhältnis setzen (wie es z.B. der Entscheidungsbaum-Algorithmus C4.5 tut): Gain - Ratio IG (a ) Split - Info with k Split - Info p (i ) ld ( p (i )) i 1 p ni n Menge von n DO wird in k Untermengen mit je ni DO partitioniert Informationsgewinn (Gain-Ratio) wird durch die Entropie der Partitionierung (SplitInfo) relativiert die Entropie (im Nenner) steigt (1) mit größer werdender Anzahl von Unterbäumen und (2) kleiner werdenden Anteilen der DO des Vater-Knotens im Unterbaum Partitionierungen mit höherer Entropie (größerer Anzahl kleinerer Partitionen) werden “bestraft” 51 Ein Algorithmus zur Konstruktion eines Entscheidungsbaumes input Menge von DO mit bekannter Klassenzugehörigkeit (Examples) E Menge von Attributen (features) F output Zeiger auf einen Entscheidungsbaum root TreeGrowth(E,F) if stopping_cond(E,F) then leaf = create_node() leaf.label = classify(E) return leaf else root = create_node() root.test_cond = find_best_split(E,F) F := F \ {root.test_cond} Values := {value: value is possible value of root.test_cond} for each v ϵ Values do Ev := {example: example ϵ E, root.test_cond(example) = v} childv := TreeGrowth(Ev,F) add childv as descendent of root and label the edge root→childv as v end for end if return root 52 Ein Algorithmus zur Konstruktion eines Entscheidungsbaumes create_node() erweitert den Baum um einen neuen Knoten, welcher entweder ein Attriubut (node.test_condition) oder eine Klasse (node.label) enthält (Blattknoten). find_best split(E,F) ermittelt das beste Attribut (und ggf. die besten SplittWerte dieses Attributs) auf der Basis eines „Reinheitsmaßes“ (Gini, Entropie), ggf. erweitert um das Gewinn-Verhältnis classify(E) bestimmt die Klasse, die einem Blatt t des Entscheidungsbaumes zugeordnet wird, vernünftigerweise die mehrheitlich vertretene Klasse: leaf_label := {l: l ϵ Et , p(i|t): p(i|t) > p(l|t)}. Zusätzlich könnte man eine geschätzte Wahrscheinlichkeit für die Korrektheit dieser Klassenzugehörigleit p(l|t) hinzufügen. stopping_cond(E,F) beendet den rekursiven Aufbau des Entscheidungsbaumes. Sinnvolle Stopp-Bedingungen sind: Ein großer Anteil der DO (im „perfekten“ Fall alle) gehören zur selben Klasse. Die Anzahl der DO hat ein gewisses Minimum unterschritten. Algorithmen dieser Grundstruktur findet man u.a. auf http://www.kdnuggets.com/software/classification-decision-tree.html 53 Model Overfitting Fehlerquellen 1. Trainingsfehler (training errors, resubstitution error, apparent error) falsch klassifizierte Trainingsdaten 2. Generalisierungsfehler (generalization errors) fehlerhafte Verallgemeinerung von Trainingsdaten auf neue Fälle Trainingsfehler können beliebig weit (bis hin zu Null bei hinreichend vielen relevanten Attributen) reduziert werden allerdings zum „Preis“ steigender Komplexität des Modells Passt das Modell allerdings zu perfekt zu den Trainingsdaten, wird es ab einem bestimmten Punkt sogar schlechter bei der Anwendung auf Testdaten. Diesen Effekt nennt man Model Overfitting. Ist das Modell jedoch zu einfach, sind beide Fehlerraten (Trainings- und Generalisierungsfehler) hoch. Diesen Effekt nennt man Model Underfitting. 54 Model Overfitting ‘n Beispiel: 2 Klassen, 2 kontinuierliche Attribute x1, x2 Trainings - DO: siehe Abb. rote Kreise: 0.5 sqrt(x12+x22) 1 blaue Dreiecke: sqrt(x12+x22) < 0.5 oder sqrt(x12+x22) > 1 • perfekte Modellierung (Klassifikationsfehler über den Trainingsdaten = 0) Underfitting Overfitting 55 Ursachen des Model Overfitting 1. Overfitting durch verrauschte Daten verrauschte Daten = Trainingsdaten mit falscher Klassenzugehörigkeit, z.B. Körper-Temp. lebend gebährend vierbeinig hält Winterschlaf Säugetier? Igel Warmblütler ja ja ja ja Katze Warmblütler ja ja nein ja Fledermaus Warmblütler ja nein ja nein Wal Kaltblütler ja nein nein nein Salamander Kaltblütler nein ja ja nein Komodo-Waran Kaltblütler nein ja nein nein Python Kaltblütler nein nein ja nein Lachs Kaltblütler nein nein nein nein Adler Warmblütler nein nein nein nein Kaltblütler ja nein nein nein Spezies Guppy 56 KörperTemp. Warmblütler Kaltblütler lebend gebährend yes Warmblütler kein Säugetier no kein Säugetier vierbeinig yes KörperTemp. Kaltblütler lebend gebährend yes Säugetier kein Säugetier no kein Säugetier no Säugetier kein Säugetier „perfektes“ Modell nicht „perfektes“ Modell 0 Fehler bzgl. der Trainingsdaten 10 % Fehler bzgl. der Trainingsdaten 57 Effekt beider Modelle bzgl. Testdaten Testdaten vierbeinig hält Winterschlaf Säugetier? Spezies Körper-Temp. lebend gebährend Mensch Warmblütler ja nein nein ja Taube Warmblütler nein nein nein nein Elefant Warmblütler ja ja nein ja Leoparden-Hai Kaltblütler ja nein nein nein Schildkröte Kaltblütler nein ja nein nein Pinguin Kaltblütler nein nein nein nein Aal Kaltblütler nein nein nein nein Delphin Warmblütler ja nein nein ja Ameisen-Igel Warmblütler nein ja ja ja Kaltblütler nein ja ja nein Gila-Krustenechse Trainingsfehler Performance Fehlerrate über den Testdaten „perfektes“ Modell 0% 30 % nicht „perfektes“ Modell 10 % 10 % 58 Ursachen des Model Overfitting 2. Overfitting in Ermangelung repräsentativer Daten zu wenig Trainingsdaten machen das Modell anfällig für Overfitting, z.B. lebend gebährend vierbeinig hält Winterschlaf Säugetier? Spezies KörperTemp. Salamander Kaltblütler nein ja ja nein Guppy Kaltblütler ja nein nein nein Adler Warmblütler nein WinterNachtschwalbe Warmblütler nein nein nein nein Schnabeltier Warmblütler nein ja ja ja nein nein KörperTemp. Warmblütler hält Winterschlaf yes nein Säugetier kein Säugetier no kein Säugetier vierbeinig yes Kaltblütler no kein Säugetier Modell Trainingsfehler Performance Fehlerrate über den Testdaten 0% 30 % 59 Abschätzung von Generalisierungsfehlern 1. Evaluierung über den Trainingsdaten (Resubstitution Estimate, Optimistic Approach) Annahme: Trainingsdaten repräsentieren alle (denkbaren) Daten gut ‘n Beispiel Fehlerraten e 2er Modelle T1 und T2 verschiedener Komplexität generiert aus denselben Trainingsdaten Blattknoten enthalten mehrheitlich vertretene Klasse T1 T2 +: 3 : 0 +: 3 : 1 +: 2 : 1 +: 0 : 2 +: 1 : 2 e( T1 ) = 4 / 24 = 0.167 +: 5 : 2 +: 3 : 1 +: 0 : 5 +: 1 : 4 +: 3 : 0 +: 3 : 6 e( T2 ) = 6 / 24 = 0.25 60 Abschätzung von Generalisierungsfehlern 2. Einbezug der Modell-Komplexität 2.1 Occam‘s Razor („Geiz-Prinzip“) Hat man zwei Modelle mit demselben Generalisierungsfehler, ist das einfachere Model (mit weniger Knoten) zu bevorzugen. 2.2 Pessimistic Error Rate eg(T) Zur Summe aller Fehlklassifikationen e( ti ) an den Blattknoten über den Trainingsdaten addiert man einen Malus („Strafe“) Ω( ti ) für jeden Blattknoten ti im Baum und bezieht das Resultat auf die Anzahl der DO in den Trainingsdaten: k eg (T ) [e(t ) (t )] i i 1 i k n(t ) i 1 i e(T ) (T ) Nt 61 Abschätzung von Generalisierungsfehlern Beispiele T1 T 2 +: 3 : 0 +: 3 : 1 +: 2 : 1 +: 0 : 2 +: 1 : 2 Bei Ω(ti ) = 0.5 ist eg (T1 ) Bei Ω(ti ) = 1 ist eg (T1 ) +: 5 : 2 +: 3 : 1 +: 1 : 4 +: 3 : 0 +: 3 : 6 +: 0 : 5 4 7 0.5 7.5 6 4 0.5 8 0.3125 und eg (T2 ) 0.3333 24 24 24 24 4 7 1 11 0.458 24 24 und eg (T2 ) 6 4 1 10 0.417 24 24 62 Abschätzung von Generalisierungsfehlern 2.3 Beschreibungskomplexität für Baum und dessen Fehlklassifikationen (Minimum Description Length Principle) Man addiert für jede Fehlklassifikation ein Maß zur binären Kodierung Beispiele cost( data | tree ) (z.B. für jede Fehlklassifikation einmal die Länge der Kodierung einer Beispiel-ID) ld( Anzahl der Beispiele) e.g. for 16 examples and 3 misclassifications cost(data|tree) = 3 * 4 = 12 und, um Komplexität des Baumes zu „bestrafen“, ein Maß der Länge der Beschreibung der binären Kodierung der Knoten des Baumes cost( tree ), z.B. für Blattknoten die Länge der Kodierung der zugeordneten Klasse ld( Anzahl der Klassen ) für jeden anderen Knoten die Länge der Kodierung des dort verzeichneten Attributs ld( Anzahl der Attribute ) : e.g. for 8 leafs denoting 2 classes, 7 non-leafs denoting 4 attributes cost(tree) = 8 * 1 + 7 * 2 = 22 cost( tree , data ) = cost ( data | tree ) + cost( tree ) 63 Abschätzung von Generalisierungsfehlern 2.4 ... durch statistische Korrektur des Trainingsfehlers Generalisierungsfehler sind typischerweise größer als Trainingsfehler. können auch abgeschätzt werden werden, indem man eine bestimmte Wahrscheinlichkeit der Korrektheit der Klassifizierung beim Splitten an jeder „Astgabel“ unterstellt und deren obere Schranke (durch Multiplikation dieser Wahrscheinlichkeiten eines Pfades zu einem Blatt und Ermittlung des „schlechtesten Pfades“) ermittelt. 2.5 ... durch Anwendung auf eine Validierungsmenge Trainingsmenge wird in 2 Teilmengen partitioniert, eine zum Bilden des Modells eine zum Testen des Modells typisch: 2/3 der Beispiele zum trainieren, 1/3 zum validieren 64 Vermeidung des Overfitting bei Entscheidungsbäumen 1. Pre-Pruning (Early Stopping Rule) Ansatz restriktivere Stopp-Bedingung stopping_cond(E,F) Stopp der Baumentwicklung bevor er 100% korrekt (bzgl. der Trainingsdaten) ist. Typische Stopp-Bedingung: Alle DO gehören zur selben Klasse. Alle Attribut-Werte sind identisch. Restriktivere Stopp-Bedingung Anzahl der DO fällt unter einen gewissen Schwellwert Klassenverteilung ist unabhängig von Attribut-Werten (Korrelation mit der Klassenzugehörigkeit fällt unter einen gewissen Schwellwert für alle verbleibenden Attribute) Reinheitsgewinn durch Splitting (z.B. Gini, Informationsgewinn) unterschreitet einen gewissen Schwellwert Problem Auch ein geringer Reinheitsgewinn beim Splitten kann trotzdem hohen Reinheitsgewinne bei nachfolgenden Splittings nach sich ziehen. 65 Vermeidung des Overfitting bei Entscheidungsbäumen 2. Post-Pruning Entscheidungsbaum wird maximal weit entwickelt (gleiche Klasse oder gleiche Attribut-Werte aller Beispiele) danach wird der Baum v.u.n.o. beschnitten, d.h Ersetzung eines Unterbaums durch ein Blatt, dessen Klasse durch die Mehrheit der DO im Unterbaum bestimmt wird (Subtree Replacement) den am häufigsten (im Trainingsset) benutzten Unter-Unterbaum (Subtree Raising) ..., falls sich der Generalisierungsfehler dabei verringert. Vorteil I.allg. bessere Ergebnisse als Pre-Pruning, da es vom voll entwickelten Baum ausgeht und daher eine ungerechtfertigt frühen Abbruch des Splittings vermeidet. Nachteil höhere (Zeit-, Speicher-) Komplexität, da zunächst der vollständig „korrekte“ (bzgl. der Trainingsdaten) Baum entwickelt wird 66 Performance-Abschätzung eines Verfahrens zur Baumkonstruktion (nicht des Baumes!) (abgeleitet aus allen verfügbaren Beispielen) 1. Holdout – Methode Partitionierung der klassifizierten DO in Trainings- und Test Set (z.B. je zur Hälfte oder 2/3 : 1/3) Baumkonstruktion mit Trainings-Set, Performance-Abschätzung am Test Set Nachteile weniger Beispiele zur Modelbildung ⇒ schlechteres Modell Verteilung der Beispiele ist ein trade-off zwischen gutem Modell und belastbarer Performance-Aussage Abhängigkeit der beiden Sets: Über-Repräsentanz einer Klasse im Trainings-Set führt zu Unter-Repräsentanz im Test-Set und umgekehrt 67 Performance-Abschätzung eines Verfahrens zur Baumkonstruktion 2. Zufällige Partitionierung (Random Sub-Sampling) wiederholtes Holdout mit verschiedenen Partitionierungen Ermittlung des Durchschnitts der Performance-Werte Vorteil Mehrere Modelle entstehen, von denen das beste ausgewählt werden kann Nachteile gleiche wie beim einfachen Holdout keine Kontrolle darüber, wie oft ein DO für Training und Test benutzt wird manche DO könnten viel öfter zum Training als zum Test verwendet werden und umgekehrt 68 Performance-Abschätzung eines Verfahrens zur Baumkonstruktion 3. Kreuz-Validierung (Cross-Validation) jedes DO wird gleich häufig zum Training verwendet genau einmal zum Test verwendet Partitionierung der Menge der klassifizierten DO in k gleich große Teilmengen in k Durchläufen wird jede Partition genau einmal zum Test verwendet, während die Vereinigung aller anderen Partitionen zur Modellbildung verwendet wird Ermittlung des Durchschnitts der k entstandenen Performance-Werte Spezialfall k = | Beispielmenge | , genannt „leave one out“ Ansatz Vorteile nutzt so viel wie möglich Beispiele zur Modellbildung Test Sets sind disjunkt Nachteile hohe Komplexität des Verfahrens | Beispielmenge | Durchläufe Zuverlässigkeit der Performance-Aussage wird geschwächt, da diese Aussagen aus nur je einem Beispiel entstanden 69 Performance-Abschätzung eines Verfahrens zur Baumkonstruktion 4. Bootstrap in allen vorherigen Verfahren kam kein Beispiel mehrfach als Trainings-Beispiel (im selben Zyklus) in Betracht hier wird ein Trainings-Set durch zufällige Auswahl aus der gesamten Menge klassifizierter Beispiele generiert (Sampling with replacement) d.h. ein gewähltes DO kann mit einer gewissen Wahrscheinlichkeit mehrfach im Trainings-Set vorkommen wählt man nach dieser Methode (Auswählen und Zurücklegen) N TrainingsBeispiele aus einer Menge von N Daten aus, enthält das Trainings-Set ca. 63,2 % der Original-Menge klassifizierter Beispiele: Wahrscheinlichkeit, gewählt zu werden ist 1-(1-1/N)N für N →∞ konvergiert dieser Wert zu 1-1/e ≈ 0.632. DO, die auf diesem Wege nicht im Trainings-Set landen, werden ins Test-Set aufgenommen wiederholt man dieses Verfahren b mal und erhält jeweils eine Korrektheits-Rate ϵi (i=1...b), lässt sich die Korrektheits-Rate accboot (bei einer tatsächlichen Korrektheit accs über allen DO, die man nur mit 1 abschätzen kann), wie folgt ermitteln: accboot 1 b (0.632 i 0.368 accs ) b i 1 70 Entscheidungsbäume über regulären Patterns Grundidee 1. In einer großen Datenmenge sollen Muster erkannt werden 2. Unbekannte Datensätze sollen entsprechend vorgegebener, schon klassifizierter Beispiele klassifiziert werden Ziel Finden eines Algorithmus, der dies leistet Formal Gegeben: Große Menge W von Daten (Wörtern über einen Alphabet) Gesucht: Muster p, das den Daten zugrunde liegt (Wörter variablen Teilen) Gibt es ein Lernverfahren zur Lösung des Problems? Beispiel passt Hypothese beibehalten, nächstes Beispiel wählen Hypothese Beispiel W Beispiel passt nicht Neue Hypothese generieren, bis Beispiel passt 71 Beispiel aus der Biologie: Lernverfahren am Beispiel der Analyse von Aminosäuresequenzen in Proteinen Alle Proteine setzen sich aus Aminosäuren zusammen (20 verschiedene) Darstellung als Ketten über dem Alphabet Aas = {A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y} Protein = nichtleeres Wort über Aas (z.B. DKLMPQSST), aus bis zu 1000 Aminosäuren Membran-Proteine Bestimmte Proteine werden innerhalb einer Zelle hergestellt Sie verlassen danach die Zelle, um an anderer Stelle des Körpers verwertet zu werden oder zur Kommunikation mit anderen Zellen beizutragen Zellwand/Membran ist nur durchlässig für kleine Moleküle und Ionen Proteine können die Zelle nur verlassen, wenn sie eine Art „Kennwort“ (Signalpeptid) besitzen, eine bestimmte Abfolge von Aminosäuren am Ende der Aminosäurekette; das Signalpeptid weist sich an einem Membrankanal aus und darf passieren; dabei zieht es das Protein hinter sich her Membran-Proteine besitzen außerdem mehrere Teilketten von Aminosäuren, die bei Nicht-Membran-Proteinen nur ganz selten vorkommen (Teilketten = Transmembran-Domänen) 72 Beispiel aus der Biologie (2) Ziele Anhand einer großen Menge von Membran-Proteinen sollen die genauen Aminosäure-Zusammensetzungen der Signalpeptide bestimmt werden die Transmembran-Domänen bestimmt werden Ziel ist es, neue Proteinstrukturen als Membran-Proteine oder Nicht-MembranProteine zu klassifizieren Anwendungsbereiche auf dem Gebiet der Medizin Korrektur von Erbkrankheiten Erbkrankheiten können mit fehlerhaften Transportsignalen verbunden sein Früherkennung, Behandlung Diagnose von Virenkrankheiten Viren können Kanäle in den Zellmembranen manipulieren, so dass sie nur noch von Virenbausteinen passiert werden können. Krebserkennung Störung von Transportwegen kann zu unkontrollierter Zellvermehrung führen Bildung von Tumoren Identifikation von Signalpeptiden und Transmembran-Domänen durch das Lernen von Entscheidungsbäumen über regulären Patterns 73 Definition „Pattern“ Ein Pattern ist eine Zeichenkette über einem gegebenen Alphabet A und einer Menge von Variablen X={x1,...,xn}, die ein Muster beschreibt. Die Variablen stehen für beliebige Zeichenfolgen über A (nicht für das leere Wort!). Alle Wörter, die von einem Pattern p beschrieben werden, gehören zur von p erzeugten Pattern-Sprache L(p). Beispiel: A ={a,b,c} p =aabx1cx2x3bax4 aabaaacbbcbaac,aabcccbbcbacc,aabbccaabaa,aabacbbbab L(p) cab, aab , aabcaabab, aabbcbbba L(p) Bemerkung: Ketten von Variablen Ketten von Variablen sind nur dann sinnvoll, wenn dargestellt werden soll, dass eine Mindestanzahl von Symbolen (mindestens so viele wie Variablen in der Kette stehen) an dieser Stelle erforderlich ist Muster bzw. Regularitäten ausgedrückt werden sollen, z.B. x1x2 x1x2 74 Neuformulierung der Aufgabe: Gegeben: Endliches Alphabet A Datenmenge W von Wörtern über A Gesucht: Möglichst einfaches Pattern p, so dass W eine möglichst große Teilmenge der von p erzeugten Pattern-Sprache L(p) ist Probleme bei der Darstellung von Beispieldaten: Beispieldaten können so unterschiedlich sein, dass sich nur eine Kette von Variablen (z.B. x1x2x3x4) zur Beschreibung eignet, d.h. kein konkretes Muster ist in den Beispieldaten erkennbar „rein intuitiv“ könnte ein spezielleres Pattern die Daten besser beschreiben als eine Kette von Variablen, obwohl es nicht alle gegebenen Daten erzeugen kann ein einziger Ausreißer kann schon verhindern, dass ein Pattern für die gegebenen Beispieldaten gefunden wird (schlecht z.B. bei fehlerhaften Daten) ein Pattern könnte nicht ausreichen, um die Daten zu beschreiben, sondern erst zwei oder drei oder noch mehr verschiedene 75 Zwei Beispiele Beispiel 1: A ={a, b, c} Menge der positiven Daten: P ={aaabc, aaacbbaab, aaacabcabb, aaaabc, aaabbcbcc, aaabba, aaab, aaac, cbcabbc} Bis auf das letzte Wort beginnen alle Wörter in P mit aaa. Ein Pattern, das alle Wörter in W erzeugt, würde die Gestalt x1x2x3x4 haben. Wir würden aber sagen – vor allem wenn W sehr groß ist – dass aaax1 die Menge P viel besser beschreibt. cbcabbc könnte in der Praxis z.B. durch einen Übertragungsfehler entstanden sein, ist also ein Ausreißer Inkonsistenz des Modells mit zu den Beispielen ist mitunter sinnvoll Beispiel 2: A ={a, b, c} Menge der positiven Daten: P ={ab, aa, ac, aaa, abc, bb, bc, bac, bbbc} Das Pattern p1=x1x2 erzeugt P. Gleichzeitig werden alle Wörter aber auch entweder von dem Pattern p2=ax1 oder von p3=bx1 erzeugt. D.h. P L(p2) L(p3). P kann also besser als Vereinigung von endlich vielen konkreten Pattern-Sprachen dargestellt werden anstatt von einer Kette von Variablen. Beschreibung durch mehrere Patterns ist mitunter sinnvoll 76 Warum sind Inkonsistenz und/oder multiple Patterns in Praxi sinnvoll? Fehlerhafte, verrauschte Daten Daten enthalten Fehler (z.B. durch falsche Übermittlung oder fehlerhafte Datenträger) Vermischte Daten Daten sind durch Mischen mehrerer Datenmengen entstanden, wobei jede Menge ihr eigenes Muster enthält Kompliziertes Regelsystem in den Daten Daten folgen nicht alle einer festen Regel, sondern einer Verknüpfung von Regeln, die auf einer Menge von Pattern-Sprachen aufbauen z.B seien p1, p2, p3, p4 Patterns, und es gelten die folgenden Regeln: w L(p1) w W w L(p1) und w L(p2) w W w L(p1) und w (L(p2) L(p3) L(p4)) w W Sonst w W Mit einem Pattern kann man diese Wortmenge W nicht darstellen Mutierte Daten Daten folgten ursprünglich einem festen Muster, sind aber durch individuelle Mutationen von einem gemeinsamen Muster abgewichen (z.B. DNS-Teilsequenzen, in denen einzelne Aminosäuren ausgetauscht wurden) 77 Entscheidungsbäume über regulären Patterns Ein Entscheidungsbaum über regulären Patterns ist ein Binärbaum T mit: Jedes Blatt u in T ist mit einem Wert value(u) ϵ {0,1} versehen. Jeder innere Knoten v in T ist mit einem regulären Pattern q(v) versehen. Zu einem inneren Knoten v aus T bezeichne left(v) den linken Sohn von v (nein-Zweig). right(v) den rechten Sohn von v (ja-Zweig). root(T) bezeichne den Wurzelknoten von T. Entscheidungsbäume dieser Art können zur binären Klassifikation von Wörtern (Entscheidung über die Zugehörigkeit zu einer Sprache) eingesetzt werden. Was hat das mit „Data Mining zu tun? Die Konstruktion eines solchen Entscheidungsbaumes aus (positiven und negativen) Beispielen ist Modellbildung im Sinne des Data Mining. 78 ´n Beispiel... A = {a, b} Sprache L = {ambna| m,n 1, m+n 3} z.B. aaba, abba, aaaaabbba, abbbbba,... P (= positive Beispiele) z.B. aba, ababab, abab, aa, bba... N (= negative Beispiele) Charakteristisch für alle Wörter in L ist: Sie fangen mit a an und hören mit ba auf Folgt irgendwo im Wort ein a auf ein b außer ganz am Schluss, kann das Wort nicht zur Sprache gehören w ϵ L(ax1ba) nein wϵN Notwendig: Wort fängt mit a an und hört mit ba auf ja 0 w ϵ L(x1bax2) nein wϵP 1 ja wϵN Falls irgendwo in der Mitte des Wortes hinter einem b ein a steht, gehört das Wort nicht zur Sprache (x2 darf nicht leer sein) 0 79 Was bedeutet „möglichst einfach“? Gesucht: Möglichst einfacher Entscheidungsbaum über regulären Patterns, welcher die Zugehörigkeit eines Wortes zu einer Pattern-Sprache entscheidet ‘n Beispiel: A = {a,b,c} P = {abbaccba, cabbabccac, aac, babac} N = {cbba, acbbca, aabbb} nein x1bbx2 1 nein ja ja x 1b x 1a 1 1 1 x1abx2 x1bbx2 x1ccx2 0 abx1 1 1 0 0 Beide Bäume klassifizieren o.g. Beispiele korrekt, aber der linke Baum einfacher. Das liegt daran, dass die Patterns im linken Baum für die Gestalt der Beispiele „relevanter“ sind als die im rechten Baum. nötig: Def. der „Relevanz“ eines Patterns speziellstes Pattern, welches möglichst viele Elemente aus P und möglichst wenige Elemente aus N abdeckt. 80 Warum Entscheidungsbäume über regulären Patterns? Robust gegenüber verrauschten Daten (mehrere verschiedene Patterns werden zur Klassifikation genutzt) für Probleme in der Praxis gut geeignet Positive und negative Beispiele werden im Lernverfahren in Betracht gezogen Verschachtelte Zusammenhänge können in Baumform dargestellt werden Regeln lassen sich präziser formulieren z.B.: w L(p1) und w (L(p2) L(p3) L(p4)) w W zunächst gesucht: Sprache, die von gegebenem Entscheidungsbaum dargestellt wird 81 Beispiel: zurück zu den Membran-Proteinen Gegeben: Alphabet Aas = {A, C, D, E, F, G, H, I, K, L, M, N, P, Q, R, S, T, V, W, Y} Entscheidungsbaum T Gesucht: Sprache, die von T dargestellt wird, d.h. Sprache der Membran-Proteine x1Dx2 nein x1Ex2 P N [78,1%, 6,6%] 84,7% 1 P N [6,6%, 3,9%] ja 0 P N [10,9%, 76,5%] x1Px2 1 89,5% 0 P N [4,4%, 13,0%] Fast alle Proteine, welche die Aminosäuren E und P, aber nicht D enthalten, gehören zu den Transmembran-Proteinen. L(T) enthält genau die Wörter über Aas , die nicht in L(x1Dx2 ), und entweder nicht in L(x1Ex2 ) oder in L(x1Ex2 ) , aber nicht in L(x1Px2 ) liegen: L(T)={w: (wL(x1Dx2)) ⋀ ((wL(x1Ex2))⋁((wL(x1Ex2))⋀(wL(x1Px2)))) Insgesamt wurden 84,7% der positiven und 89,5% der negativen Testbeispiele durch diesen Entscheidungsbaum korrekt klassifiziert. 82 Wie erzeugt man nun einen Entscheidungsbaum aus (positiven und negativen) Beispielen? q1 ? N P q2 q4 q3 Idee Ziel: Aus positiven und negativen Beispielen einen möglichst einfachen Entscheidungsbaum generieren Gesucht sind möglichst „gute“ Patterns In jedem Knoten sollte möglichst viel Information über den Knoten gewonnen werden Idee: Entscheidungsbaum anhand des maximalen Informationsgewinnes in jedem Knoten gewinnen Ansatz zur Ermittlung des Informationsgewinns: Entropie 84 Informationsgewinn bei regulären Patterns N B=0 A=0 Seien w ein (beliebiges) Wort, q ein Pattern seien A, B Ereignisse: A=1 B{0,1} mit B=1 wP und B=0 wN B=1 A{0,1} mit A=1 wL(q), A=0 sonst L(q ) P Gesucht ist ein Pattern q, das den Informationsgewinn maximiert, d.h. möglichst viele Beispiele aus P und möglichst wenige aus N oder möglichst viele Beispiele aus N und möglichst wenige Beispiele aus P abdeckt: IG(A,B) = H(B)-HA(B) max B ist nicht von q abhängig, es reicht also HA(B) min HA=1(B) ist die Entropie von B unter der Bedingung dass ein Wort w zur Sprache L(q) des Patterns q gehört HA=0(B) ist die Entropie von B unter der Bedingung dass ein Wort w nicht zur Sprache L(q) des Patterns q gehört HA(B) = Hq(B) = p(A=1)HA=1(B) + p(A=0)HA=0(B) 85 Erinnerung : A 1 w L( q ); B 1 w P; B 0 w N Herleitung von Hq(B) H q ( B ) p ( w L(q )) H wL ( q ) ( B ) p ( w L(q )) H wL ( q ) ( B ) H wL ( q ) ( B ) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) p ( w N | w L(q )) ld ( p ( w N | w L(q ))) P H wL ( q ) ( B) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) P \ L(q ) p ( w N | w L(q )) ld ( p ( w N | w L(q ))) p ( w L(q )) p( w P | w L(q)) p( w P | w L(q)) p( w N | w L(q)) p( w N | w L(q)) L(q ) ( P N ) PN L(q ) P L(q ) N L( q ) P PN L(q ) P L(q ) P L(q ) N N L(q ) N P \ L(q ) P \ L( q ) N \ L( q ) L( q ) N L( q ) P L( q ) N N \ L(q ) P \ L ( q ) N \ L( q ) N \ L(q ) Analog zu den Gleichungen oben p ( w L(q )) ( P N ) \ L(q ) PN P \ L(q ) N \ L(q ) PN L(q ) 1 p ( w L(q )) 86 Ergebnis der Herleitung von Hq(B) H q ( B) | L(q ) P | | L(q ) N | | L(q ) P | | L(q ) P | ld |P|| N | | L(q ) P | | L(q ) N | | L(q ) P | | L(q ) N | L( q ) N L( q ) N ld | L( q ) P | | L( q ) N | | L( q ) P | | L( q ) N | | P \ L(q ) | | N \ L(q ) | | P \ L(q ) | | P \ L(q ) | ld | P \ L(q) | | N \ L(q) | | P \ L(q ) | | N \ L(q ) | |P||N | N \ L(q ) N \ L( q ) ld | \ ( ) | | \ ( ) | P L q N L q | P \ L( q ) | | N \ L( q ) | 87 Algorithmus 1. 2. 3. 4. 5. Konstruiere ein Blatt mit 0 bzw. 1, wenn P bzw. N die leere Menge ist Wähle das Pattern q, welches die Entropie Hq(B) minimiert (d.h. den Informationsgewinn maximiert) Schreibe q in die Wurzel des Baumes Für den rechten Sohn des Knotens ermittle Pneu = L(q) ∩ P ,Nneu = L(q) ∩ N, also alle übrigen Worte in P bzw. N, die bereits mit dem Pattern q abgedeckt werden („Ja-Zweig“) Rufe den Algorithmus rekursiv mit Pneu und Nneu auf Für den linken Sohn des Knotens wähle Pneu = P \ L(q) ,Nneu = N \ L(q), also alle übrigen Worte in P bzw. N, die nicht P durch das Pattern q abgedeckt werden („Nein-Zweig“) Rufe den Algorithmus rekursiv mit Pneu und Nneu auf N L(q ) 88 Welche Patterns kommen für Schritt 2 in Frage? nur solche Patterns, die mindestens ein Wort aus P oder N, d.h. aus M = P ∪ N erzeugen (alle anderen sind nutzlos) aufeinander folgende Variablen werden zu einer einzigen Variablen zusammengefasst (z.B. abx1x2ba wird zu abx1ba) macht das Pattern einfacher verschlechtert die Güte der Lösung nicht wesentlich (da z.B. abx1ba alle Wörter, die sich aus abx1x2ba bilden lassen, einschließt) Die Menge der „Kandidaten“ RPat(M), welche o.g. Bedingungen erfüllt, kann aus M systematisch erzeugt werden, indem man aus jedem Wort in w ∈ M alle dieses Wort erzeugende Patterns, welche o.g. Bedingungen erfüllen, konstruiert. Die Anzahl dieser Patterns ist endlich, da w von endlicher Länge ist. Wir wählen das Element aus RPat(M), welches den größten Informationsgewinn bringt. Gibt es deren mehrere, wählen wir das kürzeste von denen. 89 Algorithmus zur Erzeugung von RPat(M) 1. Initialisiere RPat(M) := P N 2. für jedes Wort w ∈ P N führe folgende rekursive Funktion aus: input: RPat(M)alt, ein Wort w oder ein Pattern q output: RPat(M)neu für alle n = 1 ... (laenge(w)-1): für jedes n-elementige Teilwort t in w: erzeuge ein Pattern q, indem t durch eine Variable ersetzt wird, wenn es nicht bereits an eine Variable grenzt oder eine Variable enthält füge das so erzeugte Pattern q zu RPat(M) hinzu: RPat(M)neu := RPat(M)alt {q} Rufe die Funktion rekursiv mit RPat(M)neu auf ‘n Beispiel Sei M = P N = { aab , bb } Alle Patterns, welche die Worte aab und bb erzeugen, können nach o.g. Algorithmus systematisch konstruiert werden. Dies ergibt RPat(M) ={ aab, x1ab, x1ax2,, ax1b, aax1, x1b, ax1, bb, bx1 } 90 Algorithmus zur Generierung eines Entscheidungsbaums input: P, N output: baum(Wurzel, linker_UB, rechter_UB) function EBaum(P,N); begin if N = then EBaum := baum(1,nil,nil) if P = then EBaum := baum(0,nil, nil) if N ≠ and P ≠ then begin Q:={q: q∈RPat(P∪ N), ∀ q‘≠q∈RPat(P∪N): Hq(B) ≤Hq‘(B))}; q := kürzestes Element aus Q; Pr := L(q) ∩ P; Nr := L(q) ∩ N; Pl := P \ L(q); Nl := N \ L(q); EBaum := baum(q,EBaum(Pl,Nl), EBaum(Pr,Nr)) end end; 91 ‘n Beispiel Sei P={aab} , N={bb} RPat(P ∪ N) ={aab, x1ab, ax1b, aax1, ax1, x1b, x1ax2, bb, bx1} Man berechne die Entropien Hq(B) für jedes Element q in RPat(P ∪ N) Die Hq(B) verschiedener Patterns sind gleich, wenn diese Patterns in beiden entstehenden Unterbäumen gleiche Verhältnisse zwischen Beispielen aus P und N erzeugen, d.h. jeweils gleich viele Beispiele aus P und N erzeugen Beispiel: x1ab, ax1b sind gleichwertig, da sie genau ein Element in P und keines in N erzeugen Gleiche Entropien ergeben sich also für aab, x1ab, ax1b, aax1, ax1, x1ax2 (1 aus P, 0 aus N) bb, bx1(0 aus P, 1 aus N) x1b, (1 aus P, 1 aus N) Die Berechnung gestaltet sich wie folgt: 92 Berechnung von Hq(B) mit q=x1ab H q p ( w L(q )) H wL ( q ) ( B ) p ( w L(q )) H wL ( q ) ( B ) 1 1 0 (1 ) 0 0 2 2 H wL ( q ) ( B ) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) p ( w N | w L(q )) ld ( p ( w N | w L(q ))) 1 ld (1) 0 ld (0) 0 H wL ( q ) ( B ) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) P p ( w N | w L(q )) ld ( p ( w N | w L(q ))) 0 p ( w L(q )) p( w P | w L(q )) p( w P | w L(q)) p( w N | w L(q)) L(q ) P L(q ) N PN L(q ) P L( q ) P L( q ) N P \ L(q ) P \ L( q ) N \ L( q ) L(q ) N L( q ) P L( q ) N N \ L(q ) 0 0 1 0 1 p( w N | w L(q)) 1 P \ L(q ) N \ L(q ) 0 1 P \ L(q ) 1 0 1 11 2 L( q ) P 1 1 1 0 0 0 1 x1ab aab N L(q ) N bb N \ L(q ) L(q ) 93 Berechnung von Hq(B) mit q=x1b H q p ( w L(q )) H wL ( q ) ( B ) p ( w L(q )) H wL ( q ) ( B ) 1 1 (1 1) 0 1 H wL ( q ) ( B ) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) 1 1 1 1 p ( w N | w L(q )) ld ( p ( w N | w L(q ))) ld ( ) ld ( ) 1 2 2 2 2 H wL ( q ) ( B ) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) P p ( w N | w L(q )) ld ( p ( w N | w L(q ))) 0 p ( w L(q )) p( w P | w L(q)) L(q ) P L(q ) N PN L( q ) P L(q ) P L(q ) N P \ L(q ) L(q ) N L( q ) P L( q ) N N \ L(q ) L( q ) P 1 1 11 2 0 p( w P | w L(q)) 0 P \ L( q ) N \ L( q ) 0 p( w N | w L(q)) P \ L(q ) 11 1 11 N x1b L(q ) N 1 1 11 2 0 0 p( w N | L(q )) P \ L ( q ) N \ L( q ) 0 0 aab bb N \ L(q ) L(q ) 94 Berechnung von Hq(B) mit q=bx1 1 1 H q p ( w L(q )) H wL ( q ) ( B ) p ( w L(q )) H wL ( q ) ( B ) 0 (1 ) 0 0 2 2 H wL ( q ) ( B) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) p ( w N | w L(q )) ld ( p ( w N | w L(q ))) 0 ld (0) 1 ld (1) 0 H wL ( q ) ( B ) p ( w P | w L(q )) ld ( p ( w P | w L(q ))) P p ( w N | w L(q )) ld ( p ( w N | w L(q ))) 1 ld (1) 0 0 p ( w L(q )) p( w P | w L(q)) p( w P | w L(q)) p( w N | w L(q)) L(q ) P L(q ) N PN L( q ) P L(q ) P L(q ) N P \ L( q ) P \ L( q ) N \ L( q ) P \ L(q ) 0 1 1 11 2 aab L( q ) P 0 0 0 1 1 1 1 0 N bx1 L(q ) N L( q ) N 1 1 L( q ) P L(q ) N 0 1 N \ L(q ) 0 0 p( w N | w L(q)) P \ L(q ) N \ L( q ) 1 0 bb N \ L(q ) L(q ) 95 Anwendung des Algorithmus Beim ersten Aufruf des Algorithmus kommen wir in den else-Zweig wo wir alle Patterns mit minimaler Entropie auswählen RPat(M) = {aab, x1ab, ax1b, aax1, ax1, x1b, x1ax2, bb, bx1} { 0, 0, 0, 0, 0, 1, 0, 0, 0 } Hq(B)= Knoten* EBaum(Menge P, Menge N) { if(N = ) return [1,null,null]; else if(P = ) return [0,null, null]; else { Q : {q | q RPat ( P N ) (q , RPat ( P N ) : H q ( B) H q , ( B))}; q : (Element aus Q mit kürzester Länge); Pr : L(q ) P; N r : L(q ) N ; Pl : L(q ) P; N l : L(q ) N ; return [q, EBaum( Pl , N l ), EBaum( Pr , N r )]; } } 96 Anwendung des Algorithmus Beim ersten Aufruf des Algorithmus kommen wir in den else-Zweig wo wir alle Patterns mit minimaler Entropie auswählen Dann wählen wir das kürzeste Element (bzw. davon das erste) RPat(M) = {aab, x1ab, ax1b, aax1, ax1, x1b, x1ax2, bb, bx1} { 0, 0, 0, 0, 0, 1, 0, 0, 0 } Hq(B)= Knoten* EBaum(Menge P, Menge N) { if(N = ) return [1,null,null]; else if(P = ) return [0,null, null]; else { Q : {q | q RPat ( P N ) (q , RPat ( P N ) : H q ( B) H q , ( B))}; q : (Element aus Q mit kürzester Länge); Pr : L(q ) P; N r : L(q ) N ; Pl : L(q ) P; N l : L(q ) N ; return [q, EBaum( Pl , N l ), EBaum( Pr , N r )]; } } 97 Anwendung des Algorithmus Beim ersten Aufruf des Algorithmus kommen wir in den else-Zweig wo wir alle Patterns mit minimaler Entropie auswählen Dann wählen wir das kürzeste Element (bzw. davon das erste) Es ergeben sich folgende Mengen: Pr = {aab} = P Nr = Pl = Nl = {bb} = N Rekursion aufrufen für Pl mit Nl und für Pr mit Nr RPat(M) = {aab, x1ab, ax1b, aax1, ax1, x1b, x1ax2, bb, bx1} { 0, 0, 0, 0, 0, 1, 0, 0, 0 } Hq(B)= Knoten* EBaum(Menge P, Menge N) { if(N = ) return [1,null,null]; else if(P = ) return [0,null, null]; else { Q : {q | q RPat ( P N ) (q , RPat ( P N ) : H q ( B) H q , ( B))}; q : (Element aus Q mit kürzester Länge); Pr : L(q ) P; N r : L(q ) N ; Pl : L(q ) P; N l : L(q ) N ; return [q, EBaum( Pl , N l ), EBaum( Pr , N r )]; } } 98 In der Rekursion In der ersten Rekursion für den linken Sohn kommen wir in den Zweig mit P = Wir erhalten also ein Blatt mit dem Wert 0 ax1 Pl = Nl = {bb} = N Pr = {aab} = P Nr = 0 Knoten* EBaum(Menge P, Menge N) { if(N = ) return [1,null,null]; else if(P = ) return [0,null, null]; else { Q : {q | q RPat ( P N ) (q , RPat ( P N ) : H q ( B) H q , ( B))}; q : (Element aus Q mit kürzester Länge); Pr : L(q ) P; N r : L(q ) N ; Pl : L(q ) P; N l : L(q ) N ; return [q, EBaum( Pl , N l ), EBaum( Pr , N r )]; } } 99 In der Rekursion In der ersten Rekursion für den linken Sohn kommen wir in den Zweig mit P = Wir erhalten also ein Blatt mit dem Wert 0 Durch Rückkehr kommen wir in die zweite Rekursion (die für den rechten Sohn) Dort erreichen wir den Zweig für N = Wir erhalten also ein Blatt mit dem Wert 1 Der Baum ist fertig! Pl = Nl = {bb} = N ax1 1 0 Pr = {aab} = P Nr = Knoten* EBaum(Menge P, Menge N) { if(N = ) return [1,null,null]; else if(P = ) return [0,null, null]; else { Q : {q | q RPat ( P N ) (q , RPat ( P N ) : H q ( B) H q , ( B))}; q : (Element aus Q mit kürzester Länge); Pr : L(q ) P; N r : L(q ) N ; Pl : L(q ) P; N l : L(q ) N ; return [q, EBaum( Pl , N l ), EBaum( Pr , N r )]; } Klar: das war ein Trivialfall } 100 Verbesserung der Ergebnisse Ideal: möglichst deutliche/„einfache“ Muster in Beispielmengen P und N Verbesserungsmöglichkeiten: die zugrundeliegenden Daten anders messen, z.B.: das Datenformat ändern: (Monat[1..12],Tag[1..31],Jahr[00..99]) zu (Tag im Jahr[0..365], Jahr[00..99]) die Datenreihenfolge ändern: (T1T1T1T2T2T2J1J1J2J2...) zu (T1T1T1J1J1T2T2T2J2J2...) andere Daten von der gleichen Quelle messen, z.B.: nicht Datum und IP-Adresse speichern, sondern Datum und Kundennummer vorhandene Daten vorklassifizieren, z.B.: alle Einkäufe von Kunden erst in deren Altersgruppen zerlegen und dann nach Mustern suchen entspricht einer Alphabetreduzierung, da weniger „Buchstaben“ (im Beispiel das Alter) in der Sprache vorkommen 101 2.2 Regelbasierte Klassifikatoren DO Spezies BlutTyp Hautstruktur 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 warm kalt kalt warm kalt kalt warm warm warm kalt kalt warm warm kalt kalt Haar Schuppen Schuppen Haar keine Schuppen Haar Federn Fell Schuppen Schuppen Federn Stacheln Schuppen keine Mensch Python Lachs Wal Frosch Waran Fledermaus Taube Katze Guppy Alligator Pinguin Igel Aal Salamander gesucht Regelwerk, welches die Daten möglichst korrekt klassifiziert R1: R2: R3: R4: R5: lebend Wassergebärend bewohner ja nein nein ja nein nein ja nein ja ja nein nein ja nein nein nein nein ja ja halb nein nein nein nein ja halb halb nein ja halb gegeben Datensatz kann fliegen hat Beine hält Winterschlaf Klasse nein nein nein nein nein nein ja ja nein nein nein nein nein nein nein ja nein nein nein ja ja ja ja ja nein ja ja ja nein ja nein ja nein nein ja nein ja nein nein nein nein nein ja nein ja Säuger Reptil Fisch Säuger Amphibie Reptil Säuger Vogel Säuger Fisch Reptil Vogel Säuger Fisch Amphibie (lebend gebärend = nein) (kann fliegen = ja) Vogel (lebend gebärend = nein) (Wasserbewohner = ja) Fisch (lebend gebärend = ja) (Blut Typ = warm) Säuger (lebend gebärend = nein) (kann fliegen = nein) Reptil (Wasserbewohner = halb) Amphibie 102 Regel ri: Praemissei → Konklusioni Coverage( ri ) = Anz. DO mit wahrer Prämisse / Anz. aller DO Accuracy( ri ) = Anz. DO mit wahrer Prämisse und wahrer Konlusion / Anz. DO mit wahrer Prämisse Eine Regelmenge ist gegenseitig ausschließend, wenn es zu jedem DO höchstens eine Regel mit wahrer Prämisse gibt. Nicht gegenseitig ausschließende Regelmengen können zu KlassenzugehörigkeitsKonflikten führen, welche wie folgt behandelt werden können: Geordnete Regeln: Regeln werden nach Prioritäten (z.B. nach Accuracy oder Coverage) geordnet. Die höchste Priorität entscheidet die aus der Konfliktmenge anzuwendende Regel. Ungeordnete Regeln: Alle Regeln der Konfliktmenge werden angewandt. Die Häufigkeit der Konklusionen (ggf. gewichtet mit den Regel-Accuracies) entscheidet die zuzuordnende Konklusion. 103 Ordnungs-Schemata geordneter Regeln Regelbasierte Ordnung: Ordnung nach einem Regel-Qualitätsmaß (z.B. Accuracy) Klassenbasierte Ordnung: Regeln gleicher Konklusion (Klasse) werden gruppiert. Gruppen werden nach Konklusionen geordnet. Innerhalb einer Gruppe ist die Reihenfolge dann unwichtig, weil ohnehin die gleiche Konklusion zugeordnet wird. Eine Regelmenge ist vollständig, wenn jede Kombination von Attributwerten mindestens eine Regelprämisse wahr macht. Unvollständige Regelmengen werden oft durch eine Default-Regel mit leerer Prämisse („wahr“, wenn keine andere Prämisse wahr ist) und einer DefaultKonklusion ergänzt. Die meisten Regelgenerierungs-Algorithmen verwenden klassenbasierte Ordnung. 104 Regelgenerierungsverfahren: direkte / indirekte Regelextraktion Direkte Regelextraktion Reihenfolge der Behandlung der Klassen kann abhängig sein von Anzahl zugehöriger DO Kosten einer Fehlklassifikation für jede Klasse Häufigkeit des Auftretens dieser Klasse (unabh. vom Trainings-Set) Für eine Klasse DO dieser Klasse: positive Beispiele DO anderer Klassen: negative Beispiele Algorithmus E: Trainings Set Y = { y1 , y2 , ... , yk }: geordnete Menge (Liste) aller Klassen R := (initiale) Liste der Regeln for y = y1, ..., yk-1 do while Stopp Bedingung nicht zutreffend do r ← LearnOneRule( E , y ) entferne DO aus E, für welche die Prämisse von r wahr ist füge r der Regelmenge (am Ende) hinzu: R ← R ∪ { r } end while end for füge Default Regel true → yk ans Ende der Liste hinzu 105 Eine Regel (für die betrachtete Klasse) ist gut, wenn sie • alle (oder die meisten) positiven und • (fast) keine negativen Beispiele für diese Klasse abdeckt. Nachdem eine solche Regel gefunden wurde, werden die von ihr abgedeckten Beispiele aus dem Trainings-Datensatz entfernt: R1 R1 R2 (ii) Step 1 (iii) Step 2 (iv) Step 3 106 Regelgenerierungsstrategien • • top down (konklusionsgetrieben, general-to-specific) bottom up (prämissengetrieben, specific-to-general) top down Regelgenerierung • • • initiale Regel für eine Klasse yi: leere Liste (konjunktiv verknüpfter) Prämissen der Prämissenliste werden systematisch neue Prämissen hinzugefügt nächste Prämisse könnte z.B. ein Attribut sein, welches bei einem Wert • eine max. Anzahl DO der betrachteten Klasse und • eine min. Anzahl DO anderer Klassen abdeckt. bottom up Regelgenerierung • initiale Regel für eine Klasse yi wird aus einem DO dieser Klasse rekrutiert • • Regel wird systematisch generalisiert durch Entfernung von Prämissen Es werden solche Prämissen bevorzugt entfernt, durch deren Entfernung • eine max. Anzahl DO dieser Klasse und • eine min. Anz. DO anderer Klassen zusätzlich abgedeckt wird 107 108 Regel-Evaluierung zwecks Ermittlung geeigneter Attribute zum Hinzufügen / Entfernen Accuracy(r) zu verwenden ... ... ist nur auf den ersten Blick eine gute Idee, weil Coverage(r) unberücksichtigt bleibt: Betrachten wir einen Datensatz mit 60 positiven und 100 negativen DO. • Sei r1 eine Regel, welche 50 positive und 5 negative DO abdeckt. • Sei r2 eine Regel, welche 2 positive und kein negatives DO abdeckt. r2 hat die bessere Accuracy, aber r1 ist sicher die bessere Regel. 109 Regel-Evaluierung zwecks Ermittlung geeigneter Attribute zum Hinzufügen / Entfernen 1. Statistischer Test Ermittlung des Wahrscheinlichkeitsverhältnisses k fi ei R 2 k i 1 fi f i ld ei Anz. der Klassen Anz. der DO aus Klasse i, welche durch die Regel abgedeckt werden Anz. von DO aus Klasse i, welche durch eine beliebige Regel mit gleicher Coverage abgedeckt würden, Betrachten erneut den Datensatz mit 60 positiven und 100 negativen DO. • Sei r1 eine Regel, welche 50 positive und 5 negative DO abdeckt. • Sei r2 eine Regel, welche 2 positive und kein negatives DO abdeckt. r1 : f 50 f - 5 60 100 20.625 e - 55 34.375 160 160 50 5 R(r1 ) 2 50 ld 5 ld 99.9 20.625 34.375 e 55 r2 : f 2 f - 0 100 60 0.750 e - 2 1.250 160 160 2 0 R(r2 ) 2 2 ld 0 ld 5.66 0.750 1.250 e 2 110 Regel-Evaluierung zwecks Ermittlung geeigneter Attribute zum Hinzufügen / Entfernen 2. LAPLACE, m-estimate beziehen die Coverage einer Regel Bedingung Klasse = c mit ein n 1 Laplace(r ) c nk n nc k pc m estimate(r ) nc k pc nk Anz. der DO , welche durch die Regel abgedeckt werden Anz. der DO der Klasse c, welche durch die Regel abgedeckt werden Anz. der Klassen Anteil der DO der Klasse c im gesamten Trainings-Datensatz Für pc=1/k ist Laplace(r) = m-estimate(r). Betrachten erneut den Datensatz mit 60 positiven und 100 negativen DO. • Sei r1 eine Regel, welche 50 positive und 5 negative DO abdeckt ( Klasse = + ) • Sei r2 eine Regel, welche 2 positive und kein negatives DO abdeckt ( Klasse = + ) 50 1 2 1 Laplace(r1 ) 0.8947 Laplace(r2 ) 0.75 22 55 2 60 60 50 2 2 2 160 0.8904 m estimate(r ) 160 0.6875 m estimate(r1 ) 2 55 2 22 111 Regel-Evaluierung zwecks Ermittlung geeigneter Attribute zum Hinzufügen / Entfernen 3. FOIL‘s information gain kombiniert den Informationsgewinn einer Regelmodifikation mit der Coverage nach der Modifikation p p 0 1 ld FOIL's information gain p1 ld p0 n0 p1 n1 Erweitert man eine Regel von r: A → + zu r´: A ∧ B → + , so ist p0 Anz. der pos. DO, welche durch r abgedeckt werden n0 Anz. der neg. DO, welche durch r abgedeckt werden p1 Anz. der pos DO, welche durch r´ abgedeckt werden n1 Anz. der neg. DO, welche durch r´ abgedeckt werden Betrachten erneut den Datensatz mit 60 positiven und 100 negativen DO. • Initial sei r: true + • Sei r1´ eine Regel, welche 50 positive und 5 negative DO abdeckt. • Sei r2´ eine Regel, welche 2 positive und kein negatives DO abdeckt. 50 60 FOIL(r1 ' ) 50 ld ld 63.87 160 55 2 60 FOIL(r2 ' ) 2 ld ld 2.83 160 2 112 • Stopp-Kriterium des Regelgenerierungs-Algorithmus (page 105) • • • Regel Pruning • • Berechne den Gewinn einer neuen Regel (statistisch, Laplace, m-estimate, FOIL‘s information gain) Ist der Gewinn nicht signifikant, verwirf die neue Regel und stoppe den Algorithmus Analog zu den Entscheidungsbaum-Generierungs-Methoden neigen auch Regelgenerierungs-Methoden zum Overfitting (siehe page 54 ff) und bedürfen ähnlicher Pruning Methoden (siehe page 60 ff). Algorithmische Aspekte • • • Der Regel – Generierungs - Algorithmus (siehe page 105) sieht ein Entfernen derjenigen DO vor, die durch die gerade generierte Regel bereits abgedeckt werden. Solche Abdeckungen können sich auch überschneiden. Die Bewertung der inkrementellen Verbesserung durch eine neue Regel ist daher nur auf der Basis des Datensatzes nach der Entfernung bereits abgedeckter DO realistisch. 113 RIPPER Algorithmus • weit verbreitet • geeignet für unbalancierte Klassenverteilung der DO • geeignet für verrauschte Daten • Overfitting wird durch ein Validation Set vermieden • 2-Klassen Problem • mehrheitl. Klasse wird als default gesetzt • • Regeln für die Minderheits - Klasse werden generiert Multi-Klassen Problem • Klassen werden nach steigender Häufigkeit sortiert: [y1 , y2 , ..., yc ] • RIPPER beginnt mit der seltensten Klasse y1 • im i-ten Durchlauf werden Regeln für yi generiert, wobei • DO für yi als pos. DO und • alle anderen (yi+1, yi+2 ... yc) als neg. DO eines 2-Klassen Problems behandelt werden • es gibt c-1 Durchläufe, yc ist dann die default Klasse 114 RIPPER Algorithmus • • • • • • top-down Regelgenerierung (siehe page 107) FOIL‘s information gain wird genutzt, um die beste Prämisse zur weiteren Verfeinerung der Regel auszuwählen stoppt die Hinzufügung von Prämissen, wenn keine neg. DO abgedeckt werden nach Generierung einer Regel wird diese geprunt (s.u.), danach die durch sie abgedeckten DO entfernt und die Regel hinzugefügt Generierung neuer Regeln stoppt, wenn 1. eine hinzuzufügende Regel eine Description Length (ähnlich der bei Entscheidungsbäumen, siehe page 63) der Regelmenge um mind. d Bits erhöht (default: d = 64) oder 2. die Fehlklassifikations-Rate einer generierten Regel im Validation Set 50 % überschreitet post-Pruning jeder neuen Regel r ϵ R mit Hilfe eines Validation Sets • Metrik: vripper = (p-n)/(p+n) mit p = Anz. der pos. DO und n = Anz. der neg. DO (≈ accuracy im Validation Set) • verbessert (vergrößert) sich diese Metrik durch Entfernung einer Prämisse, wird diese auch entfernt • Pruning beginnt mit der letzten Prämisse und prüft Prämissen von hinten nach vorn (von der letzten bis zur ersten) • während r vor dem Pruning nur pos. DO abdeckt, deckt r nach dem Pruning pos. und neg. DO des Trainings-Sets ab. 115 Regelgenerierungsverfahren: direkte / indirekte Regelextraktion Indirekte Regelextraktion Es wird zunächst ein Entscheidungsbaum generiert, welcher dann zu Regeln transformiert wird. einfacher Ansatz: aus jedem Pfad eine Regel generieren: 116 Indirekte Regelextraktion Dieser Ansatz lässt sich optimieren, z.B. r2 r3 r5 (P=no) (Q=yes) → + (P=yes) (R=no) → + (P=yes) (R=yes) (Q=yes) → + zu r2‘ (Q=yes) → + r3 (P=yes) (R=no) → + beide Regelmengen beschreiben dieselbe BOOLEsche Funktion: P Q R no no no no no yes no yes no + no yes yes + yes no no + yes no yes yes yes no + yes yes yes + 117 Indirekte Regelextraktion Ansatz des C4.5 Regelgenerierungs-Algorithmus Regelgenerierung • Es wird zunächst aus jedem Pfad des Entscheidungsbaums eine Regel generiert. • Für die Entfernung jeder Konjunktion in der Prämisse wird die Pessimistic Error Rate (ähnlich der für Bäume, siehe Folie 61 f.: Anz. fehlklassifizierter DO + Malus für jede Prämisse) ermittelt. • Diejenige Regel-Verkürzung, die zur kleinsten Pessimistic Error Rate führt, wird genommen, falls sich dadurch eine bessere Error Rate (über dem Validation Set) als die der Original-Regel ergibt. • Die so entstandene verkürzte Regel wird demselben Verfahren unterzogen usw., bis sich in einem Durchlauf bei keiner Verkürzung eine Verbesserung ergibt. • Dabei können Regeln identisch werden. Deshalb werden mehrfach vorkommende Regeln entfernt. 118 Indirekte Regelextraktion Ansatz des C4.5 Regelgenerierungs-Algorithmus Regelsortierung • klassenbasiert, Regeln derselben Klasse werden gruppiert • Gruppen werden nach steigender Total Description Length (ähnlich wie bei Bäumen, siehe Folie 63) sortiert • Description Length = Lexception + g * Lmodel mit • Lexception Anz. Bits, die man zum Kodieren der fehlklassifizierten DO braucht • Lmodel Anz. Bits, die man zur Kodierung des Modells (der Regeln) benötigt (viele und/oder lange Regeln führen zu hohen Werten) •g Tuning-Parameter, welcher um so kleiner ist, je mehr redundante Attribute im Modell enthalten sind, default Wert: 0.5 119 Beispiel zum Vergleich von indirekter (C 4.5) und direkter (RIPPER) Methode Name human python salmon whale frog komodo bat pigeon cat leopard shark turtle penguin porcupine eel salamander gila monster platypus owl dolphin eagle Give Birth yes no no yes no no yes no yes yes no no yes no no no no no yes no Lay Eggs no yes yes no yes yes no yes no no yes yes no yes yes yes yes yes no yes Can Fly no no no no no no yes yes no no no no no no no no no yes no yes Live in Water Have Legs no no yes yes sometimes no no no no yes sometimes sometimes no yes sometimes no no no yes no yes no no no yes yes yes yes yes no yes yes yes no yes yes yes yes no yes Class mammals reptiles fishes mammals amphibians reptiles mammals birds mammals fishes reptiles birds mammals fishes amphibians reptiles mammals birds mammals birds 120 Ergebnis C4.5 Regeln (aus Entscheidungsbaum und anschl. Pruning): (Give Birth=No) (Can Fly=Yes) Birds (Give Birth=No) (Live in Water=Yes) Fishes (Give Birth=Yes) Mammals (Give Birth=No) (Can Fly=No) (Live in Water=No) Reptiles ( ) Amphibians Entscheidungsbaum Give Birth? No Yes Live In Water? Mammals Yes No RIPPER Regeln (dirkekt top down aus Trainings-DOs generiert) (Live in Water=Yes) Fishes (Have Legs=No) Reptiles (Give Birth=No) (Can Fly=No) (Live In Water=No) Reptiles (Can Fly=Yes) (Give Birth=No) Birds () Mammals Sometimes Fishes Can Fly? Amphibians Yes Birds No Reptiles 121 C4.5 Regeln versus RIPPER Regeln korrekte - vs. Fehlklassifikationen (über dem Trainings-Set) C4.5 Regeln: tatsächliche Klasse ermittelte Klasse Amphibians Fishes Reptiles Birds Amphibians 2 0 0 Fishes 0 2 0 Reptiles 1 0 3 Birds 1 0 0 Mammals 0 0 1 0 0 0 3 0 Mammals 0 1 0 0 6 0 0 0 2 0 Mammals 2 0 1 1 4 RIPPER Regeln: tatsächliche Klasse ermittelte Klasse Amphibians Fishes Reptiles Birds Amphibians 0 0 0 Fishes 0 3 0 Reptiles 0 0 3 Birds 0 0 1 Mammals 0 2 1 122 Vorteile regelbasierter Klassifikatoren bzgl. Ausdruckfähigkeit gleich gut wie Entscheidungsbäume leicht interpretierbar leicht zu generieren können neue DO schnell klassifizieren (geringe Zeitkomplexität) Performance vergleichbar mit Entscheidungsbäumen 123 2.3 Nearest Neighbour Klassifikation (kNN) „eifrige“ Lerner lernen ein Modell (Entscheidungsbaum, Regel-Set, …), sobald die Trainings-DO verfügbar sind „faule“ Lerner modellieren die Trainingsdaten erst dann, wenn eine KlassifikationsAufgabe ansteht - so auch kNN Idee Klasse ergibt sich aus den Klassen der nächsten Nachbarn im Trainings Set, z.B. mehrheitlich vertretene Klasse (ggf. mit der Ähnlichkeit gewichtete) Durchschnitts - Klasse Ansatz jedes Trainings-DO repräsentiert einen Punkt im d-dimensionalen Raum (d: Anz. der Attribute) für jedes neue DO wird eine Ähnlichkeit zu allen Trainings-DO ermittelt die k ähnlichsten DO des Trainings-DO bestimmen die Klasse des neuen DO Ähnlichkeitsmaße (siehe Folie 13 ff): Distanzmaße im Euklidischen Raum (Manhattan City Block Distance L1, Euclidian Distance L2, Supremum L∞) Übereinstimmungsmaße bei binären Attributen (Simple Matching Coefficient, Jaccard Coefficient) Richtungsmaße im Euklidischen Raum (Kosinus-, Dice-, Tanimoto-, Overlap-Koeffizient) lineare Abhängigkeit zwischen Attribut-Werten 2er DO (Korrelation) 124 Beispiel 2 reell- wertige Attribute x1, x2 2 rational – wertige Klassen Klasse = 1 und Klasse = 2 Ähnlichkeitsmaß: Euklidische Distanz (L2 – norm) x2 neues DO Trainings-DO Klasse = 1 Klasse = 2 k=1 1,0 k=5 1,6 x1 125 noch ein Beispiel 2 reell- wertige Attribute x1, x2 2 binäre Klassen + und Ähnlichkeitsmaß: Euklidische Distanz (L2 – norm) X (a) 1-nearest neighbor X X (b) 2-nearest neighbor (c) 3-nearest neighbor 126 Wie wählt man ein passendes k ? k zu klein ⇒ anfällig für Overfitting k= 1 könnte z.B. genau einen „Ausreißer“ erwischen, obwohl alle anderen Trainings-DO der Umgebung eine andere Klassenzugehörigkeit haben k zu groß ⇒ anfällig für Underfitting: in der Praxis: 2 ≤ k ≤ 6 127 Jedes Element der Menge kNN(x‘) der k nächsten Nachbarn eines zu klassifizierenden DO z = [x‘, y‘] hat den gleichen Einfluss auf die Klassenzugehörigkeit y‘ ⇒ hohe Sensibilität bzgl. k ⇒ Verringerung dieser Sensibilität durch Wichtung jedes der k Nachbarn xi mit seiner inversen quadratischen Distanz zum (der Ähnlichkeit mit dem) zu klassifizierenden DO x‘ und Ermittlung derjenigen Klasse y‘∈ v, welche dabei die höchste Summe aller Gewichte erhält: 1 y ' arg max ord (v yi ) 2 v [ xi , yi ] kNN ( x ') d ( x ' , xi ) mit 1 , falls prop true ord ( prop ) 0 , falls prop false 128 Darstellung der Klassenzuordnung im d-dimensionalen Raum Voronoi-Diagramm Beispiel k=3 drei Klassen: 1,2, 3 Ähnlichkeitsmaß: Euklidische Distanz (L2 Norm) einfache Mehrheit entscheidet die Klassenzugehörigkeit keine Gewichtung der k ähnlichsten DO grauer Bereich: keine Mehrheit 129 Darstellung der Klassenverteilung im d-dimensionalen Raum Voronoi-Diagramm noch ein Beispiel (gleiche Trainings - DO) k=3 drei Klassen: 1,2, 3 Ähnlichkeitsmaß: Euklidische Distanz (L2 Norm) größte Summe der Klassengewichte entscheidet die Klassenzugehörigkeit Gewichtung der k ähnlichsten DO mit ihrer inversen quadratischen Distanz 130 2.4 Bayes’sche Klassifikation geg. • Menge von DO I • k-dimensionaler Raum von Attributen, in welchem jedem DO i I ein Punkt zugeordnet werden kann • Partitionierung von I in disjunkte Objektklassen C = { c1 , ... , cn } • Trainings Set E I : DO mit bekannter Klassenzugehörigkeit ges. • wahrscheinlichste Klassenzugehörigkeit für ein neues DO (ohne ein Modell zu bilden) Bayes’sche Klassifikation ist auch eine “fauler“ Lerner (wie kNN) Parallelen zum Case Based Reasoning (CBR) CBR basiert auf einer Fallbasis, in welcher (a) der “ähnlichste Fall” ermittelt wird und (b) dessen Lösung zur Lösung des neuen Falles adaptiert wird Hier degeneriert (a) zum “wahrscheinlichsten” Fall und (b) zur Kopie von dessen Lösung 131 Ein Beispiel Gegeben sei • eine Menge von DO: Bewohner der Stadt Ilmenau • ein 3-dimensionaler Raum von Attributen: Abbildung Merkmalsraum • 4 disjunkte Klassen: Bewohner mit einem täglichen Fernsehkonsum von (1) weniger als 1 Stunde (2) >1 – 2 Stunden (3) >2 – 3 Stunden und (4) mehr als 3 Stunden • Trainings Set mit 20 Beispielen: Tabelle Beispielmenge Gesucht ist • die wahrscheinlichste Klassenzugehörigkeit eines 25-jährigen berufstätigen Bewohners mit mittlerem Einkommen Einkommen Attributsraum: hoch mittel gering Berufsstand pensioniert arbeitslos berufstätig 18-40 >40-60 >60 Alter 132 Training Set Alter Einkommen Berufsstand Klasse Alter Einkommen Berufsstand Klasse 22 durchschnittlich berufstätig >1 – 2 h 33 gering arbeitslos >3 h 43 hoch berufstätig >1 – 2 h 36 hoch berufstätig >1 – 2 h 45 gering berufstätig >1 – 2 h 25 gering arbeitslos 1h 76 durchschnittlich pensioniert >3 h 47 durchschnittlich berufstätig 1h 34 gering arbeitslos >1 – 2 h 45 hoch berufstätig >2 – 3 h 34 durchschnittlich berufstätig >2 – 3 h 63 durchschnittlich pensioniert >3 h 56 hoch berufstätig >3 h 51 hoch berufstätig >1 - 2 h 32 durchschnittlich berufstätig >1 – 2 h 60 durchschnittlich pensioniert >1 – 2 h 23 gering arbeitslos >2 – 3 h 31 gering arbeitslos >1 – 2 h 65 durchschnittlich pensioniert >2 – 3 h 39 durchschnittlich berufstätig >2 – 3 h 133 BAYES‘sche Formel (hier: logisch interpretiert, Literatur: mengenalgebraisch notiert) 1. Seien A und B Aussagen über das Eintreffen von (nicht unmöglichen) Ereignissen sowie p(A) und p(B) Wahrscheinlichkeiten des Eintreffens mit 0 < p(A),p(B) 1 . 2. Die bedingte Wahrscheinlichkeit von A unter der Bedingung B ist p( A | B) p( A B) p( B) 3. Sei = B1 ... Bn ein sicheres Ereignis, bestehend aus paarweise unvereinbaren n Ereignissen B1, ..., Bn : p ( B1 ... Bn ) p ( Bi ) 1 , p ( Bi B j ) 0 für i j i 1 4. Für ein zufälliges Ereignis A gilt: A A A ( B1 B2 ... Bn ) 5. Lt. 2. ist n n n i 1 i 1 i 1 p ( A) p( A ) p( A) p ( Bi ) p ( A Bi ) p( Bi ) p ( A | Bi ) Fragt man nach der Wahrscheinlichkeit eines Ereignisses Bi unter der Bedingung, dass A bereits eintrat (Wahrscheinlichkeit a posteriori), ergibt sich p ( Bi | A) BAYES‘sche Formel p ( Bi A) p ( Bi ) p ( A | Bi ) p ( A) p( A) p ( Bi ) p ( A | Bi ) n p( B ) p( A | B ) i 1 i i 134 2.4.1 Naïve BAYES Klassifikation geg. • Beispiele, d.h. DO mit bekannten Werten für alle Attribute Ai (i=1,..,n) und bekannter Klassenzugehörigkeit Bj (j=1,..,k) ges. • wahrscheinlichste Klasse C {B1,...,Bk} für ein neues DO mit bekannten Werten für alle Attribute Ai C B j : max{ p ( B j | A1 ,..., An )} B j : max{ p ( A1 ,..., An | B j ) p ( B j ) p ( A1 ,..., An ) } B j : max{ p ( A1 ,..., An | B j ) p ( B j )} n B j : max{ p ( Ai | B j ) p ( B j )} i 1 lt. BAYES‘sche Formel Vernachlässigung der Division wegen gleichen Nenners Unterstellung der Unabhängigkeit der Attribute, so dass deren UND-Verknüpfung die Wahrscheinlichkeiten multipliziert 135 zurück zum Beispiel Attribute Klassen • Alter { 18-40 , >40-60 , >60 } • Einkommen { gering , durchschnittlich , hoch } • Berufsstand { berufstätig , pensioniert , arbeitslos } • • • • Beipiele siehe Folie 133 B1: 1 h tgl. TV Konsum B2: >1-2 h tgl. TV Konsum B3: >2-3 h tgl. TV Konsum B4: > 3 h tgl. TV Konsum ges.: wahrscheinlichste Klassenzugehörigkeit eines Bewohners mit den Attributwerten A1: Alter = 25 A2: Einkommen = durchschnittlich A3: Berufsstand = berufstätig Wahrscheinlichkeiten, geschätzt als relative Häufigkeit im Trainings Set Zeilenprodukt P(A1|B1): 1/2 P(A2|B1): 1/2 P(A3|B1): 1/2 P(B1): 2/20 0,01250 P(A1|B2): 5/9 P(A2|B2): 3/9 P(A3|B2): 6/9 P(B2): 9/20 0,05556 P(A1|B3): 3/5 P(A2|B3): 3/5 P(A3|B3): 3/5 P(B3): 5/20 0,05400 P(A1|B4): 1/4 P(A2|B4): 2/4 P(A3|B4): 1/4 P(B4): 4/20 0,00625 Maximum aller Produkte 0,05556 (aus B2) Der Bewohner gehört am wahrscheinlichsten zur Klasse B2 (>1-2 h tgl. TV Konsum). 136 Verfeinerung für zu kleine Trainings-Sets: m-estimate Schätzung der Wahrscheinlichkeiten statt relative Häufigkeit geschätzte Wahrscheinlichkeit, zur Klasse Bi zu gehören, für welche es ni (von n) DO im Trainings Set gibt, wird um eine gewichtete a priori (z.B. aus vorherigen Beobachtungen/Messreihen) geschätzte Wahrscheinlichkeit p’ ergänzt Als Wichtung dient eine sog. “equivalent sample size” m Im Extremfall eines leeren Trainings Sets, ni = 0 and n = 0 und somit p = p’ p • • • • ni n m p’ ni n p ni m p ' nm Anzahl der DO, die zur Klasse i gehören Gesamtzahl der DO equivalent sample size, Wichtung von p’ a priori (z.B. von vorherigen Beobachtungen) geschätzte Wahrscheinlichkeit - könnte notfalls auch als Gleichverteilung aller Klassen geschätzt werden 137 Problem mit Naïve Bayes: korrelierende Attribute Betrachten wir ein 2-Klassen Problem (+ und -) mit 2 binären Attributen A und B mit p(A=0|-) = 0.4 , p(A=1|-) = 0.6 p(A=0|+) = 0.6 , p(A=1|+) = 0.4 Möge B in der Klasse - perfekt mit A korrelieren (B=A), aber in der Klasse + immer entgegengesetzt zu A sein Der Einfachheit halber gelte p(+) = p(-) B hat die selben bedingten Wahrscheinlichkeiten wie A (siehe oben): p(B=0|-) = 0.4 , p(B=1|-) = 0.6, p(B=0|+) = 0.6 , p(B=1|+) = 0.4 Im naïve Bayes Ansatz ist dann p(-|A=0,B=0) = p(A=0|-) p(B=0|-) * p(-) / p(A=0, B=0) = 0.16 * p(-) / p(A=0, B=0) p(+|A=0,B=0) = p(A=0|+) p(B=0|+) * p(+) / p(A=0, B=0) = 0.36 * p(+) / p(A=0, B=0) und + würde als die wahrscheinlichste Klassenzugehörigkeit ermittelt werden. Die Wirklichkeit sieht jedoch anders aus: p(A=0,B=0|-) = p(A=0|-) = 0.4, weil B in Klasse – stets den gleichen Wert wie A hat Demnach ist p(-|A=0,B=0) = p(A=0,B=0|-) p(-) / p(A=0,B=0)= 0.4* p(-) / p(A=0, B=0) (und nicht 0.16 wie im naïve Bayes kalkuliert) und – ist die wahrscheinlichste Klasse Lösung dieses Problems: Analyse der Abhängigkeiten zwischen Attributen Bayesian Belief Networks 138 2.4.2 Bayesian Belief Network (BBN) = gerichteter Graph Knoten repräsentieren Attribute A1, A2, ..., An Kante von Ai nach Aj bedeutet (Aj ist abhängig von Ai) Knoten sind Wahrscheinlichkeitstabellen zugeordnet: • Knoten ohne Vorgänger: a priori Wahrscheinlichkeiten für die verschiedenen Ausprägungen des Attributs • Knoten mit Vorgänger: bedingte Wahrscheinlichkeiten Bedingungen beziehen sich auf die verschiedenen Werte der Attribute der Vorgänger-Knoten • binäre Attribute - Tabelle enthält meist nur (bedingte) Wahrscheinlichkeit p(x) für eine der beiden Werte x, die Wahrscheinlichkeit für den Alternativwert ergibt sich aus p ( x) 1 p ( x) 139 ‘n Beispiel (alle Attribute binär) Hk=yes S=yes D=healthy 0.25 S=yes D=unhealthy 0.45 S=yes 0.7 Sport Diät D=healthy 0.25 Sb=high S=no D=healthy 0.55 S=no D=unhealthy 0.75 Herzkrankheit Sodbrennen D=healthy 0.2 D=unhealthy 0.85 Bs=yes Brustschmerz RR=high Beispiele Hk=yes 0.85 Hk=no 0.2 p(S=no) = 0.3 p(Sb=high|D=healthy) = 0.2 Blutdruck Hk=yes Sb=yes 0.8 HK=yes Sb=no 0.6 HK=no Sb=yes 0.4 HK=no Sb=no 0.1 p(Sb=low|D=unhaelthy) = 0.15 p(Hk=yes|(S=no)(D=healthy)) = 0.55 p(Bs=no|(Hk=yes)(Sb=no)) = 0.4 140 ‘n Algorithmus zur Konstruktion eines BBN A := [X1, X2, …, Xn] sei eine (anwendungs-spezfisch) sortierte Liste v. Attributen for i=1 to n do XA(i) sei das i-te Attribut in A (XA(i)) = {XA(1) , XA(2) , …, XA(i-1)} sei die Menge der XA(i) vorangestellten Attribute entferne Attribute aus (XA(i)), die (in der Anwendung) keinen Einfluss auf Ai haben füge je eine Kante von den verbleibenden Variablen in (XA(i)) zu XA(i) hinzu end (for) Sortiert man für‘s o.g. Beispiel im Schritt 1 die Attribute zu [S, D, Hk, Sb, Bs, RR] , so vereinfacht sich in der for - Schleife p(D | S) zu p(D) p(Hk | S D) nicht p(Sb | Hk SD) zu p(Sb | D) p(Bs | SbHkSD) zu p(Bs | SbHk) p(RR | BsSbHkSD) zu p(RR | Hk) 141 2.5 Support Vector Machines Ziel Finden einer Hyperebene, welche DO verschiedener Klassen voneinander separiert Beispiel: 2 Klassen, 2 Attribute 142 eine Lösung noch eine Lösung weitere Lösungen Welche dieser beiden Lösungen ist besser, B1 oder B2? 143 Eine Hyperebene (Klassengrenze), welche den Abstand zum nächstgelegenen DO in jeder der beiden Klassen maximiert, ist optimal. B1 ist besser als B2 144 Lineare SVM, DO linear separierbar Beispiel 2 Klassen: -1 (Quadrate), +1 (Kreise), n Attribute n Beschreibung der Klassengrenze im R w x b 0 w x b 1 w x b 1 Funktion, welche die Klasse f(x) für ein DO x berechnet: 1 f (x) 1 if w x b 1 if w x b 1 w ( x1 x2 ) 2 || w || d 2 2 Abstand d 2 ||w|| 145 zu maximieren: 2 Abstand 2 || w || äquivalent zur Minimierung von 2 || w || L ( w) 2 unter den Randbedingungen: 1 f ( xi ) 1 if w x i b 1 if w x i b 1 = Optimierungsproblem (quadratische Optimierung) 146 Was kann man tun, wenn die DO nicht linear separierbar sind? = Man bindet so genannte Slack-Variablen ξ in die Optimierung ein ξ ist der maximaler Abstand eines falsch klassifizierten DO Abschätzung des Fehlers der Hyperebene über den Trainingsdaten zu minimieren: 2 || w || N L( w) C i 2 i 1 1 f ( xi ) 1 unter den Randbedingungen C ist anwendungs-spezifisch: if w x i b 1 - i if w x i b 1 i Maß der Bestrafung von Fehlklassifikationen über den Trainingsdaten 147 Was kann man tun, wenn die Hyperebene nicht linear ist? Man wendet eine nicht lineare Variablen - Transformation Φ an, durch welche die Hyperebene linear wird transformiert man z.B. einen 2dimensionalen Raum in einen 5dimensionalen Raum mit : ( x1 , x2 ) ( x12 , x22 , 2 x1 , 2 x2 , 2 x1 x2 ) ergibt sich im transformierten 5-dimensionalen Raum ein Linearkoeffizient w=[w0 ,w1 ,w2 ,w3 ,w4 ,w5 ] so dass w5 x12 w4 x22 w3 2 x1 w2 2 x2 w1 2 x1 x2 w0 0 148 Variablen - Transformation zwecks Linearisierung der trennenden Hyperebenen (.) tatsächlicher Raum ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) transformierter Raum 149 ‘n Beispiel zur „Ebnung“ einer Hyperebene Die Transformation mit x1´ =x12-x1 und x2´= x22-x2 macht aus elliptisch (quadratisch beschreibbaren) verlaufenden Klassengrenzen im Raum R linear beschreibbare Klassengrenzen im transformierten Raum Rt Φ: (x1 , x2 ) → ( x1´, x2´) c2 x2 c1 x1 c0 0 Gerade im R t c2 ( x22 x2 ) c1 ( x12 x1 ) c0 0 1 1 1 1 c2 ( x22 x2 ) c1 ( x12 x1 ) c0 c1 c2 4 4 4 4 1 2 1 2 1 1 c2 ( x2 ) c1 ( x1 ) c0 c1 c2 4 4 2 2 c2 1 c1 1 ( x2 ) 2 ( x1 ) 2 1 1 1 1 1 2 2 c0 c1 c2 c0 c1 c2 4 4 4 4 Ellipse im R Die Ellipse in R hat demnach den Mittelpunkt (-0.5,-0.5) und die Achsen in x1 – und x2 – Richtung haben die Durchmesser 1 1 c0 c1 c2 4 4 d1 2 c1 1 1 c0 c1 c2 4 4 d2 2 c2 150 n‘ Beispiel zur „Ebnung einer Ellipse“ durch Variablen - Transformation aus Tan/Steinbach/Kumar: Introduction to Data Mining. Pearson Education Inc. 151 2.6 Ensemble Methoden Idee mehrere Modelle über dem Trainings Set bilden deren Ergebnissen zu einem Klassifikationsergebnis kombinieren D D1 D2 originale Trainingsdaten Dt-1 Schritt 1 mehrere Datensätze erzeugen Dt Schritt 2 mehrere Modelle erzeugen neues DO C1 C2 Ct-1 C* Ct Schritt 3 Ergebnisse einholen und kombinieren 152 Vorteil bessere Performance als jedes einzelne Modell Beispiel man bilde 25 binäre Klassifikatoren C1, ..., C25 jedes dieser Modelle habe eine (relativ hohe) Fehler-Rate von e( Ci )=0.35 C* ermittelt die Mehrheit der Entscheidungen maximal 12 Modelle haben eine andere Klasse ermittelt 25 Die max. Fehler-Rate von C* ist dann e(C*) e(Ci ) i (1 e(Ci )) 25i 0.06 i 13 i 25 Verhältnis zwischen den Fehler-Raten e(Ci ) und e(C*) bei verschiedenen e(Ci ) 0.35 „Ensembeln“ lohnt 153 Generierung der Trainingsdaten Di für die Modelle Ci Bagging = „Bootstrap aggegation“, d.h. zufälliges Ziehen mit Zurücklegen kann für die Di parallel durchgeführt werden jedes DO kann mit einer Wahrscheinlichkeit von (1-1/n)n gezogen werden Boosting Idee: vorrangig solche DO als Trainings-DO nehmen, welche schwer zu klassifizieren sind wichtet die Trainings-DO und zieht vorzugsweise solche DO mit hoher Wichtung; initial sind alle DO gleich gewichtet arbeitet sequentiell, nach jeder Runde wird neu gewichtet und das nächste TrainingsSet Di generiert Gewichte für korrekt klassifizierte DO werden verringert; Gewichte für falsch klassifizierte DO erhöht nach der letzen Boosting Runde wird C* ermittelt; diverse Methoden der Ermittlung von C* : Mehrheit gewichtete Mehrheit, Wichtung nach ... dem Gewicht der am Modell Ci beteiligten DO Sequenz (zuletzt kreierte Modelle sind u.U. besser, weil sie sich zielgerichtet den Schwächen vorheriger Runden zuwenden) Performance der Modelle Ci über dem Test-Datensatz 154 2.7 Das Class Imbalance Problem Anwendungen mit sehr unbalancierten Klassenzugeörigkeiten: Qualitätskontrolle: defekte vs. intakte Produkte Kreditkarten Transaktionen: Betrug vs. rechtmäßige Transaktionen HIV-Test: positiv vs. negativ … korrekte Klassifikation der seltenen Klasse ist wichtiger als bei der häufigen Klasse ein Klassifikator, welcher z.B. einfach alle DO der häufigen Klasse zuordnet, hätte eine u.U. eine sehr hohe Genauigkeit (Accuracy) Performance-Metriken müssen das berücksichtigen alternative Metriken (2.7.1) graphische Methoden für das trade-off zwischen den Korrektheitsraten beider Klassen (2.7.2) die seltene Klasse wird meist sehr spezialisiert beschrieben lange Regeln mit vielen Prämissen, große Tiefe in einem Entscheidungsbaum, … diese spezialisierte Modellierung ist anfällig gegenüber verrauschten Trainingsdaten Erkennung der seltenen Klasse muss verbessert werden Cost-Sensitive Learning (2.7.3) Sampling – basierte Ansätze (2.7.4) 155 2.7.1 Alternative Metriken Termini für binäre Klassifikation: seltene Klasse: positive Klasse (+) häufige Klasse: negative Klasse (-) Anzahl korrekt klassifizierter positiver DO: true positive (TP) Anzahl der als negativ klassifizierten positiven DO: false negative (FN) Anzahl der als positiv klassifizierten negativen DO: false positive (FP) Anzahl korrekt klassifizierter negativer DO: true negative (TN) Konfusionsmatrix: Klassifizierung durch das Modell tatsächliche Klasse + - + - f+ + (TP) f+ - (FN) f- + (FP) f- - (TN) mitunter auch als relative Werte angegeben: Anteil korrekt klassifizierter pos. DO: true positive rate (TPR), sensitivity: TPR = TP / (TP+FN) Anteil der als neg. klassifizierten pos. DO: false negative rate (FNR): FNR = FN / (TP+FN) Anteil der als pos. klassifizierten neg. DO: false positive rate (FPR): FPR = FP / (TN+FP) Anteil korrekt klassifizierter neg. DO: true negative rate (TNR), specificity: TNR = TN / (TN+FP) f+ + f+ f- + f- - 156 2.7.1 Alternative Metriken Metriken Precision Anteil der wirklich pos. DO an den als pos. klassifizierten DO p = TP / (TP + FP) Recall Anteil der als pos. klassifizierten DO an den wirklich pos. DO (= TPR) r = TP / (TP + FN) wünschenswert: hohe Precision + hohes Recall Recall erscheint auf den ersten Blick für viele Anwendungen wichtiger, aber ... ... der „Preis“ dafür ist eine geringe Precision (hohe Anzahl „falscher Alarme“) Kompromiss: F1 – Metrik entspr. harmon. Mittelwert zw. r und p: μh = 2 / (1/r + 1/p) ≤ geometrisches Mittel μg=√rp ≤ arithmet. Mittel μa =(r+p)/2 tendenziell näher an den kleineren Werten als μg und μa F1 2 1 1 r p 2rp 2 TP r p 2 TP FP FN 157 2.7.1 Alternative Metriken Fβ – Metrik Kompromiss, abstrakter: ( 2 1)rp ( 2 1) TP F 2 2 r p ( 1) TP 2 FP FN β=0 → Precision β=1 → harmon. Mittel, F1 - Metrik β=∞ → Recall Kompromiss, noch abstrakter: weighted accuracy WA w1 TP w4 TN WA w1 TP w2 FP w3 FN w4 TN w1 w2 w3 w4 Recall 1 1 0 0 Precision 1 0 1 0 Fβ β2 + 1 β2 1 0 F1 2 1 1 0 Accuracy 1 1 1 1 Gewicht 158 2.7.2 Receiver Operating Characteristic (ROC) Kurve graph. Veranschaulichung des „trade – off“ zwischen FPR (x-Achse) und TPR (y-Achse) Extremwerte: FPR = 0, TPR = 0: das Modell ordnet jedem DO die negative Klasse (-) zu FPR = 1, TPR = 1: das Modell ordnet jedem DO die positive Klasse (+) zu FPR = 0, TPR = 1: ideales Modell TPR = FPR (Diagonale in graph. Darstellung): zufälliges Zuordnung einer Klasse … mit einer festen Wahrscheinlichkeit p, bei n+ pos. und n- neg. DO: TPR p n p n FPR p n p n TPR FPR je weiter links (nahe FPR=0) und je weiter oben (nahe TPR=1) die Kurve liegt, desto besser ist das Modell ‘n Beispiel: für FPR ≤ 0,36: M1 ist besser als M2 für FPR > 0,36: M2 ist besser als M1 Fläche unterhalb der ROCKurve ist ein Maß der durchschnittlichen Performance eines Modells 159 2.7.2 Receiver Operating Characteristic (ROC) Kurve Wie zeichne ich eine ROC Kurve? 1. 2. Man braucht ein reell-wertiges „Ranking“ der Wahrscheinlichkeiten, als pos. DO klassifiziert zu werden, welches man z.B. durch einen anderen Data Mining Klassifikator (z.B. Bayes) oder durch Anwendung des Modells auf Testdaten ermitteln kann. Sortiere die DO nach aufsteigender Wahrscheinlichkeit. 4. Unterstelle pos. Klassifizierung aller DO: a) Zähle die dabei richtig klassifizierten DO (= TP) und die dabei falsch klassifizierten DO (= FP) b) Setze TN:=0 und FN:=0 sowie TPR=TP/(TP+FN):=1 und FPR=FP/(FP+TN):=1 c) Zeichne den Punkt [ FPR=1 , TPR=1 ] in das ROC Diagramm ein Betrachte das nächst wahrscheinlicher als pos. klassifizierte DO und alle noch wahrscheinlicheren: a) Zähle die darunter richtig (TP) und falsch (FP) klassifizierten DO b) Inkrementiere FN (falls es ein pos. DO ggü. der vorherigen Spalte ein DO weniger wurde) oder TN (falls es ein neg. DO weniger wurde) c) Ermittle TPR=TP/(TP+FN) und FPR=FP/(FP+TN) entsprechend der aktuellen Werte von TP, FP, FN und TN d) Zeichne den ermittelten Punkt [FPR,TPR] in das ROC Diagramm ein Wiederhole 3. bis zum am wahrscheinlichsten als pos. klassifizierten DO 5. Ergänze den Punkt [0,0] im ROC Diagramm 3. 160 2.7.2 ‘n Beispiel: Receiver Operating Characteristic (ROC) Kurve geg.: 10 DO (5 pos., 5 neg.) mit folgenden Wahrscheinlichkeiten einer pos. Klassifikation: + + + + + 0.25 0.43 0.53 0.65 0.71 0,77 0,82 0.85 0.91 0.95 1. Spalte: TP:=5 FP:=5 TN:=0 FN:=0 TPR=TP/(TP+FN):=1 FPR=FP/(FP+TN):=1 Klasse + + 0.25 0.43 0.53 0.65 0.71 + 0,77 0,82 0.85 + 0.91 + 0.95 TP 5 4 4 3 3 3 3 2 2 1 0 FP 5 5 4 4 3 2 1 1 0 0 0 TN 0 0 1 1 2 3 4 4 5 5 5 FN 0 1 1 2 2 2 2 3 3 4 5 TPR 1 0.8 0.8 0.6 0.6 0.6 0.6 0.4 0.4 0.2 0 FPR 1 1 0.8 0.8 0.6 0.4 0.2 0.2 0 0 0 2. Spalte: TP:=4 FP:=5 TN:=0 FN:=1 TPR=TP/(TP+FN):=0.8 FPR=FP/(FP+TN):=1 3. Spalte: TP:=4 FP:=4 TN:=1 FN:=1 TPR=TP/(TP+FN):=0.8 FPR=FP/(FP+TN):=0.8 … restliche Spalten und [0,0] - Punkt 161 2.7.2 ‘n Beispiel: Receiver Operating Characteristic (ROC) Kurve TPR 1 0.8 0.6 0.4 0.2 FPR 0.2 0.4 0.6 0.8 1 162 2.7.3 Cost-Sensitive Learning Idee: Quantifizierung des Schadens C(i,j) einer Fehlklassifizierung eines DO der Klasse i als ein DO der Klasse j bzw. im binären Fall C(+,-) der Fehlklassifizierungen f+- (FN) und C (-,+) der Fehrklasifizierungen f- + (FP) des Nutzens C(i,i) einer korrekten Klassifizierung eines DO der Klasse i bzw. im binären Fall C(+,+) der korrekten Klassifizierungen f++ (TP) und C(-,-) der korrekten Klassifizierungen f- - (TN) in einer Kostenmatrix: Klassifizierung durch das Modell tatsächliche Klasse + - + - C(+,+) C(+,-) C(-,+) C(-,-) positive Werte beziffern einen Schaden (Malus) negative Werte beziffern einen Nutzen (Bonus) Bei n DO belaufen sich die Gesamtkosten Ct(M) eines Modells (Klassifikators) M auf Ct ( M ) f C (, ) f C (,) f C (,) f C (,) In einer 0/1 Kostenmatrix ist C(+,+) = C(-,-) = 0 („kostet nichts“) C(+,-) = C(-,+) = 1 („kostet etwas“) und Ct(M) ist die Anzahl der Fehlklassifikationen des Modells M. 163 2.7.3 Cost-Sensitive Learning ‘n Beispiel: Kostenmatrix einer Anwendung Klassifizierung durch das Modell tatsächliche Klasse + - + - -1 100 1 0 Konfusionsmatrizen 2er Modelle: Model M1 tatsächliche Klasse + - Klassifizierung durch das Modell + - 150 40 60 250 Model M2 tatsächliche Klasse + - Klassifizierung durch das Modell + - 250 45 5 200 Ct ( M 1 ) 150 1 60 1 40 100 250 0 3910 Ct ( M 2 ) 250 1 5 1 45 100 200 0 4255 Obwohl M2 sehr viel mehr DO richtig klassifiziert als M1, schneidet es bei den Gesamtkosten schlechter ab als M1 , weil die „Bestrafung“ für die Fehlklassifizierung C(+,-) sehr viel höher ist als die Bestrafung für die Fehlklassifizierung C(-,+) und dies die marginale „Belohung“ für das bessere f++ nicht zu kompensieren vermag.164 2.7.3 Cost-Sensitive Learning Anwendung bei der Modellbildung: statt hohe Häufigkeiten von Klassenzugehörigkeiten (hohe Klassenreinheit) werden geringe mit Kosten gewichtete Häufigkeiten verwendet 1. 2. 3. bei der Auswahl eines geeigneten Splitting – Attributs beim Pruning bei der Klassenzuordnung an Blättern eines Entscheidungsbaumes oder DANNTeilen von Entscheidungsregeln: statt Maxima von Wahrscheinlichkeiten p(+) > 0.5 → + p(+) ≤ 0,5 → – nimmt man Minima der kosten-gewichteten Wahrscheinlichkeiten p(+)*C(+,-) + p(-)*C(-,-) > p(+)*C(+,+) + p(-)*C(-,+) → + , ansonsten – Für C(+,+) = C(-,-) = 0 wird demnach die Klasse + zugeordnet, falls: p(+)*C(+,-) > p(-)*C(-,+) p(+)*C(+,-) > (1 - p(+))*C(-,+) p(+)*C(+,-) > C(-,+) - p(+)*C(-,+) p(+)*C(+,-) + p(+)*C(-,+) > C(-,+) p(+)*(C(+,-) + C(-,+)) > C(-,+) p(+) > C(-,+) / (C(+,-) + C(-,+)) und anderenfalls die Klasse – 165 2.7.4 Sampling-basierte Ansätze Idee: die „seltene Klasse“ soll im Trainingsdatensatz nicht „selten“ sein Beispiel: Datensatz mit 100 pos. und 1000 neg. DO Trainingsdatensatz bei 1. Undersampling: alle (100) pos. und nur ein kleiner Teil (z.B. 100) der neg. DO 2. Oversampling: pos. DO mehrfach (hier 10-fach) verwenden, so dass deren Anzahl der Anzahl der neg. DO gleich wird 3. Nachteil: nützliche neg. DO werden u.U. nicht zur Modellbildung genommen Methoden zur Milderung dieses Nachteils: mehrfach undersamplen und Ensemble-Methode auf die entstandenen Modelle anwenden „focused“ undersampling: „informierte“ Auswahl der neg. DO (z.B. nach Abstand zur „Grenze“ zwischen + und - , wenn falls solche Information habhaft ist) bringt zwar keine neue Information in den Datensatz, aber verhindert ein Pruning von Teilen des Modells, welche nur wenige Trainings-DO abdecken Vorteil: auch „einsame“ pos. DO (umringt von neg. DO) werden u.U. mitmodelliert. Nachteil: Model Overfitting, falls verrauschte Daten mehrfach dupliziert werden hybriden Ansätzen: Kombination des Undersamplens der häufigen Klasse und Oversamplen der seltenen Klasse 166 2.8 Mehrklassen-Problem die meisten o.g. Techniken machen binäre Klassifikation und müssen erweitert werden, wenn es eine Menge Y = {y1 , …, yk} von mehr als zwei Klassen gibt 1. one-against-rest (1-r) Ansatz 2. k binäre Klassifikatoren (i-te Klasse vs. andere Klassen) bilden one-against-one (1-1) Ansatz für jedes Paar von Klassen [yi, yj] einen binären Klassifikator erzeugen (k*(k-1) / 2 Stück) dabei DO, die weder zu yi noch zu yj gehören, bei der Modellbildung ignorieren Alle gebildeten Modelle werden benutzt. (1-r) Ansatz: wenn das für yi konstruierte Modell ein DO als pos. einstuft und alle anderen Modelle dieses DO als neg. einstufen, wird es der Klasse i zugeordnet (1-1) Ansatz: jedes Modell, welches für eine binäre [yi, yj] – Entscheidung gebildet wurde, liefert ein Votum entweder für yi oder für yj Voten für jede Klasse werden addiert und eine Mehrheitsentscheidung getroffen Beide Ansätze [(1-r) mehr noch als (1-1)] bergen die Gefahr, dass es keine klare Zuordnung gibt. Dies kann man durch zusätzliche Informationen (Zugehörigkeitswahrscheinlichkeiten u.ä.) lösen … … oder durch Error-Correcting Output Coding entschärfen 167 Error-Correcting Output Coding k Klassen werden mit n > k Bits derart kodiert, dass die Hamming-Distanzen (Anzahl der verschiedenartigen Bits) zwischen jedem Paar von Klassen möglichst groß sind für jedes Bit wird ein Modell gebildet als Klassifikationsergebnis wird diejenige Klasse zugeornet, welche die geringste Hamming-Distanz zum bitweisen Klassifikationsregebnis hat Beispiel: Y = {y1, y2, y3, y4} Klasse Code y1 1 1 1 1 1 1 1 y2 0 0 0 0 1 1 1 y3 0 0 1 1 0 0 1 y4 0 1 0 1 0 1 0 die sieben Modelle brachten das Ergebnis [0,1,1,1,1,1,1] die Hamming-Distanz zu y1 ist 1 y2 ist 3 y3 ist 3 y4 ist 3 y1 ist demnach die wahrscheinlichste Klasse Wenn die Minimum Hamming-Distanz zwischen jedem Paar von Codes d ist, kann diese Methode (d-1)/2 fehlerhafte Klassenzuordnungen bei den n Bits tolerieren Beispiel oben: min. Hamming-Distanz zwischen 2 Codes ist 4 3/2 = 1 , d.h. bis zu eine Fehrklassifizierung unter den 7 Klassifikatoren kann toleriert werden 168 3 Assoziations-Analyse Ziel: Assoziationen innerhalb einer Menge von Objekten analysieren gegeben Transaktionen (= Menge von Objekten, Itemsets) gesucht Assoziations-Regeln (Objekte, die typischerweise gemeinsam in Itemsets sind) Beispiel Transaktion ID Itemset Assoziations - Regeln 1 {Brot, Milch} 2 {Brot, Windeln, Bier, Eier} 3 {Milch, Windeln, Bier, Cola} 4 {Brot, Milch, Windeln, Bier} 5 {Brot, Milch, Windeln, Cola} Anwendungen Warenkorbanalyse Klassifikation Clustering Cross Marketing {Windeln} {Bier}, {Milch, Brot} {Eier, Cola}, {Bier, Brot} {Milch} Bioinformatik medizinische Diagnose Web Mining (Suchmaschinen) Analyse wissenschaftlicher Daten (z.B. Klimaforschung)169 Repräsentation von Transaktionen als DO mit binären Variablen (asymmetrisch, d.h. Werte 0 sind von Interesse) TID Brot Milch Windeln Bier Eier Cola 1 1 1 0 0 0 0 2 1 0 1 1 1 0 3 0 1 1 1 0 1 4 1 1 1 1 0 0 5 1 1 1 0 0 1 Menge aller Items: Menge aller Transaktionen: I = { i1 , i2 , ..., id } T = { t1 , t2 , ..., tn } mit ti 2I Itemset: Menge von Items aus I: X 2I k – Itemset: Menge von Items aus I mit k Elementen: X 2I , |X|=k Eine Transaktion tj enthält ein Itemset X, gdw. X tj Support count σ(X) : Anzahl von Transaktionen, welche X enthalten: σ(X) = |{ti : ti T , X ti }| Support s(X): Anteil von Transaktionen ti T, welche X enthalten: s(X) = σ(X) / |T| Assoziationsregel X → Y : Implikation mit Itemsets X und Y, X Y = 170 Metriken zur Evaluierung von Assoziations-Regeln Support s( X → Y ) Anteil von Transaktionen, welche ( X Y ) enthalten: s( X → Y ) = | { t i : ti T , ( X Y ) ti } | / | T | = σ( X Y ) / n Confidence c( X → Y ) Anteil von Transaktionen, die (auch) Y enthalten an denen, die X enthalten = bedingte Wahrscheinlichkeit von Y unter der Bedingung X c( X → Y ) = σ( X Y ) / σ(X) häufiges Itemset X Itemset, dessen Support einen Mindestwert minsup aufweist: s(X) MinSup r: {Milch, Windeln} → {Bier} Beispiel TID Brot Milch Windeln Bier Eier Cola 1 1 1 0 0 0 0 2 1 0 1 1 1 0 3 0 1 1 1 0 1 4 1 1 1 1 0 0 5 1 1 1 0 0 1 2 s(r ) 5 2 c(r ) 3 171 Wie kann man das Ziel des Data Mining über Transaktionen formal definieren? Über einer gegebenen Menge T von Transaktionen suchen wir Assoziations – Regeln X→Y mit einem Support s(X→Y ) MinSup und einer Confidence c(X→Y ) MinConf Problem: kombinatorische Explosion Über d Items kann man d d k d k d d 1 3 2 1 k i k 1 i 1 d verschiedene Regeln bilden. Für d=6 (siehe Beispiel auf vorheriger Seite) sind das bereits 602 Regeln. Fordert man MinSup = 0.2 und MinConf = 0.5 , bleiben davon nur ca. 120 Regeln. Regel-Pruning vor der Berechnung der Confidence-Werte sinnvoll! 172 Assoziations-Regel - Mining 2 Schritte: 1. Ermittlung häufiger Item-Sets = 2. solche, die einen Mindest-Support minsup aufweisen Generierung „starker“ Regeln aus den häufigen Item-Sets = solche „Verteilungen“ der Items auf Prämisse und Konklusion, für welche eine hoher Confidence – Wert entsteht 3.1 Ermittlung häufiger Item – Sets Die Halbordnung definiert einen Verband über der Menge M := {X: X I} = 2I aller Itemsets aus I Jedes dieser 2|I| Kandidat- Beispiel: I = { a, b, c } {a} { a, b } {b} { a, c } {c} { b, c } Itemset gegen jede Transaktion t T (die längsten Transaktion habe w Items) bzgl. Support zu vergleichen kostet o( |T| (2|I| -1) w ) Vergleiche! { a, b, c } untauglich! 173 Reduzierung der Komplexität bei der Generierung häufiger Itemsets 1. Effiziente Generierung von Kandidat - Itemsets Anwendung des „a priori“ Prinzips 2. Effiziente Repräsentation der Kandidat - Itemsets kompaktere Repräsentation der Kandidaten-Sets als Hash-Baum 3. Effizientes Vergleichen der Kandidaten mit den Transaktionen effiziente Traversierung des Hash-Baumes 3.1.1 Effektive Erzeugung von Itemsets, a priori Prinzip A Priori Prinzip Wenn ein Itemset häufig (selten) ist, dann sind auch alle seine Teilmengen (Super-Mengen) häufig (selten). Logisch, denn Teilmengen-Relation und Support-Wert verhält sich anti-monoton, d.h. XY : ( X Y ) → s( X ) s( Y ) die Verkleinerung eines Itemsets kann nur zu einer Erhöhung seines SupportWertes führen die Vergrößerung eines Itemsets kann nur zu einer Verringerung seines Support-Wertes führen , m.a.W. 174 A priori – Prinzip unterschreitet ein Itemset minsup, kann eine Untersuchung aller seiner Super-Sets unterbleiben A B C D E AB AC AD AE BC BD BE CD CE DE ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE seltenes Itemset ABCD entfernbare Super-Mengen ABCE ABDE ACDE BCDE ABCDE 175 A priori – Algorithmus k := 1 Fk := {i: i I, σ(i)/N minsup} ; alle 1-elementigen Sets mit support minsup repeat k:= k+1 Ck:=apriori_gen(Fk-1) ; bilde alle k-elementigen Kandidaten aus den (k-1) elementigen for each transaction t T do Ct:=subset(Ck,t) for each c Ct do ; filtere Kandidaten, die t sind (in Transaktionen vorkommen) ; ermittle den Support count jedes Kandidaten σ(c) := σ(c) + 1 for each time c t was found end (for) end(for) Fk:={c: c Ck, σ(c)/N minsup} ; filtere Kandidaten mit support minsup until Fk = result := ⋃ Fk 176 ‘n Beispiel minsup = 0.6, d.h. σmin=3 Entfall wegen nicht hinreichendem Support TID Itemset 1 {Brot, Milch} 2 {Brot, Windeln, Bier, Eier} 3 {Milch, Windeln, Bier, Cola} 4 {Brot, Milch, Windeln, Bier} 5 {Brot, Milch, Windeln, Cola} Itemsets F1 σ 2-el. Itemsets F2 σ {Bier} 3 {Bier, Brot} 2 {Brot} 4 {Bier, Milch} 2 {Cola} 2 {Bier, Windeln} 3 3-el. Itemsets F3 σ {Eier} 1 {Brot, Milch} 3 {Brot, Milch, Windeln} 2 {Milch} 4 {Brot, Windeln} 3 {Windeln} 4 {Milch, Windeln} 3 Ergebnis 6+6+1 = 13 Kandidaten wurden gebildet ohne Pruning der support-armen Itemsets wären es 6 + 15 + 20 = 41 (für bis zu 3elementige Itemsets) gewesen 177 Ck:=apriori_gen(Fk-1) Prozedur zur Erzeugung k-elementiger Itemsets durch 1. Generierung einer Menge von Kandidaten-Sets anhand der (k-1)-elementigen häufigen Itemsets aus der vorherigen Iteration 2. Pruning (Reduzierung) dieser Menge durch Anwendung der Support-Wert – gestützten Pruning-Strategie Generierung von Kandidaten - Itemsets einfache Variante Zusammenstellen aller Kombinationen von k Items aus dem gesamten Itemset I (|I|=d) d Das sind Kandidaten, von denen jeder mit einem Aufwand von k beim Pruning auf hinreichendem Support untersucht werden muss. Gesamtkosten: d o( k ) o(d 2 d 1 ) k 1 k d k k 1 d untauglich 178 bessere Variante: Fk-1 x F1 Verschmelzung Kandidaten der vorherigen Iteration werden mit den (initial gebildeten) 1-elementigen häufigen Itemsets verschmolzen. Komplexität: o( k | Fk 1 | | F1 |) viel besser! k liefert auch garantiert alle häufigen k- Itemsets, weil sie aus häufigen (k-1)- Itemsets und häufigen 1Itemsets entsteht effizienzsteigernd können Permutationen bereits gebildeter Itemsets vermieden werden, indem alle Itemsets lexikographisch sortiert werden und nur Erweiterungen der (k-1)Itemsets um ein lexikographisch größeres Item aus F1 vorgenommen werden Beispiel 2-el. häufige Itemsets F2 häufige Itemsets F1 {Bier, Windeln} {Bier} {Brot, Windeln} {Brot} {Brot, Milch} {Milch} {Milch, Windeln} {Windeln} 3-el. Kandidaten Itemsets C3 F2 {Brot, Milch, Windeln} 179 in a priori-gen genutzte Variante: Fk-1 x Fk-1 Verschmelzung 2 (sortierte) Itemsets aus Fk-1 werden genau dann verschmolzen, falls die ersten k-2 Items identisch sind zusätzlicher Pruning-Schritt nach dem Verschmelzen notwendig: Test, ob alle (k-1)- elementigen Untermengen des entstandenen k- Itemsets auch häufig (m.a.W. Fk-1) sind. liefert auch garantiert alle häufigen k- Itemsets, weil sie aus häufigen (k-1)Itemsets und häufigen 1-Itemsets entsteht F2 {Bier, Windeln} KandidatenGenerierung {Brot, Milch} {Brot, Windeln} {Milch, Windeln} F2 Kandidaten - Pruning: Entfernung derjenigen, bei denen nicht jede 2-elementige Teilmenge F2 3-el. Itemsets C3 3-el. Itemsets F3 {Brot, Milch, Windeln} {Brot, Milch, Windeln} {Bier, Windeln} {Brot, Milch} {Brot, Windeln} {Milch, Windeln} 180 3.1.2 Repräsentation der Kandidaten in einem Hash-Baum generierte (sortierte) Kandidaten k-Itemsets werden zur effektiven Ermittlung ihres Supports in einen Hash - Baum eingeordnet benötigt wird 1. eine Hash - Funktion, welche einem Itemset in jedem (nicht Blatt -) Knoten einen Unterbaum zuweist für Baum des Grades g wäre für die i-te Ebene wäre sinnvoll: <Ordnungszahl des i-ten Elements im Itemset> mod g 2. eine maximale Anzahl von Itemsets, die in einem Blatt sein dürfen (um die Komplexität des Vergleichens zu begrenzen) falls diese überschritten wird, werden Unterbäume generiert und die Itemsets gemäß der o.g. Hash - Funktion diesen zugeordnet 181 ‘n Beispiel 15 3-Itemsets: {1, 4, 5}, {1, 2, 4}, {4, 5, 7}, {1, 2, 5}, {4, 5, 8}, {1, 5, 9}, {1, 3, 6}, {2, 3, 4}, {5, 6, 7}, {3, 4, 5}, {3, 5, 6}, {3, 5, 7}, {6, 8, 9}, {3, 6, 7}, {3, 6, 8} Grad des Baumes: g := 3 Hash - Funktion für die i-te Ebene: <Ordnungszahl des i-ten Elements> mod 3 Hash - Funktion Hash - Baum 3,6,9 1,4,7 2,5,8 234 567 345 136 145 124 457 125 458 159 356 357 689 367 368 182 Kandidaten - Hash-Baum linke Unterbäume bei Hash-Wert 1 Hash Funktion 1,4,7 Kandidaten – Hash-Baum 3,6,9 2,5,8 234 567 145 136 345 Hash mit 1, 4 oder 7 124 125 457 458 159 356 367 357 368 689 183 Kandidaten - Hash-Baum mittlere Unterbäume bei Hash-Wert 2 Hash Funktion 1,4,7 Kandidaten – Hash-Baum 3,6,9 2,5,8 234 567 145 136 345 Hash mit 2, 5 oder 8 124 125 457 458 159 356 367 357 368 689 184 Kandidaten - Hash-Baum rechte Unterbäume bei Hash-Wert 0 Hash Funktion 1,4,7 Kandidaten – Hash-Baum 3,6,9 2,5,8 234 567 145 136 345 Hash mit 3, 6 or 9 124 125 457 458 159 356 367 357 368 689 185 3.1.3 Traversierung des Hash - Baumes mit einer Transaktion Auch k-Untermengen einer (sortierten) Transaktion können in einen Baum eingeordnet werden zunächst Bildung möglicher k - Subsets Einordnung in einen Unterbaum auf i-ten Ebene entsprechende dem i-ten Element des k-Itemsets Transaktion t ‘n Beispiel 1 2 3 5 6 für die Bildung aller 3 – Subsets Ebene 1 1 2 3 5 6 Transaktion t = {1, 2, 3, 5, 6} k=3 2 3 5 6 3 5 6 Ebene 2 12 3 5 6 13 5 6 123 125 126 135 136 15 6 156 23 5 6 235 236 25 6 256 35 6 356 Ebene 3: Blätter enthalten sortierte 3-Itemsets der Transaktion t 186 Matching des Transaktions-Baumes mit dem Hash-Baum der Kandidaten-Itemsets Mit jedem Blatt des Transaktions-Baumes (s.o.) wird der Hash-Baum traversiert Im Blatt des Hash-Baumes angekommen, wird das k-Itemset aus dem Transaktions-Baum mit den Kandidaten im Blatt des Hash-Baumes verglichen Transaktion Hash-Funktion 12356 1+ 2356 2+ 356 1,4,7 3+ 56 3,6,9 2,5,8 234 567 145 136 345 124 457 125 458 159 356 357 689 367 368 187 Matching des Transaktions-Baumes mit dem Hash-Baum der Kandidaten-Itemsets Hash-Funktion 1 2 3 5 6 Transaktion 1+ 2356 2+ 356 12+ 356 1,4,7 3+ 56 3,6,9 2,5,8 13+ 56 234 567 15+ 6 145 136 345 124 457 125 458 356 357 689 367 368 159 188 Matching des Transaktions-Baumes mit dem Hash-Baum der Kandidaten-Itemsets Hash-Funktion 1 2 3 5 6 Transaktion 1+ 2356 2+ 356 12+ 356 1,4,7 3+ 56 3,6,9 2,5,8 13+ 56 234 567 15+ 6 123 126 145 136 345 156 125 124 457 125 458 356 357 689 367 368 159 189 Matching des Transaktions-Baumes mit dem Hash-Baum der Kandidaten-Itemsets Hash-Funktion 1 2 3 5 6 Transaktion 1,4,7 1+ 2356 2,5,8 2+ 356 12+ 356 3+ 56 13+ 56 234 567 15+ 6 123 126 145 136 345 156 125 124 457 125 458 159 356 357 689 3,6,9 367 368 nur mit diesen (rot umrandeten) 3Itemsets musste die Transaktion verglichen werden, um das Vorhandensein der Itemsets des Hash - Baumes in der Transaktion zu entscheiden. 190 Die Hash-Technik beschränkt die Anzahl der Vergleiche in o.g. Beispiel von 150 (10 3elementige Itemsets in t={1, 2, 3, 5, 6} mit 15 Kandidaten-Itemsets) auf 16: {1,2,3} wird mit 1 Kandidaten des Hash - Baums verglichen {1,2,5} wird mit 2 Kandidaten des Hash - Baums verglichen und im Baum gefunden {1,2,6} wird mit 1 Kandidaten des Hash - Baums verglichen {1,3,5} wird mit 1 Kandidaten des Hash - Baums verglichen {1,3,6} wird mit 1 Kandidaten des Hash - Baums verglichen und im Baum gefunden {1,5,6} wird mit 1 Kandidaten des Hash - Baums verglichen {2,3,5} wird mit 2 Kandidaten des Hash - Baums verglichen {2,3,6} wird mit 2 Kandidaten des Hash - Baums verglichen {2,5,6} wird mit 2 Kandidaten des Hash - Baums verglichen {3,5,6} wird mit 3 Kandidaten des Hash - Baums verglichen und im Baum gefunden Nach dem Matching bleiben 3 häufige 3-Itemsets F3 aus dieser Transaktion übrig. Aus jedem der 3 häufigen Itemsets kann man je 23 – 2 Assoziationsregeln bilden: Es gibt 23 denkbare Partitionierungen in Prämisse und Konklusion einer Regel →F3 und F3→ sind nicht sinnvoll und werden abgezogen 191 3.2 Effiziente Repräsentation von Itemsets Anzahl häufiger Itemsets kann in Praxi sehr hoch werden Idee: nur eine Teil repräsentieren, aus welcher alle häufigen Itemsets ableitbar sind 3.2.1 Maximale häufige Itemsets Definition Ein Itemset ist maximal häufig, wenn keiner seiner direkten (um 1 Element reicheren) Super-Sets häufig ist. Alle häufigen Itemsets kann man aus den maximal häufigen Itemsets generieren, indem man alle Teilmengen der maximal häufigen Itemsets zu selbigen hinzufügt. 192 ‘n Beispiel Itemsets aus häufige Itemsets { A, B, C, D, E } A B C D E AB AC AD AE BC BD BE CD CE DE ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE ABCD nicht häufige Itemsets ABCE ABDE ACDE BCDE maximale häufige Itemsets ABCDE 193 3.2.1 Maximale häufige Itemsets Vorteil außerordentlich kompakte Repräsentation siehe Beispiel: 3 von 20 Itemsets müssen gespeichert werden Nachteil maximale häufige Itemsets enthalten keine Support – Informationen über ihre Teilmengen (außer der, dass dieser größer minsup ist) benötigt man den Support – Wert der Teilmengen, ist ein zusätzlicher Lauf über die Transaktions-Daten nötig in einigen Fälle benötigt man eine minimale Darstellung häufiger Itemsets, welche die Support – Information aller häufigen Itemsets enthält geschlossene häufige Itemsets 194 3.2.2 Geschlossene häufige Itemsets Definition Ein Itemset X ist geschlossen, wenn keiner seiner direkten (um 1 Element reicheren) Super-Sets einen gleich hohen Support hat. Für den Support eines Super-Sets X‘ X gilt ohnehin s(X‘) s(X). X Wenn der Support für jedes Super-Set X‘ geschlossen. Gibt es (mind.) ein Superset X‘ X mit s(X‘) = s(X), kann man das Itemset X auch ohne Support-Verlust noch vergrößern, weshalb es nicht als „geschlossen“ gilt. schlechter wird, ist X Definition Ein Itemset X ist ein geschlossenes häufiges Itemset, wenn es geschlossen ist und einen Mindestwert minsup an Support aufweist. 195 ‘n Beispiel Itemsets aus { A, B, C, D, E }, minsup=0.4 TID Items 1 ABC 2 ABCD 3 BCE 4 ACDE 5 DE geschlossene häufige Itemsets 0.6 A 0.6 B 0.8 C 0.6 D 0.6 E 0.4 AB 0.6 AC 0.4 AD 0.2 AE 0.6 BC 0.2 BD 0.2 BE 0.4 CD 0.4 CE 0.4 DE 0.4 ABC 0.2 ABD 0 ABE 0.4 ACD 0.2 ACE 0.2 ADE 0.2 BCD 0.2 BCE 0.2 ABCD Support 0 ABCE 0 ABDE 0.2 ACDE 0 ABCDE 0 BDE 0.2 CDE 0 BCDE 196 gleiches Beispiel - maximal häufig vs. geschlossen häufig, minsup=0.4 TID Items 1 ABC 2 ABCD 3 BCE 4 ACDE 5 DE 0.6 A 0.6 B 0.8 C geschlossene häufige Itemsets 0.6 D maximale häufige Itemsets 0.6 E 0.4 AB 0.6 AC 0.4 AD 0.2 AE 0.6 BC 0.2 BD 0.2 BE 0.4 CD 0.4 CE 0.4 DE 0.4 ABC 0.2 ABD nicht häufige Itemsets 0 ABE 0.4 ACD 0.2 ACE 0.2 ADE 0.2 BCD 0.2 BCE 0.2 ABCD 0 ABCE 0 ABDE 0.2 ACDE 0 ABCDE 0 BDE 0.2 CDE 0 BCDE 197 Vorteil geschlossener häufiger Itemsets Itemsets sind redundant, wenn sie gleichen Support mit deren Super-Sets haben, z.B. in TID A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 für minsup = 0.2 gibt es 3*(210-1) = 3069 häufige Itemsets Warengruppen A, B und C werden aber stets zusammen gekauft Teilmengen innerhalb dieser Warengruppen zu analysieren, führt zu redundanten Assoziationsregeln Eine Assoziationsregel XY ist redundant, wenn es bereits eine Regel X‘Y‘ mit XX‘ und YY‘ gibt. Redundanz meint hier, dass immer, wenn X (bzw. Y) im Warenkorb liegt, ohnehin auch X‘\X (bzw. Y‘\Y) auch im Warenkorb liegt. Es gibt nur 3 geschlossene häufige Itemsets: {A1, …, A10}, {B1, …, B10} und {C1, …, C10} Mitunter ist es sinnvoll, Analysten nur geschlossene häufige Itemsets zu präsentieren 198 3.3 Regelgenerierung Nach der Support – basierten Ermittlung häufiger Itemsets erfolgt eine Confidence – basierte Extraktion von Regeln aus diesen Itemsets. Für jedes häufige k - Itemset Fk kann man 2k – 2 Assoziationsregeln X →Fk \ X bilden, welche auf hinreichende Confidence c( X →Fk \ X ) = σ(Fk ) / σ(X) überprüft werden. Theorem Wenn eine Regel X → Fk \ X nicht die nötige Mindest - Confidence c = σ(Fk ) / σ(X) aufweist, dann wird auch jede Regel X' → Fk \ X ' mit X ' X mit ihrer Confidence c' = σ(Fk ) / σ(X') diesem Schwellwert nicht erreichen. … logisch, da σ(X') σ(X) für X ' X . 199 3.3 Regelgenerierung erweist sich eine aus Fk bildbare Regel als inkonfident, ist jede andere aus Fk bildbare Regel mit kürzerer Prämisse (und längerer Konklusion) erst recht inkonfident die im prämissenbasiert gebildeten Verband „darunter“ liegenden Regeln müssen nicht auf Konfidenz untersucht werden Beispiel: abcd→ c < cmin abc→d ab→cd RegelPruning ac→bd a→bcd abd→c ad→bc b→acd acd→b bc→ad c→abd bcd→a bd→ac cd→ab d→abc 200 3.3 Regelgenerierung Effektive Generierung von Regeln für ein gegebenes Itemset Verschmelzung 2er als „konfident“ erwiesener Regeln zu einer (im Verband darunter liegenden) neuen Regel mit einer um 1 Item längeren Konklusion Redundanzfreie Auswahl von Regelpaaren zur Verschmelzung: Regeln der Ebene k des Verbandes haben k Items in ihrer Konklusion Es werden nur solche Regelpaare verschmolzen, welche eine in den ersten k-1 Items gleiche Konklusion haben, z.B. • bd ac und cd ab zu d abc • ae bcd und ad bce zu a bcde Voraussetzung: sortierte Itemlisten (zumindest) in der Konklusion Pruning Ist eine so erzeugte Regel nicht hinreichend konfident, wird sie nicht in die Ebene k+1 aufgenommen und somit nicht für weitere Verschmelzungen herangezogen. 201 3.3 Regelgenerierung Redundanzfreie Regel-Verschelzungen im konklusionenbasiert gebildeten Verband abcd→ abc→d ab→cd ac→bd a→bcd abd→c bc→ad b→acd acd→b ad→bc c→abd bcd→a bd→ac cd→ab d→abc →abcd 202 3.4 Evaluierung von Assoziations-Patterns Maße für Wissen “Interessantheit” Patterns Nachbearbeitung vorverarbeitete Daten Prod Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct Prod uct uct Featur Featur e Featur e Featur e Featur e Featur e Featur e Featur e Featur e Featur e e Mining ausgewählte Daten Daten Vorverarbeitung Datenauswahl 203 3.4 Evaluierung von Assoziations-Patterns Assoziations-Pattern = Paar [Prämisse, Konklusion] einer Assoziationsregel Prämisse Konklusion Wie „interessant“ ein Pattern [A, B] ist, wird anhand der Häufigkeiten des (nicht-) Auftretens der verschiedenen Kombinationen aus {A, B, ¬A, ¬B} in den Transaktionen ermittelt Häufigkeiten werden in einer Kontingents –Tabelle repräsentiert: B ¬B A f11 f10 f1+ ¬A f01 f00 f0+ f+1 f+0 N Mit Kontingents-Tabellen können div. „Interessantheits-Maße“ ermittelt werden, z.B.: (1) Konfidenz (2) Lift-Maß (3) Interest Faktor (4) Korrelation (φ – Koeffizient) (5) Interest Ssupport (IS-Maß) (6) Odds Ratio (α – Koeffizient) 204 (1) Konfidenz - basierte Evaluierung Konfidenz: c( A → B ) = σ( A B ) / σ(A) = (f11 /N)/ (f1+ /N)= f 11 / f1+ Nachteil: Support der Regelkonklusion bleibt unberücksichtigt ‘n Beispiel Analyse des Zusammenhangs zwischen Kaffee- und Teetrinkern, 1000 Leute: Kaffee ¬ Kaffee Tee 150 50 200 ¬Tee 650 150 800 800 200 1000 r: Tee Kaffee ist sehr konfident: 150/200 = 0.75 allerdings trinken ohnehin fast alle Leute (unabhängig vom Tee trinken) Kaffee: 80% Anteil der Kaffee-Trinker unter den Tee-Trinkern ist sogar noch geringer als unter allen Befragten: 75% Regel r: Tee Kaffee ist trotz hoher Konfidenz irreführend! 205 (2) Lift - basierte Evaluierung s( A B) c( A B) s( A B) f N s ( A) Lift ( A B ) 11 s( B) s( B) s ( A) s ( B ) f1 f 1 relativiert Konfidenz mit dem Support der Konklusion. Damit wird ausgedrückt, um welchen Faktor B wahrscheinlicher wird, wenn A auftrat ggü. der absoluten Wahrscheinlichkeit von B. Dieses Maß ist für binäre Variablen (was auf die Aussagen rechts und links von „→“ zutrifft) symmetrisch: Lift(A,B) = Lift(B,A) Lift(A→B) =1 Korrelieren A und B positiv s(AB) > s(A) s(B) Lift(A→B) >1 Korrelieren A und B negativ s(AB) < s(A) s(B) Lift(A→B) <1 Sind A und B unabhängig s(AB) = s(A) s(B) 206 (3) Interest-Faktor - basierte Evaluierung I ( A B) c( A B) s ( B) ( A B) ( B) f11 f 1 ( A) N f1 N wichtet Konfidenz mit dem Support der Konklusion. Damit wird die Konfidenz einer Regel mit ihrer „Interessantheit“ (der Wahrscheinlichkeit des Auftretens) der Konklusion gewichtet. 207 Nachteil der Lift (Interest-Faktor) - basierten Evaluierug Beispiel Text-Mining: gemeinsames Auftreten von Wort-Paaren { p, q } und { r, s } p ¬p q 880 50 930 ¬q 50 20 70 930 70 1000 r ¬r s 20 50 70 ¬s 50 880 930 70 930 1000 Durch die Relativierung auf (bzw. Wichtung mit) den Support der Konklusion wird der offensichtlich stärkere Zusammenhang von { p, q } ggü. { r, s } verschleiert: 880 1000 Lift ( p q ) 1.018 930 930 20 1000 Lift (r s ) 4.082 70 70 Hier wäre die Konfidenz-basierte Evaluierung besser: 880 c( p q) 0.946 930 20 c(r s) 0.286 70 208 (4) Korrelation (φ – Koeffizient) - basierte Evaluierung Für numerische Variablen haben wir Korrelation so definiert (siehe Folie 25): n (x s xy covarianz(x,y) corr(x,y) stdt_abw(x) std_abw(y) s x s y k 1 n k - x)(y k - y) (x k - x) 2 k 1 n 2 (y y ) k k 1 Für binäre Variablen entspricht dies dem φ – Koeffizienten: f11 f 00 f 01 f10 f1 f 1 f 0 f 0 Nachteil der Korrelations (φ – Koeffizient) - basierten Evaluierung Co-Präsenz und Co-Absenz werden gleich bewertet • für o.g. Beispiel aus dem Text – Mining ist φ(p,q)= φ (r,s)=0.232, obwohl der Zusammenhang von { p, q } signifikanter als bei { r, s } ist φ – Koeffizient ist besser für symmetrische Variablen geeignet 209 (5) IS (Interest-Support)- basierte Evaluierung IS ( A, B) I ( A, B ) s ( A, B ) s ( A, B ) s ( A, B ) s ( A) s ( B ) f11 N f1 f 1 N N s ( A, B ) s ( A) s ( B ) N f11 f11 f1 f 1 N f11 N f11 f1 f 1 speziell für asymmetrische Attribute (solche, bei denen es nur auf Werte ≠ 0 ankommt) entwickelt Entspricht Kosinus-Koeffizienten für binäre Variablen: n sim( x, y ) x k 1 n k x * k 1 2 k yk n 2 y k k 1 210 (4) IS (Interest-Support)- basierte Evaluierung Für unser Beispiel aus dem Text Mining p ¬p q 880 50 930 ¬q 50 20 70 930 70 1000 r ¬r s 20 50 70 ¬s 50 880 930 70 930 1000 …ist IS deutlich besser als Interest-Faktor (Lift-Maß) oder Korrelation (φ – Koeffizient): IS(p,q) = 0.946 IS(r,s) = 0.286 Dies trifft unsere (intuitive) Erwartung. 211 (5) IS (Interest-Support)- basierte Evaluierung für statistisch unabhängige Items ist s(A,B) = s(A) s(B) bzw. f11/N = f1+/N f+1 /N IS entartet dann zu f1 f 1 N N Unabhängigkeit äußert sich in Praxi darin, dass die Häufigkeit, dass die Items zusammen oder nicht zusammen im Warenkorb liegen, gleich hoch ist ISindep ( A, B ) s ( A) s ( B ) Beispiel: p ¬p q 250 250 500 ¬q 250 250 500 500 500 1000 In der Tat ist hier IS(p,q) = ISindep(p,q) = 0.5 (6) Odds Ratio (α – Koeffizient) - basierte Evaluierung … ist das Verhältnis zwischen Co-Präsenz oder Co-Absenz zu allen anderen Fällen: 1 1 ( A, B) ( A , B ) f f s ( A, B) s ( A , B ) N N ( A, B) 11 00 s ( A, B ) s ( A , B) 1 ( A, B ) 1 ( A , B) f10 f 01 N N 212 Zusammenfassung „Interessantheits-Maße“ von Assoziationspatterns Es gibt zwei Kategorien von Metriken M(AB): Symmetrische Metriken: M(AB) = M(BA) (deshalb oft M(A,B) geschrieben) Asymmetrische Metriken: M(AB) ≠ M(AB) Symmetrisch sind außer dem Konfidenz-Maß alle hier behandelten Metriken: Lift, Korrelation (φ – Koeffizient), IS-Maß, Odds Ratio (α – Koeffizient) Asymmetrisch sind neben dem Konfidenz-Maß (c) auch J-Maß (J) (Entropie-ähnlich), Gini Index (G), Laplace (L), Cobnviction(V), Certainty factor (F), Addad value (AV): J N f10 N f11 f10 f11 log log N f1 f 1 N f1 f 0 2 2 2 f f1 f11 f10 f 1 G 0 N f1 f1 N N L ( f11 1) ( f1 2) f 2 f 2 f 2 01 00 0 f 0 f 0 N V ( f1 f 0 ) ( N f10 ) f f F 11 1 f1 N f f 1 AV 11 f1 N f 1 1 N 213 4 Cluster-Analyse Ziel Einteilung der DO eines Datensatzes in Gruppen (Cluster), welche „sinnstiftend“ (die natürliche Struktur der DO widerspiegelnd, um diese zu verstehen) oder „nützlich“ (für andere Zwecke, z.B. einer Zusammenfassung von DO-Eigenschaften) sind. Intra-Cluster Abstände minimal Inter-Cluster Abstände maximal 214 Beispiele für „sinnstiftendes“ Clustering Biologie Erarbeitung einer Taxonomie über Species: Art, Familie, Ordnung, Klasse, Stamm, Reich Information Retrieval durch Cluster-Analyse wurde der Einfluss der Luftdruckverhältnisse in den Polarregionen und über den Weltmeeren auf das Klima an Land aufgedeckt Medizin und Psychologie effizientes Suchen im WWW durch Clustern der Suchbegriffe, z.B. Film in die Cluster Reviews, Trailer und Stars Klimaforschung Clustern von Genen mit jeweils ähnlichen Funktionen pathologische Erscheinungen haben gewöhnlich mehrere Ausprägungen, solche Sub-Kategorien (z.B. Typen von Depressionen) sind durch ClusterAnalyse identifiziert worden Wirtschaft Kunden können durch Cluster-Analyse partitioniert werden in Gruppen mit ähnlichen Interessen, um das Marketing kundenspezifischer (und damit effektiver) zu machen 215 Beispiele für „nützliches“ Clustering Zusammenfassungen (effiziente Datenverarbeitung) Datenkompression Viele Analysetechniken haben eine Komplexität o(n2) oder schlimmer. Clustert man die Daten zuvor und wendet diese Techniken dann nur noch auf Cluster-Prototypen an, werden sie effizienter Ähnliches geschieht bei der Vektor-Quantisierung von Bild-, Ton- oder Videodaten. Für jedes Cluster wird nur ein Repräsentant nebst seinen Positionen im Datenstrom abgelegt effiziente Ermittlung nächstliegender Nachbarn Der paarweise Vergleich von Abstandsmaßen mach die Ermittlung nächster Nachbarn in großen Datenmengen sehr komplex. Macht man das nur mit Cluster-Prototypen, wird die Ermittlung effizienter 216 4.1 Überblick Ziel: Finden von Clustern, welche sich signifikant voneinander unterscheiden, d.h. welche einen maximalen Abstand voneinander haben, und innerhalb derer sich die DO nicht signifikant unterscheiden („dicht beieinander“ sind), d.h. einen minimalen Abstand voneinander haben. Clustering-Aufgaben haben keine eindeutige Lösung, Beispiel: Wie viele Cluster? 2 Cluster 6 Cluster 4 Cluster 217 Clustering = Aufteilung von DO in Cluster 4.1.1 Typen von Clusterings (1) hierarchisch versus Partitionierung Partitionierung Einteilen der DO in disjunkte Teilmengen (Cluster), so dass jedes DO zu genau einem Cluster gehört (wie im Beispiel der vorherigen Folie) hierarchisches Clustern Ermittlung einer baumförmigen Cluster-Hierarchie jede Astgabel des Baumes ist eine (weitere) Partitionierung jeder Knoten (Cluster) im Baum (mit Ausnahme der Blätter) enthält die DO, die sich aus der Vereinigung der DO seiner Unterbäume ergibt im Beispiel könnte man die Einteilung in 2, 4 und 6 Cluster als auch baumförmige Cluster-Hierarchie organisieren traditionell (constrained Clustering): binärer Baum, jede Astgabel des Baumes identifiziert ein (fertiges) Cluster (Blattknoten) in einem Unterbaum und die restlichen im anderen Unterbaum 218 Partitionierendes Clustering Original DO Partitionierendes Clustering 219 hierarchisches Clustering p1 p3 p4 p2 „traditionelles“ hierarchisches Clustering p1 p3 Repräsentation im „traditionellen“ Dendrogramm p4 p2 hierarchisches constrained Clustering Repräsentation im constrained Clustering Dendrogramm 220 Typen von Clusterings (2) exklusiv versus überlappend exklusive: jedes DO gehört zu genau einem Cluster überlappend: ein DO kann zu mehreren Clustern gehören (3) fuzzy versus scharf fuzzy jedes DO gehört zu jedem Cluster mit einem Gewicht g, 0 ≤ g ≤ 1 Summer aller Gewichte für ein DO = 1 scharf: scharfe Zugehörigkeiten (0 oder 1) (4) partiell versus total partiell: einige DO bleiben clusterfrei total: jedes DO gehört zu (mindestens) einem Cluster (5) heterogen versus homogen heterogen: die Cluster haben verschiedene Größen, Formen und Dichten homogen: die Cluster sind gleich in Größe, Form oder Dichte 221 4.1.2 Typen von Clustern (1) wohl – separierte Cluster jedes DO eines Clusters ist näher (ähnlicher) zu jedem anderen DO innerhalb des Clusters als zu allen DO außerhalb des Clusters m.a.W., jeder Punkt außerhalb des Clusters ist ferner (verschiedener) als der fernste Punkt innerhalb des Clusters Beispiel: 3 wohl-separierte Cluster 222 4.1.2 Typen von Clustern (2) Prototyp – basierte Cluster (center-based cluster) jedes DO eines Clusters ist näher (ähnlicher) dem Zentrum (zum Prototyp – DO) seines Clusters als zum Zentrum jedes anderen Clusters tendieren zur Kugelförmigkeit Zentrum des Clusters wird häufig Centroid genannt, wenn es für jedes Attribut den Durchschnitt der Werte aller DO des Clusters hat Medoid genannt, wenn es das „repräsentativste“ DO des Clusters bildet Ein Centroid ist nicht zwangsläufig ein reales DO, ein Medoid hingegen ist eines der DO. Beispiel: 4 Prototyp-basierte Cluster 223 4.1.2 Typen von Clustern (3) zusammenhängende Cluster (contiguity-based cluster) jedes DO eines Clusters ist zu mindestens einem DO seines Clusters näher (ähnlicher), als zu jeden DO außerhalb des Clusters Beispiel: 8 zusammenhängende Cluster 224 4.1.2 Typen von Clustern (4) Dichte - basierte Cluster (density-based cluster) ein Cluster ist eine Region, die sich von angrenzenden Gebieten des „Raumes“ durch eine hohe Dichte von DO auszeichnet Cluster sind von anderen Clustern durch „Gebiete geringer Dichte“ separiert. werden typischerweise verwendet, wenn Cluster irreguläre Formen haben Cluster ineinander verflochten sind verrauschte Daten oder „Außenseiter“ im Datensatz sind Beispiel: 6 Dichte-basierte Cluster 225 4.1.2 Typen von Clustern (5) konzeptuelle Cluster (conceptual cluster, shared-property cluster) Umfasst alle anderen o.g. Typen Cluster werden als Menge von DO mit einer gemeinsamen Eigenschaft, die nicht als Attribut definiert ist, definiert und nicht durch die Verteilung der DO im AttributRaum können nichtleere Schnittmengen haben Beispiel: 2 konzeptuelle Cluster im Weiteren vorgestellte Clustering Verfahren • K - means / K - medoid (4.2) • • hierarchisches Clustering (4.3) dichtebasiertes Clustering mit DBSCAN (4.4) 226 4.2 K – means (K - medoid) = Prototyp – basiert, partitionierend, nicht hierarchisch 4.2.1 Grundlegender K – means (K - medoid) Algorithmus initial werden (mehr oder weniger willkürlich) K Centroiden (Medoiden) festgelegt (K: gewünschte Anzahl von Clustern) zyklisch wird 1. Jedes DO wird dem nächstgelegenen Centroiden (Medoiden) zugeordnet „nächstgelegen“: Euklidischer Abstand, Kosinus-Koeffizient, Korrelation, … 2. und der Centroid (Medoid) eines jeden Clusters danach neu berechnet … solange, bis sich keiner Centroiden (Medoiden) durch die Neuberechnung mehr ändert, d.h. kein DO die Clusterzugehörigkeit ändert konvergiert typischerweise schnell (nach wenigen Zyklen) Falls nicht, weicht man mitunter das Stopp-Kriterium auf: „solange, bis sich nur wenige Centroiden (Medoiden) mehr ändern“ Komplexität o( n K I d ) n: Anz. d. DO, K: Anz. d. Centroiden (Medoiden), I: Anz. d. Iterationen, d: Anz. d. Attribute 227 Beispiel 2 Attribute, Euklidisches Abstandsmaß, 3 Centroiden ( + ) Iteration 1 Iteration 2 Iteration 3 2.5 2.5 2.5 2 2 2 1.5 1.5 1.5 y 3 y 3 y 3 1 1 1 0.5 0.5 0.5 0 0 0 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 -2 -1.5 -1 -0.5 x 0 0.5 1 1.5 2 -2 Iteration 4 Iteration 5 2.5 2 2 2 1.5 1.5 1.5 1 1 1 0.5 0.5 0.5 0 0 0 -0.5 0 x 0.5 1 1.5 2 0 0.5 1 1.5 2 1 1.5 2 y 2.5 y 2.5 y 3 -1 -0.5 Iteration 6 3 -1.5 -1 x 3 -2 -1.5 x -2 -1.5 -1 -0.5 0 x 0.5 1 1.5 2 -2 -1.5 -1 -0.5 0 0.5 x Zuordnung zum nächstgelegenen Centroiden: häufigste Ähnlichkeitsmaße Euklidischer (L2) oder Manhatten (L1) Abstand im Euklidischen Raum Kosinus-Koeffizient oder Jaccard Koeffizient für Dokumente 228 Zielfunktion (bei Auswahl des besten Clusterings nach mehrfacher Anwendung der Technik) Im Euklidischen Raum mit L2-Distanzmaß: sum of the squared error SSE K SSE dist (ci , x) i 1 xCi mit ci 1 mi x xCi 2 • • • • • • x Ci ci mi DO i -tes Cluster Centroid des Clusters Ci Anz. d. DO im i –ten Cluster m Gesamtzahl der DO K Anz. d. Cluster ‘n Beispiel für die Centroiden - Berechnung Cluster Ci im 2-dim. Raum habe die DO Ci={ [1,1] , [2,3] , [6,2] } ⇒ ci = [ (1+2+6)/3 , (1+3+2)/3 ] = [9,2] 229 Zielfunktion (Auswahl des besten Clusterings nach mehrfacher Anwendung der Technik) für Dokumente repräsentiert durch eine Dokument – Term – Matrix: Zeilen: Dokumente, Spalten: Begriffe, Einträge: Anzahl des Auftretens des Begriffes Ähnlichkeitsmaß: Kosinus-Koeffizient Zielfunktion: Ähnlichkeit der Dokumente eines Clusters zu maximieren Kohäsion (Cohesion) des Clusters total_cohesion n K K i 1 xCi i 1 xCi total _ cohesion cos( x j , ci ) ekj cki k 1 n n e c 2 kj k 1 k 1 2 ki mit dem Centroiden ("dem Durchschnittsdokument") 1 ci [ mi mi 1 e , 1j mi j 1 mi 1 e , , 2j mi j 1 mi e j 1 nj ,] mit • xj • Ci • ci • mi • m • ekj • n • K d1 d2 d3 d4 d5 d6 ‘n Beispiel für die Berechnung eines Centroiden c Toyota Honda hybrid Super Diesel Akku Dokument (j - te Matrix-Zeile) i -tes Cluster Centroid des Clusters Ci Anz. d. DO im i –ten Cluster Gesamtzahl der DO Eintrag in der Matrix: Anz. d. Terme tk im Dokument dj Anz. d. Terme Anz. d. Cluster 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 1 0 1 0 1 0 1 2 3 4 5 6 c 1 7/6 0 6/6 3 11/6 0 8/6 5 15/6 0 10/6 230 Auswahl von Initial - Centroiden Davon hängt ab, ob das Verfahren in das globale oder in ein lokales Minimum des SSE (sum of the squared error) konvergiert. Originalpunkte 3 2.5 2 y 1.5 1 0.5 0 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 x 2.5 2.5 2 2 1.5 1.5 y 3 y 3 1 1 0.5 0.5 0 0 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 x optimales Clustering (globales Minimum des SSE) -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 x sub-optimales Clustering (lokales Minimum des SSE) 231 noch ein Beispiel (aus Tan/Steinbach/Kumar): identische DO, optimale vs. schlechte Initial-Centroiden (hier: Kreuze) 232 und noch ein Beispiel (aus Tan/Steinbach/Kumar): Cluster-Paare (rechts/links) werden gefunden, wenn in jedem Paar 2 Initial-Centroide sind 233 und noch ein Beispiel (aus Tan/Steinbach/Kumar): Cluster-Paare (rechts/links) werden nicht gefunden, wenn in einem Paar 1 und im anderen Paar 3 Initial-Centroide sind: 2 wirkliche Cluster werden verschmolzen und ein wirkliches Cluster wird geteilt: 234 ein Ansatz zur Vermeidung lokaler SSE Minima wähle den ersten Centroid zufällig oder verwende den Centroiden aller DO für alle weiteren Centroiden wähle jeweils einen Punkt, der am weitesten entfernt von allen bisher gewählten Centroiden ist Vorteil: Initial-Centroiden sind wohl separiert Nachteil: ggf. werden „Ausreißer“ zu Clustern erhoben (statt Regionen mit hoher Dichte) noch ein Ansatz führe zunächst ein hierarchisches Clustering durch verwende die Centroiden der dabei entstehenden K Cluster and Initial-Centroide des partitionierenden Clusterings Komplexität space O(((m K ) n) mit m n K I time O( I K m n) Anzahl der DO Anzahl der Attribute Anzahl der gewünschten Cluster Anzahl der Iterationen (gewöhnlich gering, konvergiert recht schnell) 235 4.2.2 Weiterführende Aspekte Vermeidung leerer Cluster bleibt ein Cluster leer, ersetzt man dessen Centroid durch einen neuen Centroiden, z.B. das DO, welches am weitesten von allen bisherigen Centroiden entfernt ist oder ein DO, welches in demjenigen Cluster liegt, welches am meisten zum Sum of Squared Error (SSE) beiträgt (den größten Cluster-SSE hat) und splittet dieses damit in 2 Cluster Ausreißer führen dazu, dass Centroiden nicht wirklich repräsentativ für ihr Cluster sind oder Mini-Cluster von Ausreißer-Gruppen entstehen Indiz zur Identifikation: DO eines Clusters, die extrem zum SSE dieses Clusters beitragen, stehen im Verdacht „Ausreißer“ zu sein Optimierung durch Nachbearbeitung (Post Processing) Splitting eines Clusters mit besonders großem Culster-SSE in 2 Cluster Einführung eines neuen Clusters mit dem DO, welches am weitesten von allen Centroiden entfernt ist, als neues Centroiden (s.o.) Entfernung der Centroiden solcher Clustern, deren Entfernung die geringste SSEErhöhung nach sich zieht und Zuordnung der betroffenen DO zu anderen Clustern Verschmelzung 2er Cluster, deren Centroiden am dichtesten beieinander liegen oder deren Verschmelzung die geringste SSE Erhöhung nach sich zieht 236 4.2.3 Bisecting K – means beginnend mit genau 2 Clustern in jedem Zyklus ein Cluster ein Cluster ausgewählt, welches in 2 neue Cluster gesplittet wird … …bis die gewünschte Anzahl von K Clustern entstanden ist Mögl. Auswahlkriterien: größtes Cluster (bzgl. Anz. d. DO) Cluster mit größtem SSE macht K - means weniger anfällig ggü. Initialisierungsproblemen (Finden guter InitialCentroiden): zunächst bisecting K – means anwenden dann die resultierenden Centroiden als Initial – Centroiden für klassisches K – means verwenden ⇒ Vermeidet lokale SSE – Minima, weil SSE Minima gezielt in Teilmengen der DO gesucht werden: Das Optimum für jede Teilmenge hat bessere „Chancen“, auch global das Optimum zu sein 237 4.2.4 Probleme mit K - means bei verschiedenen Clustertypen 4.2.4.1 Cluster verschiedener Größe größere natürliche Cluster tendieren dazu, durch K-Means aufgeteilt zu werden Originale DO Ergebnis von K-means (3 Cluster) 238 4.2.4 Verhalten von K - Means bei verschiedenen Clustertypen 4.2.4.2 Cluster verschiedener Dichte natürliche Cluster werden aufgrund unterschiedlicher Dichte mitunter nicht gefunden Originale DO Ergebnis von K-means (3 Cluster) 239 4.2.4 Verhalten von K - Means bei verschiedenen Clustertypen 4.2.4.3 Nicht globulare Cluster Ineinander „verwundene“ und nicht-konvexe Cluster werden nicht gefunden Aufgrund des Zuordnungs-Kriteriums „Abstand zum Centroiden“ werden nicht globulare natürliche Cluster nicht identifiziert. Originale DO Ergebnis von K-means (2 Cluster) 240 4.3 Hierarchisches Clustering produziert eine Menge baumartig geschachtelter Cluster kann im bottom-up oder top-down Verfahren durchgeführt werden: Agglomeratives Clustering (bottom-up) beginnt mit einzelnen DO als Clustern in jedem Schritt wird dasjenige Paar von Clustern verschmolzen, welches am dichtesten beieinander liegt Divisives Clustering (top down) beginnt mit einem alle DO enthaltenden Cluster in jedem Schritt ein Cluster in zwei neue Cluster gesplittet, bis die gewünschte Anzahl von Clustern erreicht wird Auswahl des zu splittenden Clusters: größtes Cluster Cluster mit größtem SSE … wird kaum verwendet 241 4.3 Hierarchisches Clustering Veranschaulichung der Cluster-Hierarchie Dendrogramm Cluster Diagramm Höhe der Gabelungen = Abstand der verschmolzenen Cluster 5 6 4 0.2 3 4 2 5 0.15 2 0.1 1 3 0.05 0 1 3 2 5 4 1 6 Jede gewünschte Anzahl von Clustern kann erzeugt werden, indem man das Dendrogramm auf der entsprechenden Höhe schneidet 242 4.3.1 Hierarchischer Clustering Grund-Algorithmus Beginnend mit den DO als jeweils ein Cluster werden die beiden am nächsten beieinander liegenden Cluster verschmolzen, bis nur noch ein Cluster verbleibt: 1. errechne eine Distanz-Matrix zwischen den Clustern 2. repeat verschmelze die beiden Cluster, die am nächsten beieinander liegen aktualisiere die Distanz-Matrix entsprechend (in der Zeile und/oder Spalte des neuen Clusters) 3. until nur noch ein Cluster verfügbar 243 Startsituation Start mit DO als individuelle Cluster und einer Distanz-Matrix p1 p2 p3 p4 p5 ... p1 p2 p3 p4 p5 . . . Distanz Matrix 244 Situation nach einer Anzahl von Durchläufen nach einigen Verschmelzungsschritten liegen einige Cluster vor C1 C2 C3 C4 C5 C1 C2 C3 C3 C4 C4 C5 Distanz-Matrix C1 C2 C5 245 Situation nach einer Anzahl von Durchläufen die 2 nächstgelegenen Cluster (C2 and C5) werden verschmolzen und die Distenz-Matrix aktualisiert C1 C2 C3 C4 C5 C1 C2 C3 C3 C4 C4 C5 Distanz-Matrix C1 C2 C5 246 nach der Verschmelzung Wie ist die Distanz-Matrix zu aktualisieren? C1 C3 C4 C3 C4 ? ? ? C1 C2 U C5 C2 U C5 ? ? C3 ? C4 ? Distanz-Matrix C1 C2 U C5 247 Ansätze zur Distanzermittlung zwischen 2 Clustern aus dem Distanzmaß zwischen 2 DO p1 Distanz ? p2 p3 p4 p5 ... p1 p2 p3 p4 p5 . . Distanz-Matrix . dem Distanzmaß zwischen 2 DO Ansätze zur Distanzermittlung zwischen 2 Clustern aus 1. MIN: Abstand zw. den einander nächstgelegenen DO der beiden Cluster 2. MAX: Abstand zw. den einander entferntesten DO der beiden Cluster 3. AVERAGE: Durchschnitt der Abstände jedes Paars von DO aus je einem der beiden Cluster 4. Abstand der Cetroiden 5. Ward‘s Methode: Centroid-basiert, Abstand ist def. durch die Verschlechterung des SSE (Sum of Squared Error)-Verbesserung beim Verschmelzen des Cluster-Paars 248 Ansätze zur Bestimmung der Cluster Abstände p1 p2 p3 p4 p5 ... p1 p2 p3 p4 1. MIN (single link) 2. MAX (complete link) 3. AVERAGE (group average) 4. Abstand der Centroiden p5 . . . Distanz-Matrix 5. Zielfunktions – orientierte Methoden Ward’s Clustering Methode Es wird diejenige Verschmelzung durchgeführt, welche die geringste Verschlechterung des SSE (sum of squared error) zur Folge hat. 249 Ansätze zur Bestimmung der Cluster Abstände p1 p2 p3 p4 p5 ... p1 p2 p3 p4 1. MIN (single link) 2. MAX (complete link) 3. AVERAGE (group average) 4. Abstand der Centroiden p5 . . . Distanz-Matrix 5. Zielfunktions – orientierte Methoden Ward’s Clustering Methode Es wird diejenige Verschmelzung durchgeführt, welche die geringste Verschlechterung des SSE (sum of squared error) zur Folge hat. 250 Ansätze zur Bestimmung der Cluster Abstände p1 p2 p3 p4 p5 ... p1 p2 p3 p4 1. MIN (single link) 2. MAX (complete link) 3. AVERAGE (group average) 4. Abstand der Centroiden p5 . . . Distanz-Matrix 5. Zielfunktions – orientierte Methoden Ward’s Clustering Methode Es wird diejenige Verschmelzung durchgeführt, welche die geringste Verschlechterung des SSE (sum of squared error) zur Folge hat. 251 Ansätze zur Bestimmung der Cluster Abstände p1 p2 p3 p4 p5 ... p1 p2 p3 p4 1. MIN (single link) 2. MAX (complete link) 3. AVERAGE (group average) 4. Abstand der Centroiden p5 . . . Distanz-Matrix 5. Zielfunktions – orientierte Methoden Ward’s Clustering Methode Es wird diejenige Verschmelzung durchgeführt, welche die geringste Verschlechterung des SSE (sum of squared error) zur Folge hat. 252 Datenobjekte Beispiel-Datensatz DO x 0,6 y 0.4005 0.5306 0,5 p2 0.2148 0.3854 0,4 p3 0.3457 0.3156 p4 0.2652 0.1875 p5 0.0789 0.4139 p6 0.4548 0.3022 y p1 0,3 0,2 0,1 0 0 0,1 0,2 0,3 0,4 0,5 x p1 Distanz-Matrix (Euklidischer Abstand) p2 p3 p4 p5 p6 p1 0 0.2357 0.2218 0.3688 0.3421 0.2347 p2 0.2357 0 0.1483 0.2042 0.1388 0.2540 p3 0.2218 0.1483 0 0.1513 0.2843 0.1100 p4 0.3688 0.2042 0.1513 0 0.2932 0.2216 p5 0.3421 0.1388 0.2843 0.2932 0 0.3921 p6 0.2347 0.2540 0.1100 0.2216 0.3921 0 253 Cluster nach MIN-Ansatz (single link approach) kleinster Abstand zwischen p3 und p6: • d(p3,p6) = 0.1100 erste Dendrogramm-Gabelung bei y = 0.1100 weiteres Beispiel • dist({p3,p6},{p2,p5}) = min(d(p3,p2), d(p3,p5) , d(p6,p2) , d(p6,p5) ) = min( 0.1483, 0.2843, 0.2540, 0.3921) = 0.1483 Dendrogramm-Gabelung bei y = 0.1483 1 3 5 0.2 5 2 1 2 3 0.15 6 0.1 0.05 4 4 0 3 6 2 5 4 1 254 Cluster nach MAX-Ansatz (complete link approach) kleinster Abstand zwischen p3 und p6: • d(p3,p6) = 0.1100 erste Dendrogramm-Gabelung bei y = 0.1100 weiteres Beispiel • dist({p2,p5},{p1}) = max(d(p2,p1), d(p5,p1)) = max( 0.2357, 0.3421) = 0.3421 Dendrogramm-Gabelung bei y = 0.3421 0.4 0.35 4 1 0.3 2 5 5 0.25 0.2 2 3 3 6 1 4 0.15 0.1 0.05 0 3 6 4 2 5 1 255 Cluster nach AVERAGE-Ansatz (group average approach = Abstand der Centroiden) kleinster Abstand zwischen p3 und p6: • d(p3,p6) = 0.1100 erste Dendrogramm-Gabelung bei y = 0.1100 weiteres Beispiel • dist({p3,p6, p4},{p2,p5}) = d(p3,p2)+d(p3,p5)+d(p6,p2)+d(p6,p5)+d(p4,p2)+d(p4,p5) / 6 = 0.1483+0.2843+0.2540+0.3921+0.2042+0.2932 / 6 = 0,2627 Dendrogramm-Gabelung bei y = 0.2627 5 4 2 5 0.3 1 0.25 0.2 2 3 6 1 4 3 0.1 5 0.1 0.05 0 3 6 4 2 5 1 256 Cluster nach WARD‘s Methode Es wird diejenige Verschmelzung durchgeführt, welche die geringste Verschlechterung des SSE (sum of squared error) zur Folge hat. 5 4 0.3 1 2 5 0.25 2 0.2 3 6 1 4 3 0.15 0.1 0.05 0 3 6 4 1 2 5 257 Vergleich aller Methoden 1 3 5 5 1 2 MIN 3 MAX 5 2 4 5 2 3 1 5 6 Group Average 4 1 2 5 2 3 1 4 6 4 Ward’s Method 3 3 3 2 4 5 6 1 5 1 2 2 4 4 6 1 4 3 258 Vorteile Nachteile MIN erkennt auch nicht-elliptische Cluster-Formen gut anfällig gegen verrauschte Daten und „Ausreißer“ tendiert zur Bildung „kettenförmiger“ Clustergebilde (chaining effect), in welchem sich DO befinden, die zueinander geringere Ähnlichkeit aufweisen als zu DO anderer Cluster MAX weniger anfällig gegen verrauschte Daten und Ausreißer tendiert dazu, große Cluster zu splitten bildet vorzugsweise gleich große Cluster bildet vorzugsweise kugelförmige Cluster erkennt nicht – konvexe Cluster oft nicht AVERAGE weniger empfindlich gegen verrauschte Daten und Ausreißern WARD bildet vorzugsweise gleich große Cluster bildet vorzugsweise kugelförmige Cluster erkennt nicht – konvexe Cluster oft nicht weniger anfällig gegen bildet vorzugsweise kugelförmige Cluster verrauschte Daten und Ausreißer eignet sich gut zur Ermittlung geeigneter Initial - Centroiden für K - means Nachteile aller hierarchischen Verfahren Gebildetes Cluster werden nie wieder “angefaßt”. Eine einmal vollzogene Verschmelzung kann nicht wieder rückgängig gemacht werden Die Zielfunktion wird meist nicht direkt minimiert (Ausnahme: Ward) diverse Cluster – Abstandsmaße haben spezifische Nachteile (s.o.) 259 4.4 Dichtebasiertes Clustering mit DBSCAN Dichte eines Punktes = Anzahl d. DO innerhalb eines Radius Eps (inkl. des Punktes) Core Point DO, in deren Eps - Umgebung ein Minimum MinPts weiterer DO ist Border Point DO, in deren Eps - Umgebung dieses Minimum nicht erreicht wird, aber ein Core Point in der Eps - Umgebung liegt Noise point: DO, die weder Core Point noch Border Point sind 260 In einem Cluster zusammengefasst werden: Core Points, welche einen Abstand von höchstens Eps zueinender haben Border Points, in deren Eps - Umgebung einer der o.g. Core points liegt ⇒ Für den Fall, dass mehrere Core Points in der Eps – Umgebung eines Border Points liegen, müssen Regeln für eine eindeutige Zuordnung getroffen werden. Algorithmus DBSCAN 1. klassifiziere alle DO als Core - , Border- oder Noise Point 2. entferne alle Noise Points 3. verbinde alle Core Points, deren Entfernung ≤ Eps ist 4. fasse alle verbundenen DO zu einem Cluster zusammen 5. ordne alle Border Points zu einem der Cluster seiner Core Points zu 261 Wie findet man geeignete Parameter Eps und MinPts ? Idee In allen Clustern sollte die Distanz eines DO zu seinem k -t nächsten Nachbarn etwa gleich sein. Noise Points sollten ihren k -t nächsten Nachbarn in einer deutlich weiteren Entfernung haben als Cluster Points Ansatz Ermittle für alle DO die Distanz ihrem k -t nächsten Nachbarn für verschiedene k Zeichne für jedes k ein Diagramm, in dem für jede Distanz die Anzahl der in diese Distanz hinein fallenden DO abgetragen ist. Ab einer gewissen Distanz steigt diese Anzahl sprunghaft; dort ist der für dieses k (als MinPts) geeignete Wert für Eps 262 ‘n Beispiel (aus dem das Diagramm der vorigen Folie gewonnen wurde) 3000 DO im R2 MitPts = 4 Eps = 10 (siehe Diagramm) Original - DO • • • Core Points Border Points Noise Points 263 ‘n Beispiel (aus dem das Diagramm der vorigen Folie gewonnen wurde) 3000 DO im R2 MitPts = 4 Eps = 10 (siehe Diagramm) Original - DO Cluster 264 Stärken und Schwächen von DBSCAN wenig anfällig ggü. verrauschten Datan kann verschiedene Clusterformen und –größen erkennen (und ist in dieser Frake z.B. K – means weit überlegen) kann Cluster mit sehr verschiedenen Dichten schlecht erkennen ist schwer anwendbar bei viel - dimensionalen Daten (schwer zu definierendes Dichte – Maß) hohe Zeitkomplexität, insbesondere bei der paarweisen Ermittlung eines k –t nächsten Nachbarn bei viel – dimensionalen Daten 265