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

2 次查看(过去 30 天)
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);

采纳的回答

Walter Roberson
Walter Roberson 2016-12-8
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 个评论
Walter Roberson
Walter Roberson 2016-12-9
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.

请先登录,再进行评论。

更多回答(1 个)

Chad MacDonald
Chad MacDonald 2024-12-5
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.

类别

Help CenterFile Exchange 中查找有关 Data Clustering 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by