Description Usage Arguments Examples
transform dist object to Gram matrix
1 | distToGram(x)
|
x |
a dist object |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | data <- matrix(data = rnorm(300),nrow = 100)
distance <- dist(data)
g <- distToGram(distance)
m <- as.matrix(scale(data, center = TRUE, scale = FALSE) )
g2 <- m %*% t(m)
round(sum(g - g2), 7)
# Using the between cluster distances
set.seed(3141593)
data <- rbind(matrix(rnorm(100, mean = 10, sd = 2), nrow = 50),
matrix(rnorm(100, mean = 0, sd = 1), nrow = 50),
matrix(rnorm(100, mean = -10, sd = 3), nrow = 50))
clustering1 <- stats::hclust(dist(data),method='single')
clustering2 <- kmeans(data,centers=3)
clustering3 <- dbscan::dbscan(data,eps=.8)
library(mclust)
clustering4 <- Mclust(data)
distance <- clusDist(clustering1,clustering2,
clustering3, clustering4)
distance
gram <- distToGram(distance)
decomp <- eigen(gram)
evals <- eigen(gram)$values
coords <- eigen(gram)$vectors
savePar <- par(mfrow = c(1,2))
plot(evals/max(evals), type ="b", ylab = "contribution",
main = "Contributions to dimensionality",
sub = "Only two dimensions needed")
plot(coords[, 1:2], pch = 0:3, cex = 3,
xlab = "Var 1", ylab = "Var 2",
main = "Comparing clusters in cluster space",
sub = "kmeans and model based agree")
par(savePar)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.