多維縮放(multidimensional scaling, mds)是一組物件之間的距離的視覺化表示,也可以當做一種無監督降維演算法使用。
為了直觀了解mds,給乙個簡單例子。假設現在給定一組城市之間的距離資訊如下:
現在要求繪製一幅地圖,在地圖中標出所有城市,並且城市之間的距離等於上表中給出的距離。顯然,這種圖不是唯一的,因為平移、旋轉操作並不改變距離。其中一種繪製方法如下圖:
mds應用在資料降維時,基本思想和上面的例子相同:保證所有資料點對在低維空間中的距離等於在高維空間中的距離。
假設給定n個例項,可以計算出原始空間中的距離矩陣d∈
rn×n
,其中第
i 行第
j列的元素di
j 表示第
i 個例項和第
j個例項之間的距離。現在希望把資料降維到d′
維空間中去,得到所有樣本點在d′
中的表示z∈
rn×d
′ ,其中zt
i,:∈
rd′ 表示第
i 個例項,並且任意兩個例項在d′
維空間中的距離等於原始空間中的距離。事實上,可以推導出滿足此條件
z 的解析解。
由保持距離原則可知d2
ij=|
|zi−
zj||
2=||
zi||
2+||
zj||
2−2z
tizj
.(1)
不失一般性,我們假設低維空間中的例項點是中心化的,即∑i
=1nz
i=0,
那麼對公式(1)的左右兩邊求和,有 ∑i
=1nd
2ij=
∑i=1
n||z
i||2
+n||
zj||
2,(2) ∑j
=1nd
2ij=
n||z
i||2
+∑j=
1n||
zj||
2,(3) ∑i
=1n∑
j=1n
d2ij
=2n∑
i=1n
||zi
||2,
(4)
由(2)(3)(4)可知:1n
∑i=1
nd2i
j=1n
∑i=1
n||z
i||2
+||z
j||2
,(5) 1
n∑j=
1nd2
ij=|
|zi|
|2+1
n∑j=
1n||
zj||
2,(6) 1n
2∑i=
1n∑j
=1nd
2ij=
21n∑
i=1n
||zi
||2,
(7)
定義內積矩陣b=
zzt∈
rn×n
,即bi
j=zt
izj 。則 bi
j=−1
2(1n
2∑i=
1n∑j
=1nd
2ij−
1n∑i
=1nd
2ij−
1n∑j
=1nd
2ij+
d2ij
).(8)
對矩陣b
做特徵分解,得到 b=
vλvt
,(9)
其中,λ
是由b的特徵值生成的對角矩陣,
v 是特徵向量作為列的矩陣。
我們希望降到d′
維空間中,那麼選擇前d′
個最大特徵值及對應的特徵向量,得到λd
′ 和vd
′ ,則降維後的特徵表示為 z=
vd′λ
12d′
.(10)
[1] multidimensional scaling: definition, overview, examples
[2] 資料降維之多維縮放mds(multiple dimensional scaling)
資料降維 多維尺度縮放(MDS)
多維尺度縮放 mds 是一種比較經典的降維方法,它利用在低維度空間維持高維度空間的距離矩陣來學習資料在低維度空間的表示。演算法如下 以上演算法來自西瓜書的截圖。python 如下 multiple dimensional scaling,mds,多維尺度縮放 資料是按照行來排列的 盡量讓樣本數目大於...
機器學習之多維縮放 MDS 降維
coding utf 8 created on mon nov 26 17 25 11 2018 author muli import numpy as np import matplotlib.pyplot as plt from sklearn import datasets,manifold ...
機器學習演算法 多維縮放(MDS)
多維縮放 mutiple dimensional scaling 是一種經典的降維方法,可以緩解在高維情形下出現的資料樣本稀疏和距離計算困難等問題,即 維數災難 假定m 個樣本在原始空間的距離矩陣為 d rm m 其第i 行和第j列的元素di stij 為樣本xi 和 xj 的距離。我們的目標是獲得...