Function CECc
performs complementary ensemble clustering in which
in every iteration the number of random samples taken is randomly set
between m/2 and m-1 with m the total number of features. The number of
features to sample can also be specified by the user. Further, each
resulting dendrogram can be cut numerous times into a different specific
number of clusters.
CECc(List, distmeasure = c("tanimoto", "tanimoto"),normalize=FALSE,method=NULL,
t = 10, r = NULL,nrclusters = NULL, weight = NULL, clust = "agnes",
linkage=c("flexible","flexible"),alpha=0.625,WeightClust = 0.5,StopRange=FALSE)
A list of data matrices. It is assumed the rows are corresponding with the objects.
A character vector with the distance measure for each data matrix. Should be one of "tanimoto", "euclidean", "jaccard","hamming".
Logical. Indicates whether to normalize the distance matrices or not.
This is recommended if different distance types are used. More details
on normalization in Normalization
.
A method of normalization. Should be one of "Quantile","Fisher-Yates", "standardize","Range" or any of the first letters of these names.
The number of iterations.
Optional. The number of features to take for the random sample.
A sequence of numbers of clusters to cut the dendrogram in.
Optional. A list of different weight combinations for the data sets in List. If NULL, the weights are determined to be rqual for each data set. It is further possible to fix weights for some data matrices and to let it vary randomly for the remaining data sets. An example is provided in the details.
Choice of clustering function (character). Defaults to "agnes".
A vector with the choice of inter group dissimilarity (character) for each data set.
The parameter alpha to be used in the "flexible" linkage of the agnes function. Defaults to 0.625 and is only used if the linkage is set to "flexible"
A weight for which the result will be put aside of the other results. This was done for comparative reason and easy access.
Logical. Indicates whether the distance matrices with values not between zero and one should be standardized to have so.
If FALSE the range normalization is performed. See Normalization
. If TRUE, the distance matrices are not changed.
This is recommended if different types of data are used such that these are comparable.
The returned value is a list with the following four elements.
The summed incidence matrices for each data matrix
The co-association matrix after a weighted sum of the elements of Incidence for each weight
The hierarchical clustering result for each element in IncidenceComb
The result for the weight specified in Clustweight
Ensemble clustering is performed on each data matrix. This comes down to repeatedly applying hierarchical clustering. A random sample of features is taken in each application. Further, variation is inserted by not splitting the dendrogram a single time into one specific number of clusters but multiple times and for a range of numbers of clusters.Afterwards the two incidence matrices are combined in a weighted sum and hierarchical clustering is performed once more. More information can be found in Fodeh et al. (2013).
The weight combinations should be provided as elements in a list. For three data matrices an example could be: weights=list(c(0.5,0.2,0.3),c(0.1,0.5,0.4)). To provide a fixed weight for some data sets and let it vary randomly for others, the element "x" indicates a free parameter. An example is weights=list(c(0.7,"x","x")). The weight 0.7 is now fixed for the first data matrix while the remaining 0.3 weight will be divided over the other two data sets. This implies that every combination of the sequence from 0 to 0.3 with steps of 0.1 will be reported and clustering will be performed for each.
FODEH, J. S., BRANDT, C., LUONG, B. T., HADDAD, A., SCHULTZ, M., MURPHY, T., KRAUTHAMMER, M. (2013). Complementary Ensemble Clustering of Biomedical Data. J Biomed Inform. 46(3) pp.436-443.
# NOT RUN {
data(fingerprintMat)
data(targetMat)
L=list(fingerprintMat,targetMat)
MCF7_CECc=CECc(L,distmeasure=c("tanimoto","tanimoto"),normalize=FALSE,method=NULL,
t=10,r=NULL,nrclusters=seq(5,25,1),clust="agnes",linkage=c("flexible","flexible")
,alpha=0.625,StopRange=FALSE)
# }
Run the code above in your browser using DataLab