機器學習演算法 多維縮放(MDS)

2021-08-01 09:14:20 字數 3020 閱讀 8171

多維縮放(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...