簡體   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