when dealing with soft and hard clustering techniques such as K-means and fuzzy C-means I run into abit of difficulty on the steps that FCM takes to calculate the clusters.
For instance in K-means the steps are as follows:
- Chose number of clusters (K)
- Initialize centroids (K patterns randomly chosen from data set)
- Assign each pattern to the cluster with closest centroid
- Calculate means of each cluster to be its new centroid
- Repeat step 3 until a stopping criteria is met (no pattern move to another cluster)
Could some one explain the steps of fuzzy C-means?
Best Answer
Initialize $U=[u_{ij}]$ matrix, $U^{(0)}$
At k-step: claculate the centers vectors $C^{(k)}=[c_j]$ with $U^{(k)}$ $$ c_j = \frac{\sum_{i=1}^N u_{ij}^{m}.x_i} {\sum_{i=1}^N u_{ij}^{m}} $$
Update $U^{(k)}$, $U^{(k+1)}$ $$ u_{ij} = \frac{1} {\sum_{k=1}^C (\frac{||x_i-c_j||}{||x_i-c_k||})^{\frac{2}{m-1}}} $$
if $||U^{(k+1)}-U^{(k)}||<\epsilon $ then STOP; otherwise return to step 2
for more details see http://home.dei.polimi.it/matteucc/Clustering/tutorial_html/cmeans.html