Fuzzy K-Means clustering algorithm.
The Fuzzy K-Means algorithm is a variation of the classical K-Means algorithm, with the major difference that a single data point is not uniquely assigned to a single cluster. Instead, each point i has a set of weights uij which indicate the degree of membership to the cluster j.
The algorithm then tries to minimize the objective function:
J = ∑i=1..C∑k=1..N uikmdik2
with d
ik being the distance between data point i and the cluster center k.
The algorithm requires two parameters:
- k: the number of clusters
- fuzziness: determines the level of cluster fuzziness, larger values lead to fuzzier clusters
Additional, optional parameters:
- maxIterations: the maximum number of iterations
- epsilon: the convergence criteria, default is 1e-3
The fuzzy variant of the K-Means algorithm is more robust with regard to the selection of the initial cluster centers.
@param < T> type of the points to cluster
@since 3.3