Produces soft membership for each cluster. The hard assignment is returned by cluster().
Membership degrees are returned in the membership attribute.
The base clusterer() uses wcss as a generic default, but
cluster_cmeans() specializes that choice because fuzzy clustering carries
both a hard partition view and a soft membership structure.
Default evaluation in cluster_cmeans() is:
main metric: metric_silhouette()
internal evaluation: silhouette, withinerror
external evaluation: entropy, purity, adjusted_rand_index
The generic wcss fallback is not used as the main metric because fuzzy
c-means is better summarized by a partition quality index plus a criterion
that respects the model's own within-cluster objective.