我在系统中有一组节点,它们之间的距离不精确。每个节点都位于网格设置中的唯一点。
当我在我的数据集上应用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点捕捉到网格中最近的点。
我想知道是否有一个更优雅的解决方案来判断这两个网格是否相同。
由于