cmeans {e1071} | R Documentation |

The fuzzy version of the known *k*means clustering algorithm as
well as its online update (Unsupervised Fuzzy Competitive learning).

cmeans (x, centers, iter.max=100, verbose=FALSE, dist="euclidean", method="cmeans", m=2, rate.par = NULL)

`x` |
The data matrix where columns correspond to variables and rows to observations |

`centers` |
Number of clusters or initial values for cluster centers |

`iter.max` |
Maximum number of iterations |

`verbose` |
If `TRUE` , make some output during learning |

`dist` |
Must be one of the following: If `"euclidean"` , the
mean square error, if `"manhattan"` , the mean absolute error is
computed. Abbreviations are also accepted. |

`method` |
If `"cmeans"` , then we have the cmeans fuzzy
clustering method, if `"ufcl"` we have the On-line Update. Abbreviations in the method names are also accepted. |

`m` |
The degree of fuzzification. It is defined for values greater than 1 |

`rate.par` |
The parameter of the learning rate |

The data given by `x`

is clustered by the fuzzy *k*means algorithm.

If `centers`

is a matrix, its rows are taken as the initial cluster
centers. If `centers`

is an integer, `centers`

rows
of `x`

are randomly chosen as initial values.

The algorithm stops when the maximum number of iterations (given by
`iter.max`

) is reached.

If `verbose`

is `TRUE`

, it displays for each iteration the number
the value of the objective function.

If `dist`

is `"euclidean"`

, the distance between the
cluster center and the data points is the Euclidean distance (ordinary
fuzzy *k*means algorithm). If `"manhattan"`

, the distance
between the cluster center and the data points is the sum of the
absolute values of the distances of the coordinates.

If `method`

is `"cmeans"`

, then we have the kmeans fuzzy
clustering method. If `"ufcl"`

we have the On-line Update
(Unsupervised Fuzzy Competitive learning) method, which works by
performing an update directly after each input signal.

The parameters `m`

defines the degree of fuzzification. It is
defined for real values greater than 1 and the bigger it is the more
fuzzy the membership values of the clustered data points are.

The parameter `rate.par`

of the learning rate for the `"ufcl"`

algorithm which is by default set to `rate.par=0.3`

and is taking
real values in (0 , 1).

`cmeans`

returns an object of class `"fclust"`

.

`centers` |
The final cluster centers. |

`size` |
The number of data points in each cluster. |

`cluster` |
Vector containing the indices of the clusters where the data points are assigned to. The maximum membership value of a point is considered for partitioning it to a cluster. |

`iter` |
The number of iterations performed, |

`membership` |
a matrix with the membership values of the data points to the clusters. |

`withinerror` |
Returns the sum of square distances within the clusters. |

`call` |
Returns a call in which all of the arguments are specified by their names. |

Evgenia Dimitriadou

Nikhil R. Pal, James C. Bezdek, and Richard J. Hathaway.
*Sequential Competitive Learning and the Fuzzy c-Means Clustering
Algorithms.* Neural Networks, Vol. **9**, No. 5, pp. 787-796, 1996.

# a 2-dimensional example x<-rbind(matrix(rnorm(100,sd=0.3),ncol=2), matrix(rnorm(100,mean=1,sd=0.3),ncol=2)) cl<-cmeans(x,2,20,verbose=TRUE,method="cmeans",m=2) print(cl) # a 3-dimensional example x<-rbind(matrix(rnorm(150,sd=0.3),ncol=3), matrix(rnorm(150,mean=1,sd=0.3),ncol=3), matrix(rnorm(150,mean=2,sd=0.3),ncol=3)) cl<-cmeans(x,6,20,verbose=TRUE,method="cmeans") print(cl) # assign classes to some new data y<-rbind(matrix(rnorm(33,sd=0.3),ncol=3), matrix(rnorm(33,mean=1,sd=0.3),ncol=3), matrix(rnorm(3,mean=2,sd=0.3),ncol=3)) # ycl<-predict(cl, y, type="both")

[Package *e1071* version 1.5-2 Index]