library(bigMap)
# source graph plot
source('../graphs.R')

Load data

load('../s3d.RData')

Run UMAP (python implementation, default settings)

# perplexities
ppx.list <- round(nrow(s3d$data) *c(.01, .05, .1, .2, .3, .4, .5, .6, .7, .8, .9, .95, .99), 0)
Y = umap.UMAP(n_neighbors = ppx, min_dist = 0.1, metric = 'euclidean', init = 'random').fit_transform(s3d$data)

Load UMAP results

load('./glist.RData')

Output

# plot
nulL <- lapply(g.list, function(g) graph.plot(g, s3d$edges))

hl-Correlation

g.list <- lapply(g.list, function(g) bdm.hlCorr(D, g, zSampleSize = 1000, threads = 4))
save(g.list, file = './glist.RData')
hlTable <- sapply(g.list, function(g) summary(g$hlC)[4])
hlTable <- matrix(round(hlTable, 4), nrow = 1)
colnames(hlTable) <- sapply(g.list, function(g) g$ppx$ppx)
rownames(hlTable) <- c('<hlC>')
knitr::kable(hlTable, caption = 'hl-Correlation') %>%
  kable_styling(full_width = F)
hl-Correlation
20 102 205 410 615 820 1025 1230 1435 1640 1845 1948 2030
<hlC> 0.2119 0.3801 0.5216 0.4483 0.4275 0.4119 0.4275 0.5948 0.5527 0.518 0.6246 0.5206 0.5565

Kary-neighborhood preservation

g.list <- lapply(g.list, function(g) bdm.knp(D, g, k.max = NULL, sampling = 0.9, threads = 4))
save(g.list, file = './glist.RData')
bdm.knp.plot(g.list)

Running Times

rTimes <- round(sapply(g.list, function(g) g$t$UMAP), 0)
rTimes <- matrix(rTimes, nrow = 1)
colnames(rTimes) <- sapply(g.list, function(g) g$ppx$ppx)
rownames(rTimes) <- c('UMAP')
knitr::kable(rTimes, caption = 'Computation times (s)') %>%
  kable_styling(full_width = F)
Computation times (s)
20 102 205 410 615 820 1025 1230 1435 1640 1845 1948 2030
UMAP 9 6 8 9 11 11 13 13 14 15 15 16 16

Run on: Intel(R) Xeon(R) CPU E31225 @ 3.10GHz, 4 cores, 16GB RAM.