Clustering

Werbung
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
Herunterladen