Clustering

Werbung
Clustering
Ausarbeitung
von
Michael Speckner
Proseminar
Data Mining
Einleitung
Das Clustering wird verwendet, wenn man keine Klassen vorhersagen kann, aber die
Instanzen in natürliche Gruppen einteilen kann. Es gibt verschiedene Arten des
Clustering :
1. Die Gruppen, die identifiziert wurden, schließen sich aus und somit gehört eine
Instanz nur zu einer Gruppe.
2. Die Gruppen überlappen sich, und so kann es vorkommen, daß eine Instanz in
mehrere Gruppen gehört.
3. Es kann auch sein, daß die Zugehörigkeit zu einer Gruppe durch die
Wahrscheinlichkeit bestimmt wird.
4. Die Gruppen werden hierarchisch in einem Baum strukturiert.
Problem :
Um ein gutes Ergebnis zu erhalten, sollte man den dafür geeigneten Algorithmus
wählen. Aber da nur wenige Algorithmen bekannt sind, kann man nicht immer den
besten Algorithmus wählen, weil man ihn vielleicht noch gar nicht kennt.
ð Man muß sich mit dem Algorithmus zufrieden geben, der von den Bekannten am
Besten geeignet ist.
k – means Algorithm
Der k – means Algorithmus wird nur für numerische Werte benützt. Wie das nearest
neighbor scheme des instance based learning ist der k – means Algorithmus eine
einfache Methode ist , die Jahrzehnte lang verwendet wurde.
Methode :
1. Zuerst wählt man den Parameter k, der angibt, wieviel Cluster gebildet werden
sollen.
2. Man wähle k Punkte zufällig aus, die dann als Zentrum eines jeweiligen Clusters
dienen.
3. Die Instanzen werden nun zu ihrem nächsten Zentrum zugeteilt, wobei als Metrik die
euklidische Abstandsfunktion dient.
4. Jetzt werden von diesen Clustern die Flächenschwerpunkte ausgerechnet.
5. Nun verwende die errechneten Schwerpunkte als neue Zentren für das Clustering.
6. Beginne mit diesen neuen Punkten wieder bei 3. bis sich keine Änderung mehr
einstellt .
ð Die Zentren haben sich stabilisiert und bleiben konstant.
Problem :
Der Algorithmus findet nicht immer eine vernünftige Gruppierung. Denn zum Beispiel
sollten 4 Daten wie ein Rechteck angeordnet sein, so kann man an fast jeder Stelle die
Anfangspunkte wählen und bekommt dann Cluster, welche jeweils die beiden Punkte
an der kurzen Seite beinhalten. Sollte man aber die Anfangspunkte auf die beiden
Seitenhalbierenden der langen Seite legen hat man auch eine stabile Form. Es
befinden sich aber nun die beiden Punkte im Cluster, die durch die lange Seite getrennt
wurden, welches nicht der Sinn dieses Algorithmus ist.
Um die Chancen zu steigern, ein globales Minimum zu finden, wiederholt man den
ganzen Algorithmus mehrmals mit verschiedenen Ausgangspunkten und wählt danach
die beste Aufteilung.
Incremental clustering
Die zweite Methode wurde in den späten 80iger Jahren entwickelt und durch zwei
Systeme begründet, COBWEB für nominale Attribute und CLASSIT für numerische
Attribute. Die Instanzen werden beim Clustering hierarchisch angeordnet. Die Instanzen
werden in einen Baum eingeordnet. Dabei kann es vorkommen, daß nur eine Instanz in
ein Blatt eingeordnet werden muß oder man eine radikale Umstrukturierung des
Baumes vornehmen muß . Dazu benötigt man die Category utility, die die allgemeine
Qualität der Teilung von Instanzen mißt.
Anhand der folgenden Beispieldaten soll der Algorithmus erklärt werden.
Man nimmt nun die erste Zeile und hängt sie an die Wurzel an ( Bild a ), wobei man
eigentlich die Spalte play für die Einordnung weggelassen hat und im Diagramm nur
notiert hat. Man rechnet nun mit der Category utility den Wert der Wahrscheinlichkeit
eines Attributes aus, daß dieses Attribut in ein bestimmtes Cluster gehört. Man kann
somit vergleichen, ob ein schon bestehender Knoten ein guter Wirt für den neuen
Knoten wäre. Dies ist bei den ersten fünf Knoten nicht der Fall ( Bild b ). Die Zeile e und
f unterscheiden sich nur in einem Wert nämlich windy und somit können diese beiden
Blätter unter einem Knoten zusammengefaßt werden ( Bild c ). Die Zeile g wird jetzt
wiederum an dieses neue Cluster angehängt, da es sich von f nur im Wert von outlook
unterscheidet. Die Prozedur des Einordnens geht nun so von statten : Erst vergleicht
man den Wert von g mit den fünf oberen Knoten und entscheidet daran in welchen er
eingeordnet werden kann. Dies ist der Knoten ganz rechts. Darauf vergleicht man den
Wert mit den schon bestehenden Blättern und erhält als Antwort, daß g ein neues Blatt
bilden soll ( Bild d ).
Um nun h einzuordnen werden nun die Blätter a und d zusammengefaßt, da a der beste
Vergleicher und d der zweitbeste Vergleicher in der obersten Etage ist. Diese werden
beide von der category utility gespeichert, da sich h gegenüber a nur in temperature
unterscheidet und gegenüber d nur in outlook. Da beide Werte gleich sind, werden sie
nun zusammengefaßt und h dazu gehängt ( Bild e ). Wenn man diesen Algorithmus nun
weiter verfolgt gelangt man dann für die Anfangsdaten zu einem Baum mit zwei
Hauptclustern, welche wiederum Untercluster haben ( Bild f ).
Bei diesem Algorithmus werden zwei Operationen angewandt. Die Erste ist merging.
Dabei werden Blätter eines Clusters zusammengefaßt und bilden ein Untercluster. Im
Beispiel wurde durch das Einfügen des h – Blattes ein merge verursacht zwischen a
und d. Die zweite Operation ist splitting, welche angewandt wird, wenn man den Besten
Wirt identifiziert hat, aber das merging sich als nicht profitabel herausgestellt hat. Beim
splitting wird genau das Gegenteil des merging gemacht indem man ein Knoten durch
seine Kinder ersetzt. Beispiel hierfür wäre, wenn man in Bild d die Blätter e, f und g
splitten würde, bekäme man die Wurzel und daran alle sieben Blätter auf der gleichen
Ebene ( von a – g ).
In diesem Beispiel sieht man, daß nicht immer ein gutes Clustering entsteht. Es gibt hier
kein reines Clustering, wo nur yes oder no steht. Es kommt bei der Eingabe auf die
Reihenfolge an, denn Zeile a und Zeile b unterscheiden sich nur im Wert windy, enden
aber in zwei völlig verschiedenen Clustern. Dies liegt daran, daß b sofort nach a kam
und deshalb kein Untercluster bildete.
Category utility
Die Category utility dient zur Berechnung zu welchem Blatt oder Knoten eine neue
Instanz gehören soll.
Formel für nominale Instanzen :
Die Doppelsumme summiert alle Attribute. ai ist das i-te Attribut. Dieses Attribut hat die
Werte vi1 , vi2 , ... , die über j summiert werden. Die Summierung über l rechnet dann die
Cluster mit ein. Im Inneren wird die Wahrscheinlichkeit, daß ein Attribut vorhanden ist
von der Wahrscheinlichkeit, daß ein Attribut in diesem Cluster liegt abgezogen. Hat man
nur ein Cluster, so ist die Differenz 0 und man erhält kein gutes Ergebnis. Sobald man
mehrere Cluster bildet, erhält man unterschiedliche Wahrscheinlichkeiten und kann
dann das Attribut einordnen, denn Ziel ist es, daß die Differenz möglichst groß wird.
Durch k wird geteilt, da man ansonsten jeder Instanz ein eigens Cluster geben würde,
und man sich dadurch nichts gespart hat.
Am vorherigen Beispiel sieht man die Auswirkung dieser Formel am Besten.
Um numerische Attribute zu verwenden wird mit der Normalverteilung gearbeitet und
nach einigen Umformungen erhält man die Formel :
Die äußere Summierung ist dieselbe, wie bei der Formel für nominale Attribute. In der
Klammer wird von der Standardabweichung des Clusters die Standardabweichung des
Attributes subtrahiert. Hier gilt ebenfalls, daß die Differenz möglichst groß sein sollte.
Der Klammerausdruck ähnelt der Differenz der nominalen Formel, da dasselbe Ziel
verfolgt wird.
Probability – based clustering
Die Grundlage des statistischen Clustering ist das statistische finite mixture Modell.
Dieses Clustering arbeitet nur noch mit numerischen Werten. Eine mixture ist ein Satz
von Wahrscheinlichkeiten, die k Cluster darstellen, die die Attributwerte des jeweiligen
Clusters abdecken. Hier hat jedes Cluster eine andere Verteilung. Jede Instanz gehört
nur zu einem Cluster. Die Cluster sind nicht gleich wahrscheinlich, weil es eine
Wahrscheinlichkeitsverteilung gibt, die die relative Bevölkerung dieses Clusters angibt.
Die einfachste finite mixture Situation ist es, wenn man nur ein numerisches Attribut hat,
das für jedes Cluster eine Gauß- oder Normalverteilung besitzt.
Am Beispiel soll dieses näher erklärt werden. Man hat zwei Cluster A und B, welche
beide einen Mittelwert
eine Standardabweichung
und eine Wahrscheinlichkeit p haben. p gibt an, mit welcher Wahrscheinlichkeit eine
Instanz zum Cluster A beziehungsweise zum Cluster B gehört. Hierbei kann A durch die
Formel p A = ( 1 – pB ) berechnet werden.
Haben wir nun eine Instanz x gehört sie mit
einer bestimmten Wahrscheinlichkeit zum Cluster A. Diese kann durch die Formeln
ausgerechnet werden.
Problem :
Normalerweise kennt man weder die Verteilung noch die fünf Parameter ( zwei Mal der
Mittelwert, zwei Mal die Standardabweichung und die Wahrscheinlichkeit ). Ein
möglicher Algorithmus zur Berechnung dieser Parameter ist der EM – Algorithmus.
Der EM – Algorithmus
Der EM – Algorithmus ähnelt der Prozedur des k – means Algorithmus und wiederholt
diese.
1. Man mache eine Anfangsannahme für die fünf Parameter.
2. Verwende diese Werte um die Clusterwahrscheinlichkeit zu berechnen.
3. Verwende diese Wahrscheinlichkeiten , um die Parameter wieder auszurechnen.
4. Beginne wieder mit 2.
Dieser Algorithmus hat nur ein Problem. Man kennt nur die Clusterwahrscheinlichkeiten
und nicht die Cluster selbst. Diese Wahrscheinlichkeiten verhalten sich aber wie
Gewichte. Die Wahrscheinlichkeiten wi ist die Wahrscheinlichkeit, daß die Instanz i zum
Cluster A gehört.
Um die Wahrscheinlichkeit zu berechnen kann wieder die Formel
berechnet werden.
Der EM – Algorithmus hat aber noch ein weiteres Problem, da er in die Richtung eines
festen Punktes konvergiert, diesen aber nie erreicht. Hier wird wieder nur ein lokales
Maximum berechnet, das sich vom globalen stark unterscheiden kann. Aus diesem
Grund sollte man mehrere Wiederholungen mit unterschiedlichen Anfangswerten für die
Parameter durchführen.
Extending the Mixture Model
Extending the mixture Model ist die Anpassung des probability – based Algorithmus auf
die Realität, da man nicht nur mit zwei Klassen arbeitet. Die Basismethode ist dieselbe,
wird jetzt nur auf mehrere Klassen angewandt. Die Wahrscheinlichkeiten jedes
Attributes werden multipliziert, um die Gemeinschaftswahrscheinlichkeit für die
Instanzen zu erhalten. Wenn bekannt ist, daß die Datei korrelierte Attribute enthält,
kann man daraus folgern, daß die Unabhängigkeitsannahme nicht länger gültig ist . Mit
n unabhängigen Attributen erhält man für jedes Attribut einen Mittelwert und eine
Standardabweichung. Mit n covarianten Attributen erhält man n + n (n+1) / 2 Parameter
und eine n x n Covarianzmatrix. Ein nominales Attribut mit v möglichen Werten wird
durch v Zahlen charakterisiert, die die Wahrscheinlichkeit darstellen. Und ein anderer
Satz an Zahlen wird für jede Klasse gebraucht, damit k * v Parameter im Ganzen. k
steht für die Anzahl der Cluster. Wenn beide Formen ( numerische wie nominale
Attribute ) verwendet werden ist es für diesen Algorithmus kein Problem. Fehlende
Werte werden einfach weggelassen.
Bayesian clustering
Das größte Problem des probability - based clustering ist das overfitting. Overfitting
kann hier in zwei Formen auftreten:
1. Man wählt eine zu große Anzahl an Clustern
2. Man wählt eine Verteilung mit zu vielen Parametern.
Der extremste Fall des ersten overfitting wäre, wenn man jeder Instanz ein eigenes
Cluster zuordnen würde. Das zweite overfitting tritt ein, weil man nicht weiß, wie viele
der Attribute kovariant sind. Deshalb sollte man verschiedene Möglichkeiten
ausprobieren und wählt dann das Maximum.
Man benützt die Bayes Methode um overfitting zu vermeiden.
ð bayesian clustering
AUTOCLASS ist ein bayes clustering Schema, daß das finite mixture Modell benützt.
Es kann sowohl numerische als auch nominale Attribute verwenden und benützt den
EM – Algorithmus um zu schätzen, ob die Parameter der Wahrscheinlichkeitsverteilung
am Besten zu den Daten passen. Der EM – Algorithmus wird mehrere Male wiederholt,
da man ja nicht gleich das globale Maximum erhält. Doch AUTOCLASS kann noch
mehr, denn es betrachtet verschiedene Anzahlen von Clustern und betrachtet Maße der
Kovarianz und verschiedene Wahrscheinlichkeitsverteilungsarten für die numerischen
Attribute.
Herunterladen