FCM-Code in MATLAB

April 23

FCM-Code in MATLAB

MATLAB ist ein Industrie-Standard Softwarepaket für die Analyse einer Vielzahl von technischen und wissenschaftlichen Daten. Ein Ziel von vielen Analysemethoden ist Muster in den zugrunde liegenden Daten zu erkennen. Oft geht es dabei um unterschiedliche Gruppen oder Haufen Daten aufteilen. Eine häufig verwendete clustering-Algorithmus ist fuzzy c-Means-clustering, entwickelt von Dunn 1973 und 1981 durch Bezdek verbessert.

Übersicht

In fuzzy c-Means-clustering oder FCM können Datenpunkte zu mehr als einem Cluster gehören. Ein iterativer Algorithmus minimiert eine Zielfunktion um die optimale Clustermitgliedschaft für jeden Punkt wird gruppierten Daten zu finden. Iteration der clustering-Algorithmus wird beendet, wenn die Zielfunktion einen lokalen Minimum oder Sattel Punkt erreicht. FCM kann mit anderen Such-Algorithmen kombiniert werden, um ein optimales Ergebnis zu gewährleisten.

Zielfunktion

Der FCM-Zielfunktion J_m ist gleich:

Sum(i=1...N) [sum(j=1...C) [U_ij ^ m Norm (X_i - C_j) ^ 2]]

Die Zielfunktion wird über reale Werte von m zwischen 1 und positive Unendlichkeit betrachtet. Der Wert U_ij ist die Mitgliedschaft der Daten Punkt X_i im Jth Cluster am C_j zentriert.

Algorithmus

Der Optimierungsalgorithmus FCM umfasst vier Schritte:

Initialisieren die Matrix U_0 = [U_ij]. Berechnen Sie der Cluster-Zentren C_k = [C_j] from U_k, wobei k eine ganze Zahl gleich Iteration des Algorithmus ist. U_(k+1) aus der neuen C_k.Calculate der Wert des J_k zu aktualisieren. Wenn die neue Haltestelle J_k erhöhen verursacht, stop, andernfalls zu Schritt 2 zurück.

MATLAB-Verwendung

MATLAB implementiert fuzzy c-Means-Algorithmus in der fcm()-Funktion. Die Fuzzy Logic Toolbox ist für die Verwendung der fcm()-Funktion erforderlich. Die Aufrufsyntax lautet:

[Zentren, U, ObjFun] = Fcm (My_data, N_clusters);

Die My_data-Variable ist die Eingabedaten, wobei jede Zeile einen Datenpunkt darstellt. Die N_clusters-Variable ist die Anzahl der Cluster, die Daten zu gruppieren. Die Zentren-Ausgabe ist die Matrix der optimale Cluster-Zentren. U ist die optimale unscharfe Partition oder Mitgliedschaft Matrix. Die ObjFun-Variable ist der endgültige Wert der Zielfunktion.