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

Data Warehousing und Data Mining

Jan 01, 2017

Download

Documents

phamtruc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.