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.