Calculation of minimum centroid distance for a range of cluster numbers for estimation of optimised number of clusters
This function performs repeated soft clustering for a range of cluster numbers c and reports the minimum centroid distance.
Dmin(eset,m,crange=seq(4,40,4),repeats=3,visu=TRUE)
eset |
object of class ExpressionSet. |
m |
value of fuzzy c-means parameter |
crange |
range of number of clusters |
repeats |
number of repeated clusterings. |
visu |
If |
The minimum centroid distance is defined as the minimum distance between two cluster centers produced by the c-means clusterings.
The average minimum centroid distance for the given range of cluster number is returned.
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.
Matthias E. Futschik (http://www.cbme.ualg.pt/mfutschik_cbme.html)
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
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 }
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.