`advclust` is package for advance clustering. Right now `advclust` provide several Fuzzy Clustering and Consensus Fuzzy Clustering. This package use Object Oriented Programming (S4 for R). Several Algorithms that provided by this package are: - Fuzzy C-Means (FCM) - Gustafson Kessel (GK) - Gath Geva (GG) - Sum Voting Consensus - Product Voting Consensus - Borda Voting Consensus

## Fuzzy Clustering Analysis

### Fuzzy C-Means

`fuzzy.CM()` perform fuzzy c-means analysis. More description of this function (parameter setting, description, and return value) explained via `?fuzzy.CM` This algorithm used to get sperichal cluster

```library(advclust)
data(iris)
fuzzy.CM(X=iris[,1:4],K = 3,m = 2,RandomNumber = 1234)->cl_CM
show(cl_CM)
```

### Gustafson Kessel

`fuzzy.GK()` perform Gustafson Kessel analysis. More description of this function (parameter setting, description, and return value) explained via `?fuzzy.GK`. This algorithm used to get ellipsodial and sperichal cluster

```library(advclust)
data(iris)
fuzzy.GK(X=iris[,1:4],K = 3,m = 2,RandomNumber = 1234)->cl_GK
show(cl_GK)
```

### Gath Geva

`fuzzy.GG()` perform Gath Geva analysis. More description of this function (parameter setting, description, and return value) explained via `?fuzzy.GG` This algorithm used to get hyperellipsodial cluster. Use membership that resulted from `fuzzy.CM` as initial membership to get best result.

```library(advclust)
data(iris)
fuzzy.GG(X=iris[,1:4],K = 3,m = 2,RandomNumber = 1234)->cl_GG
show(cl_GG)
```

## Visualization

For visualization this package provide biplot and radar plot

### Biplot

Biplot perform visualization with Principal Component Analysis. Use scale =`T` when unit of variables on data are different.

```biploting(cl_CM, iris[,1:4], scale=T)->biplot
```

Radar plot can be used to profilling your cluster result via centroid. Please take attention to axis label. `0` indicates mean of variable, `0.5` indicates mean plus half of standar deviation in realted variable, `-0.5` indicates mean minus half of standar deviation in related variable, etc.

```radar.plotting(cl_CM, iris[,1:4])->radar
```

## Validation

To get best parameter and know how well your result, use validation index that provided. There are Xie Beni, Partition Coefficient, Modified Partition Coefficient, Classification Entropy, Kwon, Tang, and Separation. See details in `?validation.index`

```validation.index(cl_GK)
```

## Consensus Clustering

Combine several fuzzy cluster result, eg: FCM, GK, GG, to one result. The purpose of this action is to get best stable or robust result. Actually when you run 3 times, with no specific random number, the first result may be different with second time. And choosing best random number is hard to describe. So the alternative is you can combine your result with consensus algorithm.

Right now, this package provide VOTING method. This method inspired from domination in voting schema. Algorithm that use in this package are "sum", "product", "borda". "product" is sensitive when there is low membership on your result.

```c_fuzzycluster(cl_GK,cl_GG,cl_CM)->c_consensus
co.vote(c_consensus,"sum")
```