Open This Example
Fuzzy CMeans Clustering
This example shows how to perform fuzzy cmeans clustering on 2dimensional data.
What Is Fuzzy CMeans Clustering?
Interactive Fuzzy CMeans Clustering Example
Performing Fuzzy CMeans Clustering on Your Own Data
What Is Fuzzy CMeans Clustering?
Clustering of numerical data forms the basis of many classification and system modeling algorithms. The purpose of clustering is to identify natural groupings of data from a large data set to produce a concise representation of a system's behavior.
Fuzzy cmeans (FCM) is a data clustering technique in which a dataset is grouped into n clusters with every datapoint in the dataset belonging to every cluster to a certain degree. For example, a certain datapoint that lies close to the center of a cluster will have a high degree of belonging or membership to that cluster and another datapoint that lies far away from the center of a cluster will have a low degree of belonging or membership to that cluster.
The Fuzzy Logic Toolbox™ function fcm performs FCM clustering. It starts with an initial guess for the cluster centers, which are intended to mark the mean location of each cluster. The initial guess for these cluster centers is most likely incorrect. Next, fcm assigns every data point a membership grade for each cluster. By iteratively updating the cluster centers and the membership grades for each data point, fcm iteratively moves the cluster centers to the right location within a data set. This iteration is based on minimizing an objective function that represents the distance from any given data point to a cluster center weighted by that data point's membership grade.
Interactive Fuzzy CMeans Clustering Example
Using the fcmdemo command, you can launch a GUI that lets you try out various parameter settings for the fuzzy cmeans algorithm and observe the effect on the resulting 2D clustering. You can choose a sample data set and an arbitrary number of clusters from the drop down menus on the right, and then click "Start" to start the fuzzy cmeans clustering process. The clustering itself is performed by the fcm function.
Figure 1: GUI for Fuzzy CMeans Clustering.
Once the clustering is done, you can select one of the clusters by clicking on it, and view the membership function surface by clicking the "Plot MF" button. To get a better viewing angle, click and drag inside the figure to rotate the MF surface.
You can also tune the 3 optional parameters for the FCM algorithm (exponent, maximum number of iterations and minimum amount of improvement) from the GUI and observe how the clustering process is consequently altered.
Performing Fuzzy CMeans Clustering on Your Own Data
that represent the fuzzy qualities of each cluster.
Here is the underlying code that performs the clustering.
data = load 'fcmdata.dat' ; % load some sample data
n_clusters = ; % number of clusters
[center,U,obj_fcn] = fcm data, n_clusters ;