Download Data Warehousing und Data Mining

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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