多維縮放(mutiple dimensional scaling)是一種經典的降維方法,可以緩解在高維情形下出現的資料樣本稀疏和距離計算困難等問題,即「維數災難」.假定m
個樣本在原始空間的距離矩陣為 d∈
rm×m
,其第i
行和第j列的元素di
stij
為樣本xi
和 xj
的距離。我們的目標是獲得樣本在d′
維空間的表示z∈
rd′×
m , d′
≤d,且任意兩個樣本在d′
維空間中的歐式距離等於原始空間中的距離,即||
zi−z
j||=
dist
ij. 令b
=ztz
∈rm×
m ,其中
b 為降維後樣本的內積矩陣,bi
j=zt
izj ,則有 di
st2i
j=||
zi−z
j||2
=||z
i||2
+||z
j||2
+2zt
izj=
bii+
bjj−
2bij
, 則 b
ij=1
2(bi
i+bj
j−di
st2i
j).
下面要用di
stij
來表示bi
j .
為方便計算,首先對資料進行中心化,即令∑m
i=1z
i=0 ,即 ∑i
=1mz
ik=0
(k=1
,...
,d).
則 ∑i
=1mb
ij=∑
i=1m
ztiz
j=∑i
=1m∑
k=1d
′zik
zjk=
∑k=1
d′(∑
i=1m
zik)
zjk=
0,同理也有∑m
j=1b
ij=0
.則我們可以得到 ∑i
=1md
isti
j=∑i
=1m(
bii+
bjj−
2bij
)=tr
(b)+
mbjj
−2∑i
=1mb
ij=t
r(b)
+mbj
j, ∑
j=1m
dist
ij=∑
j=1m
(bii
+bjj
−2bi
j)=m
bii+
tr(b
)−2∑
i=1m
bij=
tr(b
)+mb
ii,
∑i=1
m∑j=
1mdi
stij
=∑i=
1m∑j
=1m(
bii+
bjj−
2bij
)=∑i
=1m(
tr(b
)+mb
ii)=
2mtr
(b),
其中tr
(b) 為矩陣
b 的跡,定義為tr
(b)=
∑d′i
=1bi
i .則可得到: tr
(b)=
12m∑
i=1m
∑j=1
mdis
t2ij
. 接著我們記: di
st2i
⋅=1m
∑j=1
mdis
t2ij
, di
st2⋅
j=1m
∑i=1
mdis
t2ij
, di
st2⋅
⋅=1m
2∑i=
1m∑j
=1md
ist2
ij.
故可進一步得到 tr
(b)=
m2di
st2⋅
⋅.故得到 bi
i=1m
(m⋅d
ist2
i⋅−m
2dis
t2⋅⋅
), b
jj=1
m(m⋅
dist
2⋅j−
m2di
st2⋅
⋅).
對於bij
,代入上式後得到 bi
j=12
(dis
t2i⋅
+dis
t2⋅j
−dis
t2⋅⋅
−dis
t2ij
),到此可以求得降維後矩陣
b 的各元素.
接著對矩陣
b 做特徵值分解,即 b=
vλvt
事實上,
d 是乙個對稱實矩陣,此時得到的
b 剛好會有
d 個非0的特徵值.其中 λ=
diag
(λ1,
λ2,⋯
,λd)
為特徵值構成的對角矩陣.假定其中有d∗
個非零特徵值,它們構成對角矩陣λ∗
=dia
g(λ1
,λ2,
⋯,λd
∗),令v
∗ 表示相應的特徵向量矩陣,則
z 可表達為 z=
λ12∗
vt∗∈
rd∗×
m 如果想還原原始樣本矩陣,就選擇
d 個特徵值和對應的特徵向量;
如果想要達到降維目的,就取d′
(d′個最大特徵值和相應的特徵向量.
周志華《機器學習》清華大學出版社
機器學習之多維縮放 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
多維縮放 multidimensional scaling,mds 是一組物件之間的距離的視覺化表示,也可以當做一種無監督降維演算法使用。為了直觀了解mds,給乙個簡單例子。假設現在給定一組城市之間的距離資訊如下 現在要求繪製一幅地圖,在地圖中標出所有城市,並且城市之間的距離等於上表中給出的距離。顯...
機器學習 多維縮放
多維縮放,指一組n維資料,用m 偽 太偽了 計算出實際一組資料之間的距離矩陣。隨機生成一組m維資料,申請存放這組m維的調整值的空間,和誤差率空間。多次調整直至迴圈結束或者誤差更多。調整方法 為每個m維資料,計算到其他個資料的距離,跟實際上n維下的距離比較,得出誤差率,然後累加每一維度的誤差值 a和b...