Fuzzy c-Means Clustering

Command: Image Analysis > Cluster Analysis > Fuzzy c-Means Clustering

Fuzzy c-means clustering was introduced by Bezdek et al. in 1984. It is an unsupervised algorithm which requires a user-defined number of clusters. The difference to classical k-means clustering is based on the idea of assigning a class membership value to each pixel which reflects the probability of belonging to a particular class. Thus fuzzy c-means delivers class regions which overlap in the image.

The cluster analysis is performed using the loaded spectral descriptors, which may be (de)selected on an individual basis by ticking off the corresponding check box in the list of spectral descriptors. The results of the k-means clustering is displayed as a colored map, which can be processed in the usual way (copy to the 2D Imager, copy to the image stack, export to DataLab). Furthermore, a particular class of pixels can be copied into the mask editor, thus enabling the user to exclude these pixels from further calculations.

The fuzzy c-means algorithm is prone to unfavorable initial positions of the cluster prototypes. This can be circumvented by repeating the algorithm with different starting positions several times and finally using the set of starting conditions which result in the smallest intra-cluster distance. If you tick off the check box "Optimize", the fuzzy c-means model is calculated 20 times, showing the best of these trials.

The optimal setting of the fuzzy weight parameter is not known a priori and must be found empirically. A simple tool for this is checking the pixel purities while scanning the weight parameter (see tabsheet "Scan Fuzzy Weight").

How To: Please follow these steps to perform a k-Means clustering:
  1. Select a list of descriptors which should form the basis of the analysis
  2. Select the scaling mode of the data.
  3. Enter the number of expected clusters.
  4. Optionally select a pixel mask if you want to exclude particular regions of the image from the clustering.
  5. Set the fuzzy weight (good values for a first guess are value between 1.2 and 1.5)
  6. Click the "Calculate" button.

Hint: You may transfer a particular class to a pixel mask by selecting the corresponding class in the list of found clusters followed by right-clicking the class entry (popup command "add the selected class to the pixel mask").