the degree of being in the kth cluster wk(x). With fuzzy c-means, the centroid of a cluster is the mean of all points, weighted by their degree of belonging to the cluster, or, mathematically, where m is the hyper- parameter that controls how fuzzy the cluster will be. The higher it is, the fuzzier the cluster will be in the end. Algorithm The FCM algorithm attempts to partition a finite collection of elements into a collection of c fuzzy clusters with respect to some given criterion. Given a finite set of data, the algorithm returns a list of cluster centres and a partition matrix , where each element, , tells the degree to which element, , belongs to cluster . The FCM aims to minimize an objective function: , where: . Comparison to K-means clustering K-means clustering also attempts to minimize the objective function shown above, except that in K-means, the membership values are either zero or one, and cannot take values in between, i.e. . In Fuzzy C-means, the degree of fuzziness is parametrized by , where a larger results in fuzzier clusters. In the limit , the memberships, , converge to 0 or 1, and the Fuzzy C-means objective coincides with that of K-means. In the absence of experimentation or domain knowledge, is commonly set to 2. The algorithm minimizes intra-cluster variance as well, but has the same problems as 'k'-means; the minimum is a local minimum, and the results depend on the initial choice of weights. Implementation There are several implementations of this algorithm that are publicly available. Related algorithms Fuzzy C-means (FCM) with automatically determined for the number of clusters could enhance the detection accuracy. Using a mixture of Gaussians along with the expectation-maximization algorithm is a more statistically formalized method which includes some of these ideas: partial membership in classes. Example To better understand this principle, a classic example of mono-dimensional data is given below on an x axis. This data set can be traditionally grouped into two clusters. By selecting a threshold on the x-axis, the data is separated into two clusters. The resulting clusters are labelled 'A' and 'B', as seen in the following image. Each point belonging to the data set would therefore have a membership coefficient of 1 or 0. This membership coefficient of each corresponding data point is represented by the inclusion of the y-axis. In fuzzy clustering, each data