0

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

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

MDS 输出:下载“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 图

我想要匹配的是:

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 点捕捉到网格中最近的点。

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

谢谢

4

0 回答 0