将多维缩放的输出捕捉到网格

时间:2015-02-03 15:45:15

标签: r pattern-matching snapping multi-dimensional-scaling

我在系统中有一组节点,它们之间的距离不精确。每个节点都位于网格设置中的唯一点。

当我在我的数据集上应用smacof-MDS算法时,我可以在视觉上"识别原始网格,但我想编写脚本以识别mds输出是否与原始网格匹配。

MDS输出:download "mds_coordinates.Rdata"

# mds_node_coordinates <- smacofSym(distance_matrix,ndim=2, type="ratio")
load("mds_coordinates.Rdata") # load the output of above smacofSym call
plot(mds_node_coordinates)

输出图片:MDS plot

我想要匹配的是:

orgGrid <- data.frame(D1=c(2,4,6,8,10,2,4,6,8,10,2,4,6,8,10,2,4,6,8,10), D2=rev(c(rep(12,5),rep(9,5), rep(6,5),rep(3,5) )))
row.names(orgGrid) <- 0:19
library(ggplot2); 
ggplot(orgGrid, aes(x=D1, y=D2)) + geom_text(label=row.names(orgGrid),vjust=-1) + geom_point() + 
                                   scale_x_discrete(breaks=seq(0,11,2), limits=c(0:12)) + scale_y_discrete(breaks=seq(0,13,3), limits=c(0:13)) +
                                   theme_update(panel.grid.major=element_blank(),panel.grid.minor=element_blank(), panel.background=element_rect(color="white")) + theme_bw()

输出图像:[原始网格,应该捕捉MDS输出(注释中的链接)]

作为一种快速而肮脏的解决方案,我可以将MDS输出缩放到我的网格大小,并将MDS点捕捉到网格中最近的点。

我想知道是否有一个更优雅的解决方案来判断这两个网格是否相同。

由于

0 个答案:

没有答案