繁体   English   中英

R中距离矩阵的坐标

[英]Coordinates from distance matrix in R

是否有将距离矩阵转换为一组坐标的包? 我已经完成了以下问题。 我希望有一个这方面的包。

从距离矩阵中寻找点的坐标

我已经考虑过Sammons Projection,但据我所知,它是一个优化器,可以为您提供最佳解决方案。 我认为应该有一个算法来获得一个独特的解决方案。

多维缩放(MDS)旨在将数据的距离矩阵投影到较低维度k ,在您的情况下需要k = 2 ,同时尝试保留数据点之间的距离:

# Multidimensional scaling
library(MASS)
set.seed(1)
labels <- as.factor(sample(LETTERS[1:5], 100, replace=TRUE))
dat <- mvrnorm(n=100, mu = c(1:4), Sigma=matrix(1:16, ncol=4)) + as.numeric(labels)^2
#> dim(dat)
#[1] 100   4

# Euclidean distance matrix (100x100)
d <- dist(dat)

# Classical MDS for distance matrix d
# http://en.wikipedia.org/wiki/Multidimensional_scaling
mds <- cmdscale(d, k = 2)
x <- mds[,1]
y <- mds[,2]

plot(x,y, col=rainbow(5)[as.numeric(labels)], pch=16, main="MDS for object 'dat'")
legend("topright", legend=unique(labels), col=rainbow(5)[unique(as.numeric(labels))], pch=16)

进一步阅读: https//stats.stackexchange.com/questions/14002/whats-the-difference-between-principal-components-analysis-and-multidimensional

mds投影

查找称为Multi-Dimensional Scaling (MDS)的算法。 R中的实现是stats包中的cmdscale函数:

多维缩放采用一组不相似性并返回一组点,使得点之间的距离近似等于相异度。

文档还有一个例子,其中距离矩阵被转换为xy坐标的两个向量,然后绘制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM