Calculation of minimum centroid distance for a range of cluster numbers for estimation of optimised number of clusters

Share:

Description

This function performs repeated soft clustering for a range of cluster numbers c and reports the minimum centroid distance.

Usage

1
Dmin(eset,m,crange=seq(4,40,4),repeats=3,visu=TRUE)

Arguments

eset

object of class ExpressionSet.

m

value of fuzzy c-means parameter m.

crange

range of number of clusters c.

repeats

number of repeated clusterings.

visu

If visu=TRUE plot of average minimum centroid distance is produced

Details

The minimum centroid distance is defined as the minimum distance between two cluster centers produced by the c-means clusterings.

Value

The average minimum centroid distance for the given range of cluster number is returned.

Note

The minimum centroid distance can be used as cluster validity index. For an optimal cluster number, we may see a ‘drop’ of minimum centroid distance wh plotted versus a range of cluster number and a slower decrease of the minimum centroid distance for higher cluster number. More information and some examples can be found in the study of Schwaemmle and Jensen (2010). However, it should be used with care, as the determination remains difficult especially for short time series and overlapping clusters. Alternatively, the function cselection can be used or functional enrichment analysis (e.g. using Gene Ontology) can help to adjust the cluster number.

Author(s)

Matthias E. Futschik (http://www.cbme.ualg.pt/mfutschik_cbme.html)

References

M.E. Futschik and B. Charlisle, Noise robust clustering of gene expression time-course data, Journal of Bioinformatics and Computational Biology, 3 (4), 965-988, 2005

L. Kumar and M. Futschik, Mfuzz: a software package for soft clustering of microarray data, Bioinformation, 2(1) 5-7,2007

Schwaemmle and Jensen, Bioinformatics,Vol. 26 (22), 2841-2848, 2010

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (interactive()){
data(yeast)
# Data pre-processing
yeastF <- filter.NA(yeast)
yeastF <- fill.NA(yeastF)
yeastF <- standardise(yeastF)

#### parameter selection
# For fuzzifier m, we could use mestimate
m1 <- mestimate(yeastF)
m1 # 1.15

# or the function partcoef (see example there)

# For selection of c, either cselection (see example there)
# or

 tmp  <- Dmin(eset,m=m1,crange=seq(4,40,4),repeats=3,visu=TRUE)# Note: This calculation might take some time

 # It seems that the decrease for c ~ 20 - 25 24 and thus 20 might be
 # a suitable number of clusters 
 }

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.