Wikipedia

Fuzzy clustering


Fuzzy clustering (also referred to as soft clustering or soft k-means) is a form of clustering in which each data point can belong to more than one cluster.

Clustering or cluster analysis involves assigning data points to clusters such that items in the same cluster are as similar as possible, while items belonging to different clusters are as dissimilar as possible. Clusters are identified via similarity measures. These similarity measures include distance, connectivity, and intensity. Different similarity measures may be chosen based on the data or the application.

Comparison to hard clustering

In non-fuzzy clustering (also known as hard clustering), data is divided into distinct clusters, where each data point can only belong to exactly one cluster. In fuzzy clustering, data points can potentially belong to multiple clusters. For example, an apple can be red or green (hard clustering), but an apple can also be red AND green (fuzzy clustering). Here, the apple can be red to a certain degree as well as green to a certain degree. Instead of the apple belonging to green [green = 1] and not red [red = 0], the apple can belong to green [green = 0.5] and red [red = 0.5]. These value are normalized between 0 and 1; however, they do not represent probabilities, so the two values do not need to add up to 1.

Membership

Membership grades are assigned to each of the data points (tags). These membership grades indicate the degree to which data points belong to each cluster. Thus, points on the edge of a cluster, with lower membership grades, may be in the cluster to a lesser degree than points in the center of cluster.

Fuzzy C-means clustering

One of the most widely used fuzzy clustering algorithms is the Fuzzy C-means clustering (FCM) algorithm.

PHistory

Fuzzy c-means (FCM) clustering was developed by J.C. Dunn in 1973, and improved by J.C. Bezdek in 1981.

General description

The fuzzy c-means algorithm is very similar to the k-means algorithm:

  • Choose a number of clusters.
  • Assign coefficients randomly to each data point for being in the clusters.
  • Repeat until the algorithm has converged (that is, the coefficients' change between two iterations is no more than {\displaystyle \varepsilon }\varepsilon , the given sensitivity threshold) :
    • Compute the centroid for each cluster (shown below).
    • For each data point, compute its coefficients of being in the clusters.

Centroid

Any point x has a set of coefficients giving 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,

{\displaystyle c_{k}={{\sum _{x}{w_{k}(x)}^{m}x} \over {\sum _{x}{w_{k}(x)}^{m}}},}{\displaystyle c_{k}={{\sum _{x}{w_{k}(x)}^{m}x} \over {\sum _{x}{w_{k}(x)}^{m}}},}

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 {\displaystyle n}n elements {\displaystyle X=\{\mathbf {x} _{1},...,\mathbf {x} _{n}\}}X=\{{\mathbf  {x}}_{1},...,{\mathbf  {x}}_{n}\} 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 {\displaystyle c}c cluster centres {\displaystyle C=\{\mathbf {c} _{1},...,\mathbf {c} _{c}\}}C=\{{\mathbf  {c}}_{1},...,{\mathbf  {c}}_{c}\} and a partition matrix

{\displaystyle W=w_{i,j}\in [0,1],\;i=1,...,n,\;j=1,...,c}W=w_{{i,j}}\in [0,1],\;i=1,...,n,\;j=1,...,c, where each element, {\displaystyle w_{ij}}w_{ij} , tells the degree to which element, {\displaystyle \mathbf {x} _{i}}\mathbf {x} _{i}, belongs to cluster {\displaystyle \mathbf {c} _{j}}{\mathbf  {c}}_{j}.

The FCM aims to minimize an objective function:

{\displaystyle {\underset {C}{\operatorname {arg\,min} }}\sum _{i=1}^{n}\sum _{j=1}^{c}w_{ij}^{m}\left\|\mathbf {x} _{i}-\mathbf {c} _{j}\right\|^{2},}{\underset  {C}{\operatorname {arg\,min}}}\sum _{{i=1}}^{{n}}\sum _{{j=1}}^{{c}}w_{{ij}}^{m}\left\|{\mathbf  {x}}_{i}-{\mathbf  {c}}_{j}\right\|^{2},

where:

{\displaystyle w_{ij}={\frac {1}{\sum _{k=1}^{c}\left({\frac {\left\|\mathbf {x} _{i}-\mathbf {c} _{j}\right\|}{\left\|\mathbf {x} _{i}-\mathbf {c} _{k}\right\|}}\right)^{\frac {2}{m-1}}}}.}w_{{ij}}={\frac  {1}{\sum _{{k=1}}^{{c}}\left({\frac  {\left\|{\mathbf  {x}}_{i}-{\mathbf  {c}}_{j}\right\|}{\left\|{\mathbf  {x}}_{i}-{\mathbf  {c}}_{k}\right\|}}\right)^{{{\frac  {2}{m-1}}}}}}.

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. {\displaystyle w_{ij}\in \{0,1\}}{\displaystyle w_{ij}\in \{0,1\}}. In Fuzzy C-means, the degree of fuzziness is parametrized by {\displaystyle m\in (1,\infty )}{\displaystyle m\in (1,\infty )}, where a larger {\displaystyle m}m results in fuzzier clusters. In the limit {\displaystyle m\rightarrow 1}{\displaystyle m\rightarrow 1}, the memberships, {\displaystyle w_{ij}}{\displaystyle w_{ij}} , 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, {\displaystyle m}m 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

Image processing example

Image segmented by fuzzy clustering, with the original (top left), clustered (top right), and membership map (bottom)

Image segmentation using k-means clustering algorithms has long been used for pattern recognition, object detection, and medical imaging. However, due to real world limitations such as noise, shadowing, and variations in cameras, traditional hard clustering is often unable to reliably perform image processing tasks as stated above.[citation needed] Fuzzy clustering has been proposed as a more applicable algorithm in the performance to these tasks. Given is gray scale image that has undergone fuzzy clustering in Matlab.[12] The original image is seen next to a clustered image. Colors are used to give a visual representation of the three distinct clusters used to identify the membership of each pixel. Below, a chart is given that defines the fuzzy membership coefficients of their corresponding intensity values.

Depending on the application for which the fuzzy clustering coefficients are to be used, different pre-processing techniques can be applied to RGB images. RGB to HCL conversion is common practice.[13]


Comments

Popular posts from this blog

spreadsheet in excel

vocab

11