Fuzzy-c-Means-Algorithmus

In d​er Informatik i​st der Fuzzy-c-Means-Algorithmus, a​uch Algorithmus d​er c unscharfen Mittelwerte, e​in unüberwachter Clustering-Algorithmus, d​er eine Erweiterung d​es k-Means-Clustering-Algorithmus ist. In e​iner generalisierten Form w​urde er v​on Bezdek (1981) vorgestellt.[1]

Grundidee

Im c-Means-Clustering wird die Zahl der Cluster zunächst festgelegt (im k-Means-Clustering wird die Zahl der Cluster mit statt mit bezeichnet). Im ersten Schritt werden zufällig Clusterzentren (Kreise unten in der Grafik) festgelegt. Im zweiten Schritt wird jedes Objekt (Rechtecke unten in der Grafik) dem nächsten Clusterzentrum zugeordnet. Danach werden die (quadrierten) Abstände zwischen jedem Objekt und seinem zugeordneten Clusterzentrum berechnet und für alle Beobachtungen aufsummiert (). Das Ziel ist es, den Wert von so klein wie möglich zu machen, d. h. Positionen für die Clusterzentren zu finden, so dass der Abstand zwischen jedem Objekt und seinem zugehörigen Clusterzentrum klein ist. Im dritten Schritt werden daher die Clusterzentren aus den Objekten, die zu einem Cluster gehören, neu berechnet. Im vierten Schritt wird wieder jedem Objekt sein nächstes Clusterzentrum zugeordnet. Dieses Verfahren wird iteriert bis sich eine stabile Lösung findet. Wie die folgende Grafik zeigt, können Objekte im Verlauf des Iterationsprozesses durchaus verschiedenen Clustern zugeordnet werden; vergleiche die Grafik zu Schritt 2 und Schritt 4.

Der Nachteil d​es k-Means-Clustering ist, d​ass jedes Objekt i​n jedem Schritt eindeutig e​inem Clusterzentrum zugeordnet wird. Das führt dazu, d​ass die endgültige Lösung s​tark von d​er Wahl d​er Position d​er Clusterzentren a​m Anfang abhängen kann. Natürlich i​st man a​n einer eindeutigen Lösung interessiert, möglichst unabhängig v​on der Position d​er Clusterzentren a​m Anfang.

Im Fuzzy-c-Means-Algorithmus wird daher jedes Objekt nicht eindeutig einem Clusterzentrum zugeordnet, sondern jedem Objekt wird ein Satz Gewichte zugeordnet, die angeben wie stark die Zugehörigkeit zu einem bestimmten Cluster ist. Beispielsweise könnte für das rote Objekt in Schritt 2 die Gewichte

  • für den blauen Cluster
  • für den grünen Cluster und
  • für den roten Cluster sein.

Diese Gewichte werden dann auch benutzt um den gewichteten Abstand zu allen Clusterzentren zu berechnen. Am Ende werden dann Objekte, die nahe einem bestimmten Clusterzentrum liegen, große Gewichte für diesen Cluster haben. Das blaue Objekt nahe dem blauen Clusterzentrum in Schritt 4 könnte z. B. die Gewichte , und haben. Die beiden blauen Objekte nahe der Grenze zum grünen Cluster könnten dann z. B. die Gewichte , und haben.

Die Gewichte für jedes Objekt stellen sogenannte Fuzzy-Zahlen dar. Die Gewichte müssen sich auch nicht für jedes Objekt zu Eins addieren (wie es in diesem Abschnitt zum besseren Verständnis gemacht wurde). Aus der Ableitung vom k-Means-Clustering stammt auch der Name Fuzzy-c-Means.

Mathematische Beschreibung des Algorithmus

Der Begriff fuzzy beschreibt dabei eine Methode der Clusteranalyse, die es erlaubt, ein Objekt mehr als nur einem Cluster zuzuordnen. Ermöglicht wird dies dadurch, dass ein Grad der Zugehörigkeit (membership degree) des Objekts zu jedem Cluster verwendet wird. Jedes liegt dabei im Intervall [0, 1]. Je größer , desto stärker ist die Zugehörigkeit von zu .

Die Zielfunktion d​es Fuzzy-c-Means-Algorithmus lautet:

Dabei gibt die quadrierten (euklidischen) Distanzen zwischen den Punkten und den Clusterzentren (Prototypen) aus der Matrix V an. Die Partitionsmatrix U gibt die membership degrees wieder. C ist die Anzahl an Clustern und N die Größe des Datensatzes. Der „fuzzifier“ m(>1) bestimmt, wie scharf die Objekte den Clustern zugeordnet werden. Lässt man m gegen unendlich laufen, so nähern sich die dem Wert an, d. h. die Zugehörigkeit der Punkte ist zu allen Clustern gleich groß. Liegt m nahe bei 1, so ist das Clustering scharf, d. h. die Zugehörigkeiten liegen näher bei 0 oder 1. In der Praxis haben sich für m Werte zwischen 1 und 2,5 als geeignet herausgestellt (vgl. Stutz (1999)). Die Werte und werden durch Minimierung der Zielfunktion J bestimmt. Die Objekte werden den Clustern also so zugeordnet, dass die Summe der quadrierten Abstände minimal wird. Die Optimierung findet unter Nebenbedingungen statt:

  1. Für jeden Punkt ist die Summe der Zugehörigkeiten zu allen Clustern gleich 1, d. h. für alle gilt ,
  2. Die Cluster sind nicht-leer, d. h. für alle gilt .

