gauss.kmeans: K-Means clustering for Gaussian Distributions

Description Usage Examples

View source: R/gauss.kmeans.R

Description

K-Means clustering for Gaussian Distributions

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
gauss.kmeans(
  glist,
  k = 2,
  type = c("wass2"),
  maxiter = 100,
  nthreads = 1,
  init.type = c("random", "kmeans++", "kmedoids", "specified"),
  init.label = NULL,
  permute.order = FALSE
)

Examples

 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
35
36
37
38
39
40
41
42
43
44
## generate three-cluster data with univariate Gaussians
mylist = list()
for (i in 1:10){
   mylist[[i]] = wrapgauss1d(mean=-2-runif(1), sd=runif(1))
}
for (i in 11:20){
   mylist[[i]] = wrapgauss1d(mean=0, sd=runif(1))
}
for (i in 21:30){
   mylist[[i]] = wrapgauss1d(mean=2+runif(1), sd=runif(1))
}

## apply clustering with different k values
cl2 <- gauss.kmeans(mylist, k=2)$cluster
cl3 <- gauss.kmeans(mylist, k=3)$cluster
cl4 <- gauss.kmeans(mylist, k=4)$cluster

## compute 2-dimensional embedding for visualization
mds2d <- gauss.mds(mylist, ndim=2)$embed
mdsx <- as.vector(mds2d[,1])
mdsy <- as.vector(mds2d[,2])

## visualize
opar = par(no.readonly=TRUE)
par(mfrow=c(3,1))
plot(mdsx, mdsy, pch=19, col=cl2, main="k=2 means")
plot(mdsx, mdsy, pch=19, col=cl3, main="k=3 means")
plot(mdsx, mdsy, pch=19, col=cl4, main="k=4 means")
par(opar)

## Not run: 
## see the effect of different initialization
c3random  = gauss.kmeans(mylist, k=3, init.type="random")$cluster
c3kpp     = gauss.kmeans(mylist, k=3, init.type="kmeans++")$cluster
c3medoids = gauss.kmeans(mylist, k=3, init.type="kmedoids")$cluster

## visualize
opar = par(mfrow=c(1,3), pty="s")
plot(mdsx, mdsy, pch=19, col=c3random,  main="init: random")
plot(mdsx, mdsy, pch=19, col=c3kpp,     main="init: k-means++")
plot(mdsx, mdsy, pch=19, col=c3medoids, main="init: k-medoids")
par(opar)

## End(Not run)

kyoustat/T4Gauss documentation built on April 9, 2020, 10:47 a.m.