AUTO CLUSTERING instead of setting the value of 'C' in Fuzzy C-Mean

5 views (last 30 days)
I have a problem in FCM. i want it to be AUTO CLUSTERING instead of setting the value of 'C'?. This is a normal FCM code that need manually set the C: options = [NaN 100 0.001 0]; [centers,U,objFun] = fcm(data,3,options);

Accepted Answer

Walter Roberson
Walter Roberson on 8 Dec 2016
Yes, I know exactly how to get the best possible results in that situation: set the number of clusters to the number of unique points. Every cluster will then contain exactly one point (and any duplicates of it), which will always give you the best possible fitting, with no fitting error at all.
  3 Comments
Walter Roberson
Walter Roberson on 9 Dec 2016
The following does the best possible clustering without specifying the number of clusters in advance:
[cluster_centers, ~, cluster_idx] = unique(YourInputMatrix, 'rows');
That is the entire code. Every unique row becomes its own cluster.
The error in cluster assignment is provably 0.

Sign in to comment.

More Answers (1)

Chad MacDonald
Chad MacDonald on 5 Dec 2024
If you do not have a clear idea of the number of clusters in your data, you can use the subclust function to estimate the number clusters before running FCM.
As of R2023a, you can specify the number of clusters as a vector of values using the NumClusters property of an fcmOptions object. The FCM function computes clusters for each cluster count value and returns the cluster centers for the optimal number of clusters.

Categories

Find more on Data Clustering in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!