Zur Lösung d​es Minimierungs-Problems w​ird das Lagrangeverfahren angewandt. Die Lagrangefunktion

wird nach u,v, und abgeleitet. Als Lösung ergibt sich:

und

Der Algorithmus besteht d​ann aus d​en folgenden Schritten:

  1. Initialisiere eine Start-Partitionsmatrix
  2. Berechne die Prototypen im Iterationsschritt r
  3. Berechne die Partitionsmatrix im Iterationsschritt r
  4. Falls dann Stopp. Sonst zurück zu Schritt 2

Dabei gibt einen kleinen Schwellenwert an.

Beispiel

1000-Schweizer-Franken-Banknote.

Der Schweizer Banknoten-Datensatz besteht a​us 100 echten u​nd 100 gefälschten Schweizer 1000-Franken-Banknoten.[2] An j​eder Banknote wurden s​echs Variablen erhoben:

  • Die Breite der Banknote (WIDTH),
  • die Höhe an der Banknote an der linken Seite (LEFT),
  • die Höhe an der Banknote an der rechten Seite (RIGHT),
  • der Abstand des farbigen Drucks zur Oberkante der Banknote (UPPER),
  • der Abstand des farbigen Drucks zur Unterkante der Banknote (LOWER) und
  • die Diagonale (links unten nach rechts oben) des farbigen Drucks auf der Banknote (DIAGONAL).

Die beiden Grafiken u​nten zeigen d​as Ergebnis d​er k-Means-Clusteranalyse (links) u​nd der Fuzzy-c-Means-Clusteranalyse (rechts) a​uf den ersten beiden Hauptkomponenten d​er Schweizer Banknoten Daten. Die beiden Clusterzentren s​ind in beiden Grafiken jeweils m​it dem Kreuz i​m Kreis markiert. Der kompakte Cluster rechts enthält d​ie echten Banknoten u​nd der Rest s​ind die gefälschten Banknoten.

k-Means-Clustering
Im k-Means-Clustering sind die echten und falschen Banknoten fast richtig klassifiziert worden. Nur eine falsche Banknote ist dem blauen Cluster zugeordnet worden. Dabei ist zu beachten, dass das Clustering mit allen sechs Variablen stattgefunden hat während die Grafik nur zwei Dimensionen darstellt.
Fuzzy-c-Means-Clustering
Hier sind noch mehr Beobachtungen (in der Mitte unten) dem Cluster mit den echten Banknoten zugeordnet worden. Auf den ersten Blick scheint das Fuzzy-c-Means-Clustering schlechter zu sein als das k-Means-Clustering. Die Größe der Datenpunkte in der Grafik gibt jedoch den Wert der Membership Funktion an: Je größer der Datenpunkt desto eindeutiger wird er einem Cluster zugeordnet, je kleiner der Datenpunkt desto unsicherer ist der Algorithmus über die Zuordnung zu einem Cluster. Betrachtet man die Datenpunkte unten in der Mitte, so sieht man, dass sowohl im roten als auch im blauen Cluster die Datenpunkte sehr klein sind, d. h. die Werte der Membershipfunktion liegen hier für beide Cluster bei ca. . Also ist sich der Fuzzy-c-Means-Algorithmus eigentlich sehr unsicher darüber, welchem Cluster diese Datenpunkte zuzuordnen sind.
Tatsächlich ist es so, dass die echten Banknoten von einer Vorlage (Druckplatte) gedruckt wurden, während die gefälschten Banknoten aus verschiedenen Quellen und damit wahrscheinlich auch von verschiedenen gefälschten Druckplatten stammen.
Ergebnis der k-Means-Clusteranalyse (links) und der Fuzzy-c-Means-Clusteranalyse (rechts) auf den Schweizer Banknoten Daten.

Literatur

  • Christiane Stutz: Anwendungsspezifische Fuzzy-Clustermethoden (Dissertation zur künstlichen Intelligenz, TU München). Infix, Sankt Augustin 1999.

Einzelnachweise

  1. J.C. Bezdek: Pattern recognition with fuzzy objective function algorithms. Plenum Press, New York 1981.
  2. Bernhard Flury, Hans Riedwyl: Multivariate Statistics: A Practical Approach. 1. Auflage. Chapman & Hall, London 1988, ISBN 978-0-412-30030-1.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.