50
Ulf Leser Wissensmanagement in der Bioinformatik Clustering Data Warehousing und Data Mining

Data Warehousing und Data Mining

Embed Size (px)

Citation preview

Page 1: Data Warehousing und Data Mining

Ulf Leser

Wissensmanagement in der Bioinformatik

Clustering

Data Warehousing und

Data Mining

Page 2: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 2

Inhalt dieser Vorlesung

• Einführung – Clustergüte – Ähnlichkeiten – Clustermitte

• Hierarchisches Clustering • Partitionierendes Clustering • Dichte-basiertes Clustering

Page 3: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 3

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) – …

Page 4: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 4

Beispiel 1

Mtl Einkäufe

Einkommen (geschlossen aus Wohnort)

Page 5: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 5

Beispiel 1

• Vier Cluster und ein Ausreißer(-Cluster) • Überlappungsfreie, konvexe Cluster

Mtl Einkäufe

Einkommen

Page 6: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 6

Beispiel 2

• Zwei Cluster • Besser?

Mtl Einkäufe

Einkommen

Page 7: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 7

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

• Bemerkung – Zur Bestimmung von Mittelpunkten kommen wir gleich – Auch die Einschränkung auf k-Güte erklärt sich gleich

∑ ∑∈ =

=Cc cof

ck modfq)(

),()(

Page 8: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 8

6-Güte

• Mittelpunkte bestimmen • Abstand aller Punkte zu ihrem Mittelpunkt summieren • Summe über alle Cluster

Page 9: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 9

Nachteil

• Optimales Clustering ohne Einschränkung auf k? – Trivial mit k=|O|

• Score wird für größere k immer besser

Page 10: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 10

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 Optimierungs-problem – 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!

Page 11: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 11

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

Page 12: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 12

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

– 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

))(),(max()()()(oboa

oaobos −=

Page 13: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 13

Eigenschaften

• Silhouette verbessert sich nicht automatisch bei mehr Clustern • s(o) eher höher

• s(o) eher niedriger

Page 14: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 14

Silhouette schlecht

Zu welchem Cluster sollen diese Punkte gehören?

Page 15: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 15

Ä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

Page 16: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 16

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

Page 17: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 17

Ü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

Page 18: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 18

Inhalt dieser Vorlesung

• Einführung • Hierarchisches Clustering • Partitionierendes Clustering • Dichte-basiertes Clustering

Page 19: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 19

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

Page 20: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 20

Beispiel: Ähnlichkeitsmatrix

A B C D E F ..

A 90 84 91 81 82 ..

B 43 99 37 36 ..

C 14 35 21 87

D 28 34 ..

E 95 ..

F ..

.. .. .. … .. .. ..

Page 21: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 21

Iteration

A B C D E F G

ABCDEFG A B. C.. D... E.... F..... G......

(B,D)→a

ACEFGa A C. E.. F... G.... a.....

A B C D E F G

ACGab A C. G.. a... b....

(E,F)→b

A B C D E F G

(A,b)→c

CGac C G. a.. c...

A B C D E F G

(C,G)→d

acd a c. d..

A B C D E F G

(d,c)→e

A B C D E F G

(a,e)→f

A B C D E F G

ae a e.

Page 22: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 22

Bespiel Genexpressionsdaten

Page 23: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 23

Festlegung von Clustern

Das sind neun

Cluster

So ...

Page 24: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 24

Alternative

Das sind 14 Cluster

Oder so ?

Page 25: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 25

Geschachtelte Cluster

Page 26: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 26

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

Page 27: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 27

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 t1.oid, t2.oid, sqrt(sqr(t1.a-t2.a)+sqr(t1.b-t2.b)+…) FROM objects t1, objects t2 WHERE t1.oid>t2.oid;

Page 28: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 28

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

Page 29: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 29

Beispiel

1 2 3 4 5 6 7

1

2

3

4

5

6

o1 o2 d 2 1 ? 3 1 ? 4 1 ? 5 1 ? 6 1 ? 7 1 ? 3 2 ? 4 2 ? … … …

Distanzmatrix Distanz- tabelle

Einträge mit 2 oder 3 löschen

Sei d(2,3)=min; Neuer Knoten 8 mit Abständen

o1 o2 d 2 1 ? 3 1 ? 4 1 ? 5 1 ? 6 1 ? 7 1 ? 3 2 ? 4 2 ? … … … 8 1 ? 8 4 ? … … …

o1 o2 d 4 1 ? 5 1 ? 6 1 ? 7 1 ? … … … 8 1 ? 8 4 ? … … …

Page 30: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 30

Berechnung neuer Abstände

Bestimme $newid, $oldo1, $oldo2; 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

Mittelwert der zwei alten Abstände

Abstände zu Objekte gruppieren

Alte Abstände – Objekte können links oder rechts stehen, selektiert werden

immer nur 2 Tupel

Page 31: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 31

Inhalt dieser Vorlesung

• Einführung • Hierarchisches Clustering • Partitionierendes Clustering

– k-Means – k-Medoid und CLARANS

• Dichte-basiertes Clustering

Page 32: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 32

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

Page 33: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 33

Beispiel 1

• k=3 zufällige Startwerte auswählen

Quelle: Stanford, CS 262 Computational Genomics

Page 34: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 34

Beispiel 2

• Objekte dem nächsten Clusterzentrum zuordnen

Page 35: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 35

Beispiel 3

• Clustermittelpunkte neu berechnen

Page 36: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 36

Beispiel 4

• Objekte neu zuordnen

Page 37: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 37

Beispiel 5

• Mittelpunke anpassen

Page 38: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 38

Beispiel 6

• Fertig, keine neuen Zuordnungen mehr

Page 39: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 39

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

Page 40: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 40

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

Page 41: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 41

k-Means und Ausreißer

Page 42: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 42

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

Page 43: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 43

k-Medoid und Ausreißer

Page 44: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 44

K-Means in SQL

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;

• 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

Page 45: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 45

CLARANS [NH94]

• Idee: Teste nur manche Vertauschungen – maxneighbor

viele – dafür starte

öfter (maxtest) – TD: Total

distance

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; if TDN↔M < TD then // Diese tauschen? 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;

Page 46: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 46

Vergleich [ES00]

• Unwesentlich schlechtere Ergebnisse (1-5%) • Viel bessere Laufzeit (nahezu linear) • Nicht untypisch: Wenn die Daten „gut“ clustern, dann

findet man diese Cluster sehr schnell – Zuordnung der wenigen problematischen Objekte benötigt dann

viel Zeit, bringt aber nur wenig Verbesserung

TD(CLARANS)

TD(PAM)

Qualität Laufzeit

Quelle: [ES00]

Page 47: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 47

Inhalt dieser Vorlesung

• Einführung • Hierarchisches Clustering • Partitionierendes Clustering • Dichte-basiertes Clustering

Page 48: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 48

Aber …

• 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

Quelle: [FPPS96]

Page 49: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 49

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

Page 50: Data Warehousing und Data Mining

Ulf Leser: Data Warehousing und Data Mining 50

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.