Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Data Warehousing und Data Mining Clustering Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung • Einführung – Clustergüte – Ähnlichkeiten – Clustermitte • Hierarchisches Clustering • Partitionierendes Clustering • Dichte-basiertes Clustering Ulf Leser: Data Warehousing und Data Mining 2 Clustering • Finde Gruppen ähnlicher Objekte – Ohne zu wissen wie viele Gruppen es geben soll – „Unsupervised learning“ • Anwendungen – – – – Segmentiere Kunden in Gruppen Clustere Patienten in Verlaufsgruppen Finde Typen von Sternen in astronomischen Karten Welche Ergebnisse einer Websuche kommen aus dem selben Thema(encluster) – … Ulf Leser: Data Warehousing und Data Mining 3 Beispiel 1 Mtl Einkäufe Einkommen (geschlossen aus Wohnort) Ulf Leser: Data Warehousing und Data Mining 4 Beispiel 1 Mtl Einkäufe Einkommen • Vier Cluster und ein Ausreißer(-Cluster) • Überlappungsfreie, konvexe Cluster Ulf Leser: Data Warehousing und Data Mining 5 Beispiel 2 Mtl Einkäufe Einkommen • Zwei Cluster • Besser? Ulf Leser: Data Warehousing und Data Mining 6 Güte eines Clusterings • Intuitiv ist eine Gruppierung gut, wenn innerhalb jedes Clusters alle Punkte nahe beieinander liegen • Definition Sei f:O→C mit |C|=k. Sei mc der Mittelpunkt aller Objekte der Klasse c∈C, und sei d(o,o‘) der Abstand zwischen zwei Punkten. Dann ist die k-Güte von f qk ( f ) = ∑ ∑ d ( o, m ) c∈C f ( o ) = c c • Bemerkung – Zur Bestimmung von Mittelpunkten kommen wir gleich – Auch die Einschränkung auf k-Güte erklärt sich gleich Ulf Leser: Data Warehousing und Data Mining 7 6-Güte • Mittelpunkte bestimmen • Abstand aller Punkte zu ihrem Mittelpunkt summieren • Summe über alle Cluster Ulf Leser: Data Warehousing und Data Mining 8 Nachteil • Optimales Clustering ohne Einschränkung auf k? – Trivial mit k=|O| • Score wird für größere k immer besser Ulf Leser: Data Warehousing und Data Mining 9 Güte bei fester Anzahl von Clustern • k-Güte ist als Maß nur dann sinnvoll, wenn die Anzahl an Clustern vorab feststeht • Wenn k feststeht, ist Clustering ein Optimierungsproblem – Finde für eine Menge O von Objekten eine Zuordnung f in k Cluster so, dass qk(f) minimal ist – Aber: Problem ist NP-hart – Praxis: Heuristiken (z.B. k-Means) • Score bei festem k ist sehr sensitiv bei Ausreißern – Bilden sofort eigene „Cluster“ – „Normale“ Objekte müssen in weniger Cluster gepackt werden – Ausweg: Ausreißer vorab löschen • Aber wie findet man die? Clustering! Ulf Leser: Data Warehousing und Data Mining 10 Inter/Intra-Cluster • Bisher: Intra-Cluster Ähnlichkeit soll hoch sein – Geringer mittlerer Abstand • Intuitiv soll auch die Inter-Cluster Ähnlichkeit gering sein – Großer Abstand jedes Punkt zu anderen Clustern • Ein Maß, dass das berücksichtigt: Silhouette Ulf Leser: Data Warehousing und Data Mining 11 Silhouette • Definition Sei f: O→C mit |C| beliebig. Sei dist(o,Ci) der mittlere Abstand von o zu allen Punkten des Clusters Ci. Dann – Intra-Score: a(o) = dist(o,f(o)) – Inter-Score: b(o) = min( dist(o,Ci)), Ci≠f(o) – Die Silhouette eines Punktes s(o) ist s (o) = b(o) − a (o) max(a(o), b(o)) – Die Silhouette von f ist Σs(o) • Bemerkung – s(o)≈0: Punkt liegt zwischen zwei Clustern – s(o)→1: Punkt liegt näher am eigenen als am nächsten Cluster – s(o)→-1: Punkt liegt näher am nächsten Cluster als am eigenen Ulf Leser: Data Warehousing und Data Mining 12 Eigenschaften • Silhouette verbessert sich nicht automatisch bei mehr Clustern • s(o) eher höher • s(o) eher niedriger Ulf Leser: Data Warehousing und Data Mining 13 Silhouette schlecht Zu welchem Cluster sollen diese Punkte gehören? Ulf Leser: Data Warehousing und Data Mining 14 Ähnlichkeit • Wahl einer guten Abstandsfunktion ist essentiell • Numerische Werte – Euklidscher Abstand • Betont große Abstände in einzelnen Dimensionen sehr stark • Standard für metrische Werte – Cosinus-Abstand: Differenz der Winkel der Featurevektoren • Ausreißer in einzelnen Dimensionen zählen weniger • Standard z.B. beim Text-Mining • Kategoriale Werte: Anwendungsabhängig Ulf Leser: Data Warehousing und Data Mining 15 Die Mitte eines Clusters • Was ist der Mittelpunkt eines Clusters? • Numerische Werte – Centroid: Mittelwert aller Punkte des Clusters – Medoid: Der Median aller Punkte des Clusters • Der „mittlerste“ Punkt von C • Nachteil: Berechnung eines Medoids ist teuer • Vorteil: Weniger sensitiv bei Ausreißern • Kategoriale Werte – Centroid: i.A. nicht definiert – Also muss man Medoid verwenden • Ein Abstandsmaß braucht man so oder so Ulf Leser: Data Warehousing und Data Mining 16 Übersicht • Hierarchisch: Erzeugt hierarchisch geschachtelte Cluster – Benötigen kein k, sind aber eher teuer – Berechnen eigentlich keine Cluster • Partitionierend: Zerlegung der Punktmenge in k Cluster – Schnell, nicht deterministisch – Benötigen die Anzahl k der Cluster als Parameter • Dichte-basierte: Sucht dichte Teilräume – Subräumen mit hoher Punktdichte – Tendenziell langsam Ulf Leser: Data Warehousing und Data Mining 17 Inhalt dieser Vorlesung • • • • Einführung Hierarchisches Clustering Partitionierendes Clustering Dichte-basiertes Clustering Ulf Leser: Data Warehousing und Data Mining 18 Hierarchisches Clustering • Bottom-Up Berechnung eines binären Baums (Dendogramm) • Algorithmus – Berechne Abstandsmatrix M • Alle d(oi, oj), i≠j – – – – Wähle (oi, oj) mit d(oi, oj) != min Berechne x=mittel(oi,oj) Lösche oi, oj aus M; füge x ein Berechne Abstand von x zu allen verbleibenden Objekten/Clustern in M • Mittelwert der Abstände zu oi und oj – Iteriere, bis M leer ist Ulf Leser: Data Warehousing und Data Mining 19 Beispiel: Ähnlichkeitsmatrix A A B C D E F .. 90 84 91 81 82 .. 43 99 37 36 .. 14 35 21 87 28 34 .. 95 .. B C D E F .. .. .. .. Ulf Leser: Data Warehousing und Data Mining … .. .. .. 20 Iteration ABCDEFG A B C D E F G A B. C.. D... E.... F..... G...... A B C D E F G ACGab A B C D E F G A C. G.. a... b.... acd a c. d.. (B,D)→a A B C D E F G (A,b)→c A B C D E F G (d,c)→e Ulf Leser: Data Warehousing und Data Mining A B C D E F G ACEFGa A C. (E,F)→b E.. F... G.... a..... CGac C G. a.. c... ae a e. (C,G)→d (a,e)→f A B C D E F G 21 Bespiel Genexpressionsdaten Ulf Leser: Data Warehousing und Data Mining 22 Festlegung von Clustern So ... Das sind neun Cluster Ulf Leser: Data Warehousing und Data Mining 23 Alternative Oder so ? Das sind 14 Cluster Ulf Leser: Data Warehousing und Data Mining 24 Geschachtelte Cluster Ulf Leser: Data Warehousing und Data Mining 25 Eigenschaften • Vorteile – Konzeptionell einfach, hübsche, irgendwie intuitive Grafiken – Keine Festlegung auf Anzahl Cluster notwendig • Nachteile – Benötigt die Abstandsmatrix als Eingabe • |O|=n: O(n2) Platz und O(n2) Zeit – Dazu kommt Clustering selber: O(n2*log(n)) – Berechnet keine Cluster • Kaum anwendbar für viele (>10000) Objekte Ulf Leser: Data Warehousing und Data Mining 26 SQL - Distanzmatrix • Annahmen – Alle Objekte und ihre Attribute a, b, … in Tabelle objects • (o1,x1,y1,z1), (o2,x2,y2,z2), (o3,x3,y3,z3), … – Numerische Attribute – Euklidischer Abstand • Berechnung der Distanzmatrix M? SELECT FROM WHERE t1.oid, t2.oid, sqrt(sqr(t1.a-t2.a)+sqr(t1.b-t2.b)+…) objects t1, objects t2 t1.oid>t2.oid; Ulf Leser: Data Warehousing und Data Mining 27 SQL – Iteration • Distanzmatrix materialisieren (teuer) – Tabelle distance • Anlegen Ergebnistabelle cluster(oid1,oid2) • Iteratives Berechnung auf distance – Geht nicht mit einer Query – Tabelle objects benötigen wir nicht mehr – PL-SQL Programm mit n=|O| Durchläufen • Finde Paar P=(o1,o2) in distance mit kleinstem Abstand – Schnell mit Index auf Abstandspalte • Speichere o1,o2 in cluster • Füge Abstände von P zu allen restlichen Punkten ein in distance • Löschen alle Tupel in distance, die ein Objekt aus P beinhalten – Schnell mit Indexen auf OID1, OID2 Ulf Leser: Data Warehousing und Data Mining 28 Beispiel 1 2 3 4 5 6 1 2 3 4 5 6 Distanzmatrix 7 o1 o2 2 1 3 1 4 1 5 1 6 1 7 1 3 2 4 2 … … d ? ? ? ? ? ? ? ? … Distanztabelle o1 o2 2 1 3 1 4 1 5 1 6 1 7 1 3 2 4 2 … … 8 1 8 4 … … d ? ? ? ? ? ? ? ? … ? ? … o1 o2 4 1 5 1 6 1 7 1 … … 8 1 8 4 … … d ? ? ? ? … ? ? … Einträge mit 2 oder 3 löschen Sei d(2,3)=min; Neuer Knoten 8 mit Abständen Ulf Leser: Data Warehousing und Data Mining 29 Berechnung neuer Abstände Bestimme $newid, $oldo1, $oldo2; Mittelwert der zwei alten Abstände INSERT INTO distance SELECT $newid, o.oid1, sum(d.dist)/2 FROM (SELECT distinct oid1 FROM distance WHERE OID1 not in ($oldo1, $oldo2)) o, distance d WHERE (d.oid1=o.oid1 and (d.oid2 = $oldo1 or $oid2=$oldo2)) or (d.oid2=o.oid1 and (d.oid1 = $oldo1 or $oid1=$oldo2)) GROUP BY o.oid1; Zu diesen Objekten müssen Abstände berechnet werden Abstände zu Objekte gruppieren Ulf Leser: Data Warehousing und Data Mining Alte Abstände – Objekte können links oder rechts stehen, selektiert werden immer nur 2 Tupel 30 Inhalt dieser Vorlesung • Einführung • Hierarchisches Clustering • Partitionierendes Clustering – k-Means – k-Medoid und CLARANS • Dichte-basiertes Clustering Ulf Leser: Data Warehousing und Data Mining 31 K-Means • • • • • Wahrscheinlich bekannteste Clusteringmethode Vielen Varianten Anzahl k von Clustern ist Eingabeparameter Berechnet lokales Optimum bezüglich k-Güte Algorithmus – Wähle zufällig k Clustermittelpunkte – Iteriere • Für alle Objekte – Berechne Abstand jedes Objekts zu jedem Clustermittelpunkt – Weise Objekt seinem nächsten Clustermittelpunkt zu • Wenn sich keine Objektzuordnung mehr geändert hat, dann STOP • Sonst: Berechne neue Clusterzentren Ulf Leser: Data Warehousing und Data Mining 32 Beispiel 1 • k=3 zufällige Startwerte auswählen Quelle: Stanford, CS 262 Computational Genomics Ulf Leser: Data Warehousing und Data Mining 33 Beispiel 2 • Objekte dem nächsten Clusterzentrum zuordnen Ulf Leser: Data Warehousing und Data Mining 34 Beispiel 3 • Clustermittelpunkte neu berechnen Ulf Leser: Data Warehousing und Data Mining 35 Beispiel 4 • Objekte neu zuordnen Ulf Leser: Data Warehousing und Data Mining 36 Beispiel 5 • Mittelpunke anpassen Ulf Leser: Data Warehousing und Data Mining 37 Beispiel 6 • Fertig, keine neuen Zuordnungen mehr Ulf Leser: Data Warehousing und Data Mining 38 Eigenschaften • Meist konvergiert k-Means relativ schnell (5-10 Läufe) • Wenn l die Zahl der Durchläufe ist, brauchen wir – – – – Neuzuordnung: n*k Vergleiche Objekte-Zentren Clusterbestimmung: n Vektoradditionen, verteilt auf k Cluster Zusammen: O(n*k*l) Insbesondere benötigen wir keine Distanzmatrix • Nachteil: Welches k nehmen wir? – Alternative: Verschiedene k probieren – Silhouette zur Güteabschätzung verwenden • Empfindlich gegenüber Ausreißern Ulf Leser: Data Warehousing und Data Mining 39 Varianten • Wähle initiale Clusterzentren gleichmäßig verteilt im Raum statt beliebige Datenpunkte zu nehmen – Schlecht für stark geclusterte Daten, da Mittelpunkte erst einen weiten Weg zurücklegen müssen • Stop, wenn nur noch wenige (Schwellwert) Objekte ihre Zugehörigkeit geändert haben – Schneller, leichte Ungenauigkeiten • Starte k-Means mehrmals mit unterschiedlichen Startpunkten und nimm das beste Ergebnis – Standardmethode, um zufällig schlechte Startkonstellationen zu verhindern Ulf Leser: Data Warehousing und Data Mining 40 k-Means und Ausreißer Ulf Leser: Data Warehousing und Data Mining 41 K-Medoid • K-Medoid: Wahl des mittleren Punktes eines Clusters • Problem: Berechnung Medoide ist teuer (O(n3)) – Average Case aber deutlich schneller • Vorteile – Weniger sensitiv bzgl. Ausreißern – Funktioniert auch mit kategorialen Werten Ulf Leser: Data Warehousing und Data Mining 42 k-Medoid und Ausreißer Ulf Leser: Data Warehousing und Data Mining 43 K-Means in SQL • objects mit Objekten und • • • • Attributen cluster mit Koordinaten der Zentren Erstes Upd.: Zuweisung neuer Clusterzentren Zweites Upd.: Berechnung neuer Clustermittelpunkte Probleme – Update auch ohne Änderungen Ulf Leser: Data Warehousing und Data Mining REPEAT UPDATE objects SET cluster= (SELECT cid FROM (SELECT dist(o.a,a,…) d FROM cluster ORDER BY d) WHERE ROWNUM=1); IF %SQLCOUNT% != 0 UPDATE cluster SET (a,b,…)= (SELECT sum(a)/n,sum(b)/n, … FROM objects o WHERE o.cluster=cid); ELSE BREAK; ENDIF; UNTIL FALSE; 44 CLARANS • Idee: Teste nur manche Vertauschungen – maxneighbor viele – dafür starte öfter (maxtest) – TD: Total distance [NH94] TD_best := maxint; // Bester Gesamtabstand C_best := ∅; // Beste Medoidmenge O; // Alle Objekte for r = 1 … maxtest do C := {wähle zufällig k Objekte als Medoide}; O := O \ C; weise Objekte nächstem Medoid zu; berechne TD; i := 0; for i := 1 … maxneighbor do Wähle zufällig m∈C, n∈O; // Diese tauschen? if TDN↔M < TD then O := O ∪ m \ n; C := C ∪ n \ m; TD := TDN↔M; end if; end for; if TD < TD_best then // Neues Optimimum? TD_best := TD; C_best := C; end if; end do; return TD_best, C_best; Ulf Leser: Data Warehousing und Data Mining 45 Vergleich [ES00] Laufzeit Qualität TD(CLARANS) TD(PAM) • Unwesentlich schlechtere Ergebnisse (1-5%) • Viel bessere Laufzeit (nahezu linear) • Nicht untypisch: Wenn die Daten „gut“ clustern, dann findet man diese Cluster sehr schnell Quelle: [ES00] – Zuordnung der wenigen problematischen Objekte benötigt dann viel Zeit, bringt aber nur wenig Verbesserung Ulf Leser: Data Warehousing und Data Mining 46 Inhalt dieser Vorlesung • • • • Einführung Hierarchisches Clustering Partitionierendes Clustering Dichte-basiertes Clustering Ulf Leser: Data Warehousing und Data Mining 47 Aber … Quelle: [FPPS96] • K-Means (und CLARANS und k-Medoid und viele andere) finden nur konvexe Cluster – Das ergibt sich aus der Nähe zu einem Mittelpunkt • Anderes Kriterium: Nähe zu genügend vielen anderen Punkten im Cluster Ulf Leser: Data Warehousing und Data Mining 48 Dichtebasiertes Clustering [EKSX96] • Sucht nach Regionen hoher Dichte – Anzahl Cluster ist nicht vorbestimmt – Findet auch nicht konvexe Cluster • Bekanntester Vertreter: DBSCAN • Wie definiert man „dichte“ Bereiche? – Jeder Punkt eines Clusters hat viele nahe Nachbarn – Alle Punkte eines Clusters sind über nahe Nachbarn voneinander erreichbar Ulf Leser: Data Warehousing und Data Mining 49 Literatur • Ester, M. and Sander, J. (2000). "Knowledge Discovery in Databases". Berlin, Springer. • Han, J. and Kamber, M. (2006). "Data Mining. Concepts and Techniques", Morgan Kaufmann. • Ester, M., Kriegel, H. P., Sander, J. and Xu, X. (1996). "A density-based algorithm for discovering clusters in large spatial databases". Conference on Knowledge Discovery in Databases. • Ng, R. T. and Han, J. (1994). "Efficient and Effective Clustering Methods for Spatial Data Mining". Int. Conf. on Very Large Databases, Santiago, Chile. Ulf Leser: Data Warehousing und Data Mining 50