Fuzzy c-means clustering algorithm

This algorithm works by assigning membership to each data point corresponding to each cluster center on the basis
of distance between the cluster center and the data point. More the data is near to the cluster center more is its
membership towards the particular cluster center. Clearly, summation of membership of each data point should be
equal to one. After each iteration membership and cluster centers are updated according to the formula:



                             'n' is the number of data points.                                                                                                                                      'vj' represents the jth cluster center.                                                                                                                              'm' is the fuzziness index m € [1, ∞].                                                                                                                              'c' represents the number of cluster center.                                                                                                             'µij' represents the membership of ith data to jth cluster center.                                                                        'dij' represents the Euclidean distance between ith data and jth cluster center.

Main objective of fuzzy c-means algorithm is to minimize:


                             '||xi – vj||' is the Euclidean distance between ith data and  jth cluster center.

Algorithmic steps for Fuzzy c-means clustering

Let  X = {x1, x2, x3 ..., xn} be the set of data points and V = {v1, v2, v3 ..., vc} be the set of centers.

1) Randomly select ‘c’ cluster centers.

2) Calculate the fuzzy membership ij' using:


3) Compute the fuzzy centers 'vj' using:

Repeat step 2) and 3) until the minimum 'J' value is achieved or ||U(k+1) - U(k)|| <
      ‘k’ is the iteration step.
                              ‘β’ is the termination criterion between [0, 1].

                              ‘U = (µij)n*c is the fuzzy membership matrix
                              ‘J’ is the objective function.

     Fig I: Result of Fuzzy c-means clustering

Gives best result for overlapped data set and comparatively better then k-means algorithm.
Unlike k-means where data point must exclusively belong to one cluster center here data point is assigned
    membership to each cluster center as a result of which data point may belong to more then one cluster center.

Apriori specification of the number of clusters.
With lower value of  β we get the better result but at the expense of  more number of iteration.
Euclidean distance measures can unequally weight underlying factors.


1) Fuzzy c-means by Balaji K and Juby N Zacharias.
2) Fast and Robust Fuzzy C-Means Clustering Algorithms Incorporating Local Information for Image Segmentation by
    Weiling Cai, Songcan Chen and Daoqiang Zhang.
3) http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/cmeans.html
Azad Naik,
May 11, 2010, 2:16 AM
Azad Naik,
May 11, 2010, 2:17 AM