if (FALSE) {
#-------------------------------------------------------------------
# Description
#
# GW barycenter computation is quite expensive. In this example,
# we draw a small set of empirical measures from the digit '3'
# images and compute their GW barycenter with a small number of
# support points. The attained barycenter distance matrix is then
# passed onto the classical MDS algorithm for visualization.
#-------------------------------------------------------------------
## GENERATE DATA
data(digits)
data_D = vector("list", length=5)
data_W = vector("list", length=5)
for (i in 1:5){
img_now = img2measure(digits3[[i]])
data_D[[i]] = stats::dist(img_now$support)
data_W[[i]] = as.vector(img_now$weight)
}
## COMPUTE
bary_dist <- gwbary(data_D, marginals=data_W, num_support=100)
bary_cmd2 <- stats::cmdscale(bary_dist$dist, k=2)
## VISUALIZE
opar <- par(no.readonly=TRUE)
par(pty="s")
plot(bary_cmd2, main="GW Barycenter Embedding",
xaxt="n", yaxt="n", pch=19, xlab="", ylab="")
par(opar)
}
Run the code above in your browser using DataLab