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