R

將新點投影到 MDS 空間中

  • September 23, 2018

我正在嘗試將一個新點投影A(x, y, z)R. 這是我到目前為止所擁有的:

set.seed(1)
x <- matrix(rnorm(3*10), ncol = 3)
DM <- dist(x) 
MDS <- cmdscale(DM)

# New data point to be projected
A <- c(1, 2, 3)

我不A直接包括x然後擬合 MDS,因為它會影響空間坐標。有切實可行的解決方案嗎?


編輯

我相信我通過估計 beta 來預測 MDS 軸找到了解決方案:

x1 <- cbind(1, x) # add intercept
B <- solve(t(x1) %*% x1) %*% t(x1) %*% MDS # Betas

> MDS
            [,1]        [,2]
[1,] -1.80789362  0.06801597
[2,] -0.64418055 -0.21163109
[3,]  0.04694820 -1.27040928
[4,]  3.39617277 -0.21657115
[5,] -0.96981358  0.46269025
[6,] -0.24716695 -0.79861234
[7,]  0.33620625  0.02618564
[8,]  0.62473570  1.35544267
[9,]  0.01895042  0.80023822
[10,] -0.75395865 -0.21534889

> x1 %*% B # same as MDS
            [,1]        [,2]
[1,] -1.80789362  0.06801597
[2,] -0.64418055 -0.21163109
[3,]  0.04694820 -1.27040928
[4,]  3.39617277 -0.21657115
[5,] -0.96981358  0.46269025
[6,] -0.24716695 -0.79861234
[7,]  0.33620625  0.02618564
[8,]  0.62473570  1.35544267
[9,]  0.01895042  0.80023822
[10,] -0.75395865 -0.21534889

A <- c(1, 2, 3)
A <- c(1, A) # add intercept

> A %*% B # coordinates of A in the MDS plane
         [,1]      [,2]
[1,] -2.759456 0.5927178

我的程序正確嗎?

如果您使用歐幾里得距離,那麼經典 MDS 等價於 PCA,它很容易定義到低維空間的映射,正如變形蟲所提到的。該站點上應該有各種線程來描述如何執行此操作。否則,De Silva 和 Tenenbaum (2004) 描述瞭如何為具有任意距離的經典 MDS 執行此映射(請注意,它不適用於 MDS 的非經典變體,例如非度量 MDS,最小化應力標準的變體,等等。)。他們將此過程稱為“基於距離的三角測量”。雖然最初不是這樣表述的,但事實證明它是通過使用 Nyström 近似來工作的,這是一種使用較小的子矩陣來近似大矩陣的特徵值/特徵向量的方法(參見 Platt 2005)。

假設我們有 $ n $ 訓練點。點之間的平方距離 $ i $ 和 $ j $ 存儲在 $ (i,j) $ 矩陣的第 $ \Delta_n $ . 我們使用這些距離和經典 MDS 來計算 $ k $ 維嵌入。讓每一列 $ k \times n $ 矩陣 $ L_k $ 包含訓練點的低維嵌入坐標。讓 $ L_k^# $ 表示的偽逆的轉置 $ L_k $ . 這可以使用最初用於計算的組件來計算,而不是從頭開始 $ L_k $ (詳見論文)。讓 $ \vec{\delta}i $ 表示 $ i $ 第 列 $ \Delta_n $ (包含距點的平方距離 $ i $ 到所有其他點),並讓 $ \vec{\delta}\mu = \frac{1}{n} \sum_{i=1}^n \vec{\delta}_i $ 表示列的平均值。

現在,假設我們要映射一個新點 $ a $ 進入低維空間。計算向量 $ \vec{\delta}_a $ , 包含距離的平方 $ a $ 到每個訓練點。的低維嵌入坐標 $ a $ 然後由下式給出:

$$ \vec{x}_a = -\frac{1}{2} L_k^# (\vec{\delta}a - \vec{\delta}\mu) $$

參考:

德席爾瓦和特南鮑姆(2004 年)。使用地標點的稀疏多維縮放。

普拉特(2005 年)。FastMap、MetricMap 和 Landmark MDS 都是 Nystrom 算法。

引用自:https://stats.stackexchange.com/questions/368331

comments powered by Disqus