Klassifikationsregeln Klassifikations/Entscheidungsbaum
Transcription
Klassifikationsregeln Klassifikations/Entscheidungsbaum
Klassifikationsregeln Vorhersageattribute V1, V2, ..., Vn Vorhergesagtes Attribut A Klassifikationsregel P1(V1) ∧ P2(V2) ∧ ... ∧ Pn(Vn) Î A = c Prädikate P1, P2, .., Pn Konstante c Beispielregel Data Mining Klassifikation Assoziationsregeln (wieAlt>35) ∧ (Geschlecht =`m´) ∧ (Autotyp=`Coupé´) Î (Risiko=´hoch´) Clustering Klassifikations/Entscheidungsbaum Klassifikations/Entscheidungsbaum Geschlecht Geschlecht m m w w geringes R isiko wiealt geringes R isiko wiealt < = 35 <=35 > 35 >35 hohes R isiko hohes R isiko A utotyp C oupe hohes R isiko A utotyp Coupe V an geringes R isiko hohes R isiko Van geringes R isiko Klassifikations/Entscheidungsbaum Konstruktion von Entscheidungsbäumen (Langley 1996, Quinlan 1993 ) Geschlecht m w geringes R isiko wiealt <=35 >35 hohes R isiko A utotyp C oupe (wieAlt>35) ∧ (Geschlecht =`m´) ∧ (Autotyp=`Coupé´) Î (Risiko=´hoch´) Grundlagen - Entscheidungsbäume sind eine spezielle Form von Konzepthierarchien - Grundidee: • aus gegebenen Trainingsbeispielen wird Entscheidungsbaum aufgebaut • Entscheidungsbaum liefert intensionale Beschreibung der vorgegebenen Klassen • Entscheidungsbaum ordnet neue Beispiele mit gewisser Fehlerrate einer der vorgegebenen Klassen zu V an hohes R isiko Konstruktion von Entscheidungsbäumen geringes R isiko Konstruktion von Entscheidungsbäumen Generelle Voraussetzungen: Abbildung VI.1-1: Training instances from a cell domain involving four attributes and three distinct classes. ( Langley 1996 ) • Beispiele werden in Form von Attribut-Wert-Paaren beschrieben - Attribut hat Name und Wertebereich - Wertebereich ist nominal, diskret oder kontinuierlich - jedes Beispiel wird durch dieselben Attribute beschrieben (vgl. relationale Datenbanken ) • Menge von Klassen (Konzepten) ist vordefiniert; i.a. ist die Anzahl der Klassen sehr viel kleiner als die Zahl der Trainingsbeispiele Attributes: number of nuclei number of tails color wall (values: 1,2) (values: 1,2) ( values: light, dark) (values: thin, thick) Konstruktion von Entscheidungsbäumen Konstruktion von Entscheidungsbäumen ° Von jedem Trainingsbeispiel ist (idealerweise) die Klassenzugehörigkeit bekannt • überwachtes Lernen (supervised learning) • ein Attribut spezifiziert jeweils die Klassenzugehörigkeit (vgl. auch Holländer- Klassifizierung) Abbildung VI.1-2: A decision tree generated by the DDT algorithm for the training instances from Abbildung VI.11. Each terminal node specifies an associated class name and the number of training cases covered. Numbers next to the notes indicate the order in which the algorithm generated them. The notation (a), which associates attributes with nodes and values with links, is equivalent to (b), which shows the instances that each node covers. (Langley 1996) Konstruktion von Entscheidungsbäumen Struktur eines univariaten Entscheidungsbaums: • • • Blattknoten werden mit jeweils einer Klasse benannt, alle anderen Knoten mit jeweils einem Test auf ein einziges Attribut wenn das Attribut eines Knotens k verschiedene Werte hat (bzw. in k Wertebereiche aufgeteilt wird), dann hat der Knoten k Sohnknoten Beispielmenge wird an dem Knoten in k disjunkte Teilmengen partitioniert in Abhängigkeit vom jeweiligen Wert des Attributs ° Klassen müssen durch Entscheidungsbäume oder Produktionsregeln beschreibbar sein • typischerweise Beschreibungen der Form [(att i1 = valuei1 ) ∧ K ∧ (att i n = valuei n )] Beispiel: Klasse Healthy: [( number_of_tails = 2) ∧ (number_of_nuclei = 1)] ∨ [( number_of_tails = 1) ∧ (color = dark) ∧ (number_of_nuclei = 2)] Konstruktion von Entscheidungsbäumen • verbinde jeden Knoten mit all seinen Sohnknoten und beschrifte die Kanten mit ihren zugehörigen Attributwerten • neue Fälle durchlaufen für ihre Klassifikation den Entscheidungsbaum von der Wurzel ausgehend bis zu einem Blattknoten ai Graphisch: ai1 - m Attribute a1, a2, ... am - Wertebereich von Attribut ai: {ai ,...,ai } 1 ki von Attribut al: {al ,...,al } 1 • Die Extension eines Knotens ist immer eine Obermenge der Extension aller Sohnknoten kl aik ai2.......... al al1 al2 .......... alk l i Schuhe Wie man in Holland Leute erkennt (ohne Gewähr) ... 4, 7, 10 3, 5, 8 Grafische Veranschaulichung der Klassifikationsaufgabe: Unbekannt Käse Ein Entscheidungsbaum zur Klassifikation Gouda NichtHolländer 1, 6 2, 9 Konstruktion von Entscheidungsbäumen - Beispielalgorithmus für Aufbau eines univariaten Entscheidungsbaums: DDT - Algorithmus: Divisive Induction of Univariate Decision Trees n Holländer e n ag pe nw om oh W Kl Holländer Holländisch + + + + + - al Klompen NichtHolländer Wohnwagen Ja Ja Ja Nein Ja Nein Ja Nein Nein Ja t nn ka be un Normal LieblingsKäse Gouda Camembert Gouda Gouda Camembert Gouda Gouda Gouda Camembert Camembert m or Schuhe Unbek. Unbek. Klompen Normal Klompen Unbek. Normal Klompen Unbek. Normal N 1 2 3 4 5 6 7 8 9 10 Konstruktion von Entscheidungsbäumen Schuhe Konstruktion von Entscheidungsbäumen -/- -/- +/+ -/- ++ +/+ Gouda Camembert + : Holländer - : kein Holländer Käse Konstruktion von Entscheidungsbäumen DDT Algorithm: Divisive Induction of Univariate Decision Trees Inputs: The current node N of the decision tree. A set of classified training instances ISET. A set of symbolic attributes and their values ASET. - DDT ist nicht-inkrementell: - alle Trainingsbeispiele müssen verfügbar sein Output: - DDT ist Greedy-Algorithmus (greedy=gierig): - lokal optimale Entscheidungen werden getroffen - getroffene Entscheidungen können nicht mehr zurückgenommen werden A univariate decision tree. Top-level call: DDT(root, ASET, ISET). Konstruktion von Entscheidungsbäumen Konstruktion von Entscheidungsbäumen Procedure DDT(N, ASET, ISET) Beispiel "Spielen im Freien": If the training set ISET is empty, Then label terminal node N as DEFAULT. Else IF all instances ISET are equal with respect to all attributes in ASET // neuer Blattknoten // this is especially the case if ASET is empty // gefunden Outlook sunny sunny sunny sunny sunny overcast overcast overcast overcast rain rain rain rain rain ° 4 Attribute ° 2 Klassen: Play Don‘t Play Then label terminal node N with the class name. Else for each attribute A in ASET, Evaluate A according to its ability to // wähle „bestes“ discriminate the classes in ISET. // Attribut B Select attribute B with the best evaluation score. For each value V of B, Create a new child C of node N. // expandiere Label the edge from N to C with V. // aktuellen Let JSET be the ISET instances having value V on B. // Knoten Temp (F) 75 80 85 72 69 72 83 64 81 71 65 75 68 70 Humidity (%) 70 90 85 95 70 90 78 65 75 80 70 80 80 96 W indy? true true false false false true false true false true true false false false Abbildung VI.1-3: A small training set (Quinlan 1993) Let KSET be ASET \ {B}. DDT(C, KSET, JSET). Konstruktion von Entscheidungsbäumen Konstruktion von Entscheidungsbäumen Graphische Darstellung des Entscheidungsbaumes zum Beispiel: outlook humidity (Quinlan 1993) ≤ 75 Play rain overcast sunny Abbildung VI.1-4: Final partition of cases and corresponding decision tree Class Play Dont´t Play Dont´t Play Dont´t Play Play Play Play Play Play Dont´t Play Dont´t Play Play Play Play windy Play > 75 Don‘t Play true false Don‘t Play Play Konstruktion von Entscheidungsbäumen C4.5 - Algorithmus (Quinlan 1993) - weitverbreiteter Algorithmus zum Aufbau von Entscheidungsbäumen (oder entsprechenden Produktionsregeln) - Spezielle Variante des DDT-Algorithmus: ° Verwendung einer speziellen Bewertungsfunktion für Auswahl des besten Attributs: gain ratio ° beinhaltet zusätzlich Verfahren zur nachträglichen Vereinfachung des erzeugten Entscheidungsbaums: pruning ° aus Entscheidungsbaum können entsprechende Produktionsregeln erzeugt werden ⇒ alternative lesbarere Darstellung ° Windowing - Technik für Handhabung einer großen Anzahl von Beispielen Konstruktion von Entscheidungsbäumen a) Bewertungsfunktion für Attributauswahl • für gegebene Menge von Trainingsbeispielen ist Anzahl der möglichen Entscheidungsbäume i.a. sehr groß • Daher ist Generierung aller Entscheidungsbäume und dann Auswahl des Besten (exhaustive search) nicht möglich • Daher wird in jedem Expansionsschritt das vielversprechendste Attribut ausgewählt (Greedy Algorithmus): verwende das Attribut, das am meisten Information liefert (im Sinne der Informationstheorie) • C4.5 verwendet gain ratio als Kriterium. Es ist eine Abwandelung des im folgenden beschriebenen gain criterion. Konstruktion von Entscheidungsbäumen gain criterion - Bezeichnungen: S: Gesamtbeispielmenge - Informationsgehalt einer Botschaft bi: T: Menge der Trainingsbeispiele (T⊂ S) hat bi die Wahrscheinlichkeit pi , T1, T2, ..., Tn: Partition von T so ist der Informationsgehalt von bi ≡ -log2 (pi) bits Beispiel: 8 gleichwahrscheinliche Botschaften b1, ... ,b8 : S T •• • •• •• ••• •T•4 • • T1 ••• T3 • • • • ••• T 2 •• • • jedes bi hat den Informationsgehalt - log (1) bits = 3 bits 28 Konstruktion von Entscheidungsbäumen Konstruktion von Entscheidungsbäumen - Botschaft, die mitteilt, dass beliebig ausgewähltes Beispiel aus Menge T in Klasse ci liegt, hat den Informationsgehalt − log 2 ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ C ∩T i bits T - Erwartungswert für den Informationsgehalt dieser Botschaften (bei k Klassen C1, ... ,Ck): ⎛ ⎜ ⎜ ⎝ (Entropie von T) ⎟ ⎠ Dann ist der Erwartungswert für den Informationsgehalt einer Botschaft, die mitteilt, dass ein beliebig ausgewähltes Beispiel aus Ti in der Klasse Cj liegt (bei k Klassen C1 , ... , Ck ): ⎛ ⎜ ⎞ ⎟ ⎜ ⎝ ⎟ ⎠ ⎜ C ∩T ⎟ k C j ∩Ti ⎜ j i ⎟⎟ info(T ) = − ∑ * log ⎜⎜ ⎟ bits i 2 ⎜ ⎟ T T ⎜ ⎟ j =1 i ⎟ i ⎜ z.B.: k = 2 ⎞ ⎟ ⎜ C ∩T ⎟ k C j ∩T ⎟ ⎜ j ⎟ bits info( T ) = − ∑ * log ⎜⎜ 2⎜ T ⎟⎟ T ⎟ ⎜ j =1 ⎟ ⎜ - Sei X ein Test, der T in T1, ... , Tn partitioniert. Damit ist der Erwartungswert über alle T1, ... , Tn: C1: play C2: don‘t play z.B.: k = 2 C1: play C2: don‘t play n T infox(T) = ∑ i * info(T ) i i =1 T z.B.: X: outlook; n = 3 T1: sunny T2: overcast T3: rain Konstruktion von Entscheidungsbäumen - gain criterion : gain(x) = info(T) - info x(T) Konstruktion von Entscheidungsbäumen - gain criterion : gain(x) = info(T) - info x(T) Maß für den Informationsgewinn durch Partitionierung von T durch Test X: • wähle Test X, so dass gain (X) maximiert wird, d.h. möglichst großer Informationsgewinn durch aussagekräftiges Attribut X • mit info(T) fix wähle ein Attribut X mit möglichst kleinem infoX(T), d.h. Erwartungswert für noch benötigte Informationen zur Klassifikation ist möglichst klein Bem.: Dies ist verwandt zum gemittelten Information Gain I gain ( c , A ) = 1 s 1 s 1 s I gain ( c , Ai ) = ∑ ( H ( c ) − H ( c |Ai )) = H ( c ) − ∑ H ( c |Ai ) ∑ s i =1 s i =1 s i =1 nur dass dort nur die Vorhersage einer Klasse C und nicht die Vorhersage in die Einteilung der Klassen C1 , ... , Ck betrachtet wurde. k=2 Konstruktion von Entscheidungsbäumen Fortführung des Beispiels "Spielen im Freien" : 2 Klassen : Play, Don‘t Play Klasse Play: 9 Fälle Klasse Don‘t Play : 5 Fälle damit: ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜⎜ ⎝ k=2 Konstruktion von Entscheidungsbäumen C1: play C1: play C2: don‘t play C2: don‘t play ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟⎟ ⎠ C ∩T 2 C j ∩T j info(T) = − ∑ * log bits 2 T T j =1 - Attribut ‚outlook‘ erzeugt 3 Teilmengen: ⎯ ⎯→ T = 5 T : outlook = sunny 1 1 T : outlook = overcast ⎯⎯→ T = 4 2 2 T : outlook = rain ⎯ ⎯→ T = 5 3 3 Und liefert nach Definition damit: info ⎛ ⎞ ⎛ ⎞⎞ ⎛ = − ⎜⎜⎜ 9 * log ⎜⎜ 9 ⎟⎟ + 5 log ⎜⎜ 5 ⎟⎟ ⎟⎟⎟ bits 14 14 14 14 ⎝ 2 ⎠⎠ 2⎝ ⎠ ⎝ = 0.940 bits (durchschnittlich benötigte Information zur Identifizierung der Klassenzugehörigkeit eines Beispiels aus T) X: outlook; n = 3 T1: sunny T2: overcast T3: rain 3 T (T) = ∑ i * info(T ) outlook i i =1 T ⎛ ⎛ ⎞⎞ ⎛ ⎞ = 5 * ⎜⎜⎜ − 2 * log ⎜⎜ 2 ⎟⎟ − 3 * log ⎜⎜ 3 ⎟⎟ ⎟⎟⎟ 14 ⎝ 5 2⎝ 5 ⎠ 5 2 ⎝ 5 ⎠⎠ ⎛ ⎛ ⎞⎞ ⎛ ⎞ + 4 * ⎜⎜⎜ − 4 * log ⎜⎜ 4 ⎟⎟ − 0 * log ⎜⎜ 0 ⎟⎟ ⎟⎟⎟ 14 ⎝ 4 2⎝ 4 ⎠ 4 2 ⎝ 4 ⎠⎠ ⎛ ⎛ ⎞ ⎛ ⎞⎞ + 5 * ⎜⎜⎜ − 3 * log ⎜⎜ 3 ⎟⎟ − 2 log ⎜⎜ 2 ⎟⎟ ⎟⎟⎟ 14 ⎝ 5 2⎝5 ⎠ 5 2 ⎝ 5 ⎠⎠ = 0.694 bits Konstruktion von Entscheidungsbäumen k=2 Konstruktion von Entscheidungsbäumen C1: play C2: don‘t play Daraus folgt: gain(outlo ok) = info(T) − info outlook Testwerten (T) (Attribut mit großem Wertebereich), wie das folgende Beispiel zeigt. = ( 0.940 − 0.694 ) bits = 0.246 bits ⇒ Bildung von Teilmengen mit wenigen Fällen Vergleich mit dem Attribut ‚windy‘: windy erzeugt 2 Teilmengen: T : windy = true 1 X: windy; n = 2 T =6 1 T1: true T : windy = false ⎯⎯→ T = 8 T2: false 2 2 2 T (T) = ∑ i * info(T ) = K = 0.892 bits o info windy i i =1 T o damit gain(windy ) = (0.940 − 0.892) bits = 0.048 bits ⎯⎯→ Also wird ‚outlook‘ als stärker diskriminierendes Merkmal weiter oben im Baum verwandt als ‚windy‘. Das gain criterion bevorzugt Tests mit vielen verschiedenen ⇒ im Extremfall einelementige Teilmengen ⇒ infoX(T) = 0 Aber für Klassifizierungszwecke ist die Bildung derartiger Teilmengen unerwünscht (Overfitting)! Deswegen wird (nach dem Beispiel) die Variante gain ratio des gain criterion vorgestellt. Konstruktion von Entscheidungsbäumen Fortführung des Beispiels "Spielen im Freien" : - füge neues Attribut ‘‘Datum‘‘ hinzu • Attribut mit vielen verschiedenen Werten • Attribut ‘‘Datum‘‘ liefert sehr hohen Informationsgewinn • Datumsangabe bestimmt eindeutig Wert des Zielattributes, d.h. Klassenzugehörigkeit • Attribut ‘‘Datum‘‘ würde als Wurzelattribut gewählt werden • Das Attribut ‘‘Datum‘‘ ist sehr gut geeignet für die Beschreibung der Trainingsdaten, aber nicht geeignet für Klassifikation neuer, bisher unbekannter Beispiele. Konstruktion von Entscheidungsbäumen Anwendung auf das Beispiel: Attribut 'outlook' erzeugt 3 Teilmengen mit 5, 4 und 5 Beispielen; damit ⎛ 4 ⎞ ⎛ 4 ⎞ ⎛ 5 ⎞ 5 ⎞⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎟ * log ⎜ ⎟ ⎟ * log ⎜ ⎟ −⎜ 2 2 ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ 14 ⎠ ⎝ 14 ⎠ ⎝ 14 ⎠ ⎝ 14 ⎠ ⎛ 5 ⎞ ⎛ 5 ⎞ − ⎜⎜ ⎟⎟ * log ⎜⎜ ⎟⎟ = 1.577 bits 2⎜⎝ 14 ⎟⎠ ⎜ ⎟ ⎝ 14 ⎠ ⎛ split info(outlook) = − ⎜⎜ ⎜ ⎝ damit gain ratio(outlook) = gain(outlook) split info(outlook) = 0.246 1.577 = 0.156 Konstruktion von Entscheidungsbäumen - Idee: normalisiere 'gain criterion' durch 'split info': Erwartungswert für Informationsgehalt einer Botschaft, die mitteilt, daß beliebig ausgewähltes Beispiel in Teilmenge T liegt i (T wird durch Test X in Teilmengen T ,K,Tn partitioniert) 1 ⎛ ⎜ ⎞ ⎟ ⎝ ⎠ ⎜ T ⎟ n T split info(x) = − ∑ i * log ⎜⎜ i ⎟⎟ bits 2⎜ T ⎟ ⎜ ⎟ i =1 T ⎜ ⎟ damit: gain ratio(x) = gain(x) split info(x) - da 'split info' für wenige große T sehr klein ist : i maximiere ' gain ratio' unter Nebenbedingung, dass gain wenigstens so groß ist wie der Durchschnittswert von gain über alle möglichen Tests X. Pruning Original decision tree: physician fee freeze = n: adoption of the budget resolution = y: democrat (151) adoption of the budget resolution = u: democrat (1) adoption of the budget resolution = n: education spending = n: democrat (6) education spending = y: democrat (9) education spending = u: republican (1) physician fee freeze = y: synfuels corporation cutback = n: republican (97/3) synfuels corporation cutback = u: republican (4) After pruning: synfuels corporation cutback = y: physician fee freeze = n: democrat (168/2.6) duty free exports = y: democrat (2) physician fee freeze = y: republican (123/13.9) duty free exports = u: republican (1) physician fee freeze = u: duty free exports = n: mx missile = n: democrat (3/1.1) education spending = n: democrat (5/2) mx missile = y: democrat (4/2.2) education spending = y: republican (13/2) mx missile = u: republican (2/1) education spending = u: democrat (1) physician fee freeze = u: water project cost sharing = n: democrat (0) water project cost sharing = y: democrat (4) water project cost sharing = u: mx missile = n: republican (0) mx missile = y: democrat (3/1) Abbildung VI.1-5: Decision tree before and mx missile = u: republican (2) after pruning (Quinlan 1993 ) Kapitel VI.1: Konstruktion von Entscheidungsbäumen Kapitel VI.1: Konstruktion von Entscheidungsbäumen Abbildung VI.1-9: Erzeugung von Produktionsregeln - Komplexe Entscheidungsbäume sind schwer zu verstehen, da jeder Test im Kontext aller vorhergehenden Tests zu interpretieren ist. - Lösung: • Betrachte alle Tests auf Pfad von Wurzel zu aktuellem Knoten • und transformiere die Pfadtests in Bedingungen für Produktionsregeln der Form labor-neg decision tree in graph form (Quinlan 1993) IF test1 ∧ test2 ∧ .. ∧ testn THEN class = C1 • Eine Klasse wird als Default-Klasse verwendet. Kapitel VI.1: Konstruktion von Entscheidungsbäumen Abbildung VI.1-10: Result of postprocessing to rules (Quinlan 1993) Kapitel VI.1: Konstruktion von Entscheidungsbäumen - Regeln können gegebenenfalls vereinfacht werden durch Entfernen von Tests aus dem Bedingungsteil: Beispiel: In Regel 4 in Abbildung VI.1-10 ist die Bedingung ‚statutary holidays ≤ 10‘ entfernt worden. - Vorgehensweise für Klassifikation eines neuen Beispiels: ° gehe Regeln der Reihe nach durch ( Reihenfolge ist relevant ) ° erste Regel, deren Bedingungsteil erfüllt ist, wird ausgewählt ° rechte Seite der Regel bestimmt Klassenzugehörigkeit für betrachtetes Beispiel ° ist von keiner Regel der Bedingungsteil erfüllt, wird Default-Klasse gewählt Kapitel VI.1: Konstruktion von Entscheidungsbäumen e) Fazit - C4.5 weitverbreitetes Verfahren zur Erzeugung von Entscheidungsbäumen und zugehörigen Produktionsregeln - Verfahren abhängig von ° Bewertungsfunktion für Attributauswahl ° Schätzung der Fehlerrate bei Pruning ° Schätzung der Fehlerrate bei Erzeugung und Vereinfachung von Produktionsregeln - vergleichbare Verfahren ° ID3 (Quinlan 1983) ° CN2 (Clark/Niblatt 1989) VerkaufsTransaktionen TransID Produkt 111 Drucker 111 Papier 111 PC 111 Toner 222 PC 222 Scanner 333 Drucker 333 Papier 333 Toner 444 Drucker 444 PC 555 Drucker 555 Papier 555 PC 555 Scanner 555 Toner Verkaufstransaktionen Warenkörbe Finde alle Assoziationsregeln L Î R mit einem Support größer als minsupp und einer Confidence von mindestens minconf Dazu sucht man zunächst die sogenannten frequent itemsets, also Produktmengen, die in mindestens minsupp der Einkaufswägen/ Transaktionen enthalten sind Der A Priori-Algorithmus basiert auf der Erkenntnis, dass alle Teilmengen eines FI auch FIs sein müssen Assoziationsregeln Beispielregel Wenn jemand einen PC kauft, dann kauft er/sie auch einen Drucker Confidence Dieser Wert legt fest, bei welchem Prozentsatz der Datenmenge, bei der die Voraussetzung (linke Seite) erfüllt ist, die Regel (rechte Seite) auch erfüllt ist. Eine Confidence von 80% für unsere Beispielregel sagt aus, dass vier Fünftel der Leute, die einen PC gekauft haben, auch einen Drucker dazu gekauft haben. Support Dieser Wert legt fest, wieviele Datensätze überhaupt gefunden wurden, um die Gültigkeit der Regel zu verifizieren. Bei einem Support von 1% wäre also jeder Hundertste Verkauf ein PC zusammen mit einem Drucker. A Priori Algorithmus für alle Produkte überprüfe ob es ein frequent itemset ist, also in mindestens minsupp Einkaufswägen enthalten ist k:=1 iteriere solange für jeden frequent itemset Ik mit k Produkten generiere alle itemsets Ik+1 mit k+1 Produkten und Ik ⊂ Ik+1 lies alle Einkäufe einmal (sequentieller Scan auf der Datenbank) und überprüfe, welche der (k+1)-elementigen itemsetKandidaten mindestens minsupp mal vorkommen k:=k+1 bis keine neuen frequent itemsets gefunden werden VerkaufsTransaktionen TransID Produkt 111 Drucker 111 Papier 111 PC 111 Toner 222 PC 222 Scanner 333 Drucker 333 Papier 333 Toner 444 Drucker 444 PC 555 Drucker 555 Papier 555 PC 555 Scanner 555 Toner A Priori-Algorithmus Minsupp=3 Disqualifiziert Zwischenergebnisse FI-Kandidat {Drucker} {Papier} {PC} {Scanner} {Toner} {Drucker, Papier} {Drucker, PC} {Drucker, Scanner} {Drucker, Toner} {Papier, PC} {Papier, Scanner} {Papier, Toner} {PC, Scanner} {PC,Toner} {Scanner, Toner} Anzahl 4 3 4 2 3 3 3 3 2 3 2 Ableitung von Assoziationsregeln aus den frequent itemsets Betrachte jeden FI mit hinreichen viel support Bilde alle nicht-leeren Teilmengen L ⊂ FI und untersuche die Regel L Î FI – L Die Confidence dieser Regel berechnet sich als Condicence(L Î FI – L) = support(FI) / support(L) Wenn die Confidence ausreicht, also > minconf ist, behalte diese Regel Betrachte FI = {Drucker, Papier, Toner} Support = 3 Regel: {Drucker} Î {Papier, Toner} Confidence = S({Drucker, Papier, Toner}) / S({Drucker}) = (3/5) / (4/5) = ¾ = 75 % VerkaufsTransaktionen TransID Produkt 111 Drucker 111 Papier 111 PC 111 Toner 222 PC 222 Scanner 333 Drucker 333 Papier 333 Toner 444 Drucker 444 PC 555 Drucker 555 Papier 555 PC 555 Scanner 555 Toner A Priori-Algorithmus Zwischenergebnisse FI-Kandidat {Drucker, Papier} {Drucker, PC} {Drucker, Scanner} {Drucker, Toner} {Papier, PC} {Papier, Scanner} {Papier, Toner} {PC, Scanner} {PC,Toner} {Scanner, Toner} {Drucker, Papier, PC} {Drucker, Papier, Toner} {Drucker, PC, Toner} {Papier, PC, Toner} Anzahl 3 3 3 2 3 2 2 3 2 2 Erhöhung der Confidence Vergrößern der linken Seite (dadurch Verkleinern der rechten Seite) führt zur Erhöhung der Confidence Formal: L ⊂ L+ , R ⊂ RConfidence(LÎR) <= C(L+ ÎR- ) Beispiel-Regel: {Drucker} Î {Papier, Toner} Confidence = S({Drucker, Papier, Toner}) / S({Drucker}) = (3/5) / (4/5) = ¾ = 75% Beispiel-Regel: {Drucker,Papier} Î {Toner} Conf. = S({Drucker, Papier, Toner}) / S({Drucker,Papier}) = (3/5) / (3/5) = 1 = 100% Clustering Clusteranalyse Schadenshöhe (Bacher 1994) Outlier • Zusammenfassung von Objekten in homogene Gruppen (Cluster, Klassen) • Ziel dabei ist eine möglichst große • Homogenität innerhalb der Cluster • Heterogenität zwischen den Clustern Alter der Fahrer Clusteranalyse • geg. Menge von Objekten kann sich für Clusterbildung eignen, muss aber nicht: Clusteranalyse • geg. Menge von Objekten kann sich für Clusterbildung eignen, muss aber nicht: Clusteranalyse • geg. Menge von Objekten kann sich für Clusterbildung eignen, muss aber nicht: Clusteranalyse • Clusteranalyseverfahren unterscheiden sich u.a. • in den Zuordnungsprinzipien • exakte Zuordnung • probabilistische Zuordnung • possibilistische Zuordnung • in den benutzten Informationen • partielle Verfahren paarweiser Vergleich • globale Verfahren Distanz aller Objekte wird für Clusterbildung genutzt. • in der Vorgehensweise • hierarchisch • partitionierend • heuristisch • objective function based • begrifflich Clusteranalyse • geg. Menge von Objekten kann sich für Clusterbildung eignen, muss aber nicht: Clusteranalyse • Zuordnungsprinzipien • exakte Zuordnung • Objekte werden mit Wahrscheinlichkeit 1 einem Cluster (nicht-überlappende Zuordnung) oder mehreren Clustern (überlappende Zuordnung) zugeordnet. • probabilistische Zuordnung • Objekte werden mit einer zwischen 0 und 1 liegenden Wahrscheinlichkeit einem oder mehrern Clustern zugeordnet • Verallgemeinerung der deterministischen Verfahren • possibilistische Zuordnung • Objekte werden über eine Zugehörigkeitsfunktion, die Werte zwischen 0 und 1 annehmen kann, jedem Cluster zu einem bestimmten Zugehörigkeitsgrad zugeordnet. Clusteranalyse Clusteranalyse Vorgehensweise • legt fest, nach welcher Vorgehensweise ein Cluster erzeugt wird. • hierarchische Verfahren hierarchische Verfahren werden unterschieden in • Partitionierende Verfahren • zufällig gewählte Anfangspartition (Menge nicht-überlappender Cluster) der zu clusternden Objekte wird schrittweise verbessert durch Neuzuordnung der Objekte in den Clustern • im folgenden betrachtet: • K-Means Verfahren • heuristische Vorgehensweise • Dimensionalität der zu clusternden Objekte wird reduziert, um eine auf zwei bis drei Dimensionen reduzierte graphische Darstellung zu erreichen • objective function based • agglomerative Verfahren Cluster werden bottom-up erzeugt, ausgehend von einelementigen Clustern, den zu clusternden Objekten • divisive Verfahren Cluster werden top-down erzeugt, ausgehend von einem Cluster, das alle zu clusternden Objekte enthält divisive Verfahren waren in der Vergangenheit eher weniger bedeutend, gewinnen aber gerade für das Clustering von Dokumenten an Bedeutung • kein prozedurales Vorgehen wie bei hierarchischen Verfahren • Basis bildet die Objektfunktion, die jedem Cluster einen Qualitätswert zuordnet Clusteranalyse Hierarchisch agglomerativer Algorithmus • bei n geg. Objekten werden (n-1) überlappungsfreie Clusterlösungen berechnet • Algorithmus kann mit verschiedenen Ähnlichkeitsmaßen bzw. Unähnlichkeitsmaßen arbeiten, u.a. • Complete Linkage • Single Linkage Clusteranalyse • Complete Linkage • Unähnlichkeit zwischen zwei Clustern wird durch das Maximum der paarweisen Unähnlichkeiten der Clusterelemente bestimmt: • für c1, c2 Cluster, d Abstandsmaß: D (c1 , c2 ) = max d ( x, y ) x∈c1 , y∈c2 • hohe Anforderungen an die Homogenität der zu bildenen Cluster Feature Based Similarity Simple Similarity Queries Specify query object and Find similar objects – range query Find the k most similar objects – nearest neighbor q. Join Applications: Catalogue Matching Catalogue matching E.g. Astronomic catalogues Join Applications: Clustering Clustering (e.g. DBSCAN) R S Similarity self-join R-tree Spatial Join (RSJ) Clusteranalyse • Single Linkage procedure r_tree_sim_join (R, S, ε) if IsDirpg (R) ∧ IsDirpg (S) then foreach r ∈ R.children do foreach s ∈ S.children do if mindist (r,s) ≤ ε then CacheLoad(r); CacheLoad(s); r_tree_sim_join (r,s,ε) ; else (* assume R,S both DataPg *) foreach p ∈ R.points do foreach q ∈ S.points do if |p − q| ≤ ε then report (p,q); R S • für c1, c2 Cluster, d Abstandsmaß: D (c1 , c2 ) = min d ( x, y ) x∈c1 , y∈c2 • geringe Anforderungen an die Homogenität der zu bildenen Cluster ε Clusteranalyse • Algorithmus (hierarchisch agglomerativ) Schritt 1: Schritt 2: Schritt 3: • Unähnlichkeit zwischen zwei Clustern wird durch das Minimum der paarweisen Unähnlichkeiten der Clusterelemente bestimmt: Clusteranalyse Beispiel (Bacher 1994): geg. Datenmatrix mit 9 Objekten und 2 Variablen Jedes Klassifikationsobjekt bildet zu Beginn ein selbständiges Cluster. Setze daher die Clusterzahl K gleich der Klassifikationsobjektzahl n. Suche das Clusterpaar ({p},{q}) mit der größten Ähnlichkeit bzw. der geringsten Unähnlichkeit, verschmelze das Clusterpaar zu einem neuen Cluster {p,q} und reduziere die Clusterzahl K um 1 (K=K-1). Prüfe, ob K gleich 1 ist. Ist das der Fall, beende den Algorithmus, da alle Klassifikationsobjekte einem einzigen Cluster angehören. Bei nein fahre mit Schritt 4 fort. Schritt 4: Berechne die Ähnlichkeiten bzw. Unähnlichkeiten des neu gebildeten Clusters {p,q} zu den verbleibenden Clustern k. Schritt 5: Gehe zu Schritt 2. A B C D E F G H I Datenmatrix X1 X2 -2 1 -1 2 -1 -2 0 -1 1 -1 2 2 3 2 4 2 4 3 Matrix der quadrierten euklidischen Distanzen B C D E F G H A 0 2 10 8 13 17 26 37 40 0 16 10 13 9 16 25 26 0 2 5 25 32 41 50 0 1 13 18 25 32 0 10 13 18 25 x2 I F G H B A D E C x1 0 1 4 5 0 1 2 I 0 1 0 Clusteranalyse Clusteranalyse K-Means Verfahren • da für die quadrierte euklidische Distanz zwischen Objekt g und • K-Means ist ein partitionierendes, globales Verfahren mit exakter Zuordnung, das Clusterzentren zur Clusterbildung verwendet Clusterzentrum k gilt, dass d g2,k = ∑ ( x gj − xkj ) 2 , j kann Minimierungsaufgabe (*) spezifiziert werden als • Grundidee: • Annahme: Objekte g durch numerische Variablen j charakterisiert, d.h. jedes Objekt ist ein Punkt im Rm • berechne die Clusterzentren für K Cluster derart, dass Streuungsquadratsumme in den Clustern ein Minimum ist. • sei K = Anzahl der zu bildenden Cluster (k = 1, ... , K) m = Anzahl der Variablen (j = 1, ... , m) x gj = Wert der Variablen j für Objekt g xkj = Clusterzentrum für Variable j im Cluster k SQin (K ) = ∑∑∑ ( x gj − xkj ) 2 → min (*) damit: g∈k k j Kapitel VII.1 Clusteranalyse Ohne Einschränkung der Allgemeinheit: Annahme, dass Daten um (0,...0) zentriert sind SQ ges = ∑∑ x gj 2 j SQin ( K ) = ∑∑∑ ( x gj − x kj ) 2 g∈k 2 g∈k j SQin (K ) : Streuungsquadratsumme in den Clustern SQzw (K ) : Streuungsquadratsumme zwischen den Clustern SQzw ( K ) = SQges − SQin ( K ) • Minimierung von SQin (K ) ist gleichbedeutend zur Maximierung von SQzw (K ) (1) Lege Clusteranzahl K fest (2) Wahl von Startwerten für die Clusterzentren, z.B. zufällig gewählte Werte (3) Zuordnung der Objekte zu den Clusterzentren: • jedes Objekt g wird jenem Clusterzentrum k zugeordnet, zu dem die quadrierte euklidische Distanz minimal ist. g ∈ k ⇔ k = min (d g,2k ′ ) k ′ =1,...,K j SQzw ( K ) = ∑∑∑ x kj = ∑ |k | x k g∈k • K-Means Alogrithmus: SQ ges = SQ zw ( K ) + SQin ( K ) k k • da die Gesamtstreuungsquadratsumme SQges für eine geg. Objektmenge konstant ist, ergibt sich mit Clusteranalyse SQzw ( K ) = SQges − SQin ( K ) g SQin ( K ) = ∑∑ d g2,k → min k 2 k • damit: SQin ( K ) = ∑∑ d k g∈k 2 g ,k wird minimiert, in dem in jedem Schritt SQin ( K ) = ∑ min d g2,k ′ g k ′ =1,..., K berechnet wird. Clusteranalyse Clusteranalyse • Bemerkung: (4) Neuberechnung der Clusterzentren: • nach der Zuordnung aller Objekte zu den K Clustern werden die Clusterzentren neu berechnet: • sei nkj = Zahl der Objekte des Clusters k mit gültigem Angaben in der Variablen j xkj = ∑ damit: g∈k • in jedem Iterationsschritt wird die Streuungsquadratsumme in den Clustern SQin (K ) kleiner oder bleibt gleich • Algorithmus findet für SQin (K ) ein lokales Minimum. D.h. das Ergebnis ist von den gewählten Startwerten abhängig!! D. h. diese sind geeignet auszuwählen und das Ergebnis ist ggf.hinterher kritisch zu hinterfragen. x gj nkj • diese Variante des K-Means Algorithmus wurde 1965 von Forgy entwickelt und wird deshalb auch als Forgy Methode bezeichnet • xkj ist Mittelwert für Variable j über alle Objekte g in Cluster k • zu dieser Basis-Variante des Algorithmus existieren verschiedene Modifikationen (5) Iteration: • sofern sich im Schritt (3) die Zuordnung der Objekte geändert hat, wird bei Schritt (3) fortgefahren; andernfalls endet der Algorithmus • in K-Means können auch andere Distanzmaße verwendet werden (damit ist auch Behandlung nicht-numerischer Variablen möglich, wenn für diese die Durchschnittsbildung Bedeutung trägt.) • Algorithmus hat geringe Komplexität, da nicht alle |G|² Distanzen berücksichtigt werden müssen. O(Kn) mit n Anzahl der Datenpunkte Clusteranalyse Clusteranalyse Beispiel (Bacher 1994) • Anwendung des K-Means Algorithmus auf geg. Objekte 1. Iteration Clusterzentren (Startwerte) C1 C2 C3 -2,00 -1,00 -1,00 1,00 2,00 -2,00 • geg. Datamatrix mit 9 Objekten und 2 Variablen: A B C D E F G H I Datenmatrix X1 X2 -2 1 -1 2 -1 -2 0 -1 1 -1 2 2 3 2 4 2 4 3 A 0 2 10 8 13 17 26 37 40 Matrix der quadrierten euklidischen Distanzen B C D E F G H 0 16 10 13 9 16 25 26 • Bildung von 3 Clustern (K = 3) 0 2 5 25 32 41 50 0 1 13 18 25 32 0 10 13 18 25 0 1 4 5 0 1 2 I A B C D E F G H I 0 1 X1 X2 X2 X1 0 -2 -1 -1 0 1 2 3 4 4 1 2 -2 -1 -1 2 2 2 3 Zuord. 2,00 10,00 C1* 0,00 2,00 0,00 16,00 C2* 10,00 16,00 0,00 C3* 8,00 10,00 2,00 C3* 13,00 13,00 5,00 C3* 17,00 9,00 25,00 C2* 26,00 16,00 32,00 C2* 37,00 25,00 41,00 C2* 40,00 26,00 50,00 C2* neue Clusterzentren C1 C2 C3 -2,00 2,40 0,00 1,00 2,20 -1,33 Zahl der Vertauschungen = 9 2. Iteration Clusterzentren (Startwerte) C1 C2 C3 -2,00 2,40 0,00 1,00 2,20 -1,33 Zuord. 9,43 C1 0,00 20,80 2,00 11,60 12,09 C1* 10,00 29,20 1,45 C3 8,00 16,00 0,11 C3 13,00 12,20 1,11 C3 17,00 0,20 15,09 C2 26,00 0,40 20,09 C2 37,00 2,60 27,09 C2 40,00 3,20 34,75 C2 neue Clusterzentren C1 C2 C3 -1,50 3,25 0,00 1,50 2,25 -1,33 Zahl der Vertauschungen = 1 3. Iteration Clusterzentren (Startwerte) C1 C2 C3 -1,50 3,25 0,00 1,50 2,25 -1,33 Zuord. 9,43 C1 0,50 29,13 0,50 18,13 12,09 C1 12,50 36,13 1,45 C3 8,50 21,13 0,11 C3 12,50 15,63 1,11 C3 12,50 1,63 15,09 C2 20,50 0,13 20,09 C2 30,50 0,63 27,09 C2 32,50 1,13 34,75 C2 neue Clusterzentren C1 C2 C3 -1,50 3,25 0,00 1,50 2,25 -1,33 Zahl der Vertauschungen = 0 (Bacher 1994) Clusteranalyse • Erläuterungen: • die Objekte A, B, C werden als Startwerte für Clusterzentren der Cluster C1, C2, C3 gewählt • die restlichen Objekte werden jenem Cluster zugeordnet, zu dem es die kleinste quadrierte euklidische Distanz besitzt (fettgedruckte Werte) • das neue Clusterzentrum für C2 ergibt sich in der 1. Iteration (C2 besteht aus den Objekten B, F, G, H, I): x21 = ( −1 + 2 + 3 + 4 + 4) / 5 = 2.40 x22 = ( 2 + 2 + 2 + 2 + 3) / 5 = 2.20 • in der 2. Iteration wird das Objekt B einem neuen Cluster zugeordnet: C1 • in der 3. Iteration tritt keine Veränderung der Zuordnung mehr auf, Algorithmus stoppt