clustboot {kmed} | R Documentation |
Bootstrap replications for clustering alorithm
Description
This function does bootstrap replications for a clustering algorithm. Any hard clustering algorithm is valid.
Usage
clustboot(distdata, nclust = 2, algorithm = fastclust, nboot = 25, diss = TRUE)
Arguments
distdata |
A distance matrix (n x n)/ dist object or a data frame. |
nclust |
A number of clusters. |
algorithm |
A clustering algorithm function (see Details). |
nboot |
A number of bootstrap replicates. |
diss |
A logical if |
Details
This is a function to obtain bootstrap evaluation for cluster results.
The algorithm
argument is a function where this function has two input
arguments. The two input arguments are a distance matrix/ object or
a data frame, and number of clusters. Then the output is only
a vector of cluster memberships.
The default algorithm
is fastclust
applying the
fastkmed
function. The code of the fastclust
is
fastclust <- function(x, nclust) {
res <- fastkmed(x, nclust, iterate = 50)
return(res$cluster)
}
For other examples, see Examples. It applies ward and kmeans
algorithms. When kmeans is applied, for example, diss
is set to be
FALSE
because the input of the kmclust
and
clustboot
is a data frame instead of a distance.
Value
Function returns a matrix of bootstrap replicates with a dimension of n x b, where n is the number of objects and b is the number of bootstrap replicates.
Author(s)
Weksi Budiaji
Contact: budiaji@untirta.ac.id
References
Dolnicar, S. and Leisch, F. 2010. Evaluation of structure and reproducibility of cluster solutions using the bootstrap. Marketing Letters 21 pp. 83-101.
Examples
num <- as.matrix(iris[,1:4])
mrwdist <- distNumeric(num, num, method = "mrw")
ward.D2 <- function(x, nclust) {
res <- hclust(as.dist(x), method = "ward.D2")
member <- cutree(res, nclust)
return(member)
}
kmclust <- function(x, nclust) {
res <- kmeans(x, nclust)
return(res$cluster)
}
irisfast <- clustboot(mrwdist, nclust=3, nboot=7)
head(irisfast)
irisward <- clustboot(mrwdist, nclust=3, algorithm = ward.D2, nboot=7)
head(irisward)
iriskmeans <- clustboot(num, nclust=3, algorithm = kmclust, nboot=7, diss = FALSE)
head(iriskmeans)