以下内容均为个人理解,如有错误,欢迎指出
什么是多维缩放
多维缩放(Mutiple Dimensional Scaling)是一种经典的降维方法,是一种无监督算法,其目的是使降维后的数据之间的距离保持不变
推导过程
符号表
符号名 | 含义 |
---|---|
D D D | m个样本在原始空间的距离矩阵 |
x i x_i xi | 第i个样本的坐标,维度为d |
d i s t i j dist_{ij} distij | 原始空间 x i x_i xi到 x j x_j xj之间的距离 |
z i z_i zi | 第i个样本降维后的坐标,维度为 d ′ d' d′,其中 d ′ < d d'<d d′<d |
Z Z Z | 降维后的样本构成的矩阵,为 ( z 1 , z 2 , . . . . , z m ) (z_1,z_2,....,z_m) (z1,z2,....,zm) |
B B B | 为降维后样本的内积矩阵,即 B = Z T Z B=Z^TZ B=ZTZ,其中 b i j = z i T z j b_{ij}=z_i^Tz_j bij=ziTzj |
使用上述符号,MDS的目标可以表示为
d
i
s
t
i
j
=
∣
∣
z
i
−
z
j
∣
∣
dist_{ij}=||z_i-z_j||
distij=∣∣zi−zj∣∣,则有
d
i
s
t
i
j
2
=
∣
z
i
∣
2
+
∣
z
j
∣
2
−
2
z
i
T
z
j
=
b
i
i
+
b
j
j
−
2
b
i
j
dist_{ij}^2=|z_i|^2+|z_j|^2-2z_i^Tz_j=b_{ii}+b_{jj}-2b_{ij}
distij2=∣zi∣2+∣zj∣2−2ziTzj=bii+bjj−2bij降维前,我们先对所有的样本进行中心化,即所有样本的每一维数值减去该维的均值,则降维后的数据也满足中心化(这点可以自己算下,比较简单,这里省去),即
∑
i
=
1
m
z
i
=
0
\sum_{i=1}^mz_i=0
∑i=1mzi=0,则有
∑
i
=
1
m
b
i
j
=
0
(
式
1.0
)
∑
j
=
1
m
b
i
j
=
0
(
式
1.1
)
\sum_{i=1}^mb_{ij}=0(式1.0)\\ \sum_{j=1}^mb_{ij}=0(式1.1)
i=1∑mbij=0(式1.0)j=1∑mbij=0(式1.1)
现在我们有一个想法,如何用
D
D
D中的元素表示
B
B
B,如果我们求出
B
B
B,然后进行矩阵的开平方操作,不就可以得到
Z
Z
Z了吗?我们首先来看看如何用
D
D
D中的元素表示
B
B
B,依据式1.0和式1.1,我们有
∑
i
=
1
m
d
i
s
t
i
j
2
=
b
11
+
b
22
+
.
.
.
.
+
b
m
m
+
m
b
j
j
−
2
(
b
1
j
+
b
2
j
+
.
.
.
+
b
m
j
)
=
t
r
(
B
)
+
m
b
j
j
(
式
1.2
)
∑
j
=
1
m
d
i
s
t
i
j
2
=
b
11
+
b
22
+
.
.
.
.
+
b
m
m
+
m
b
i
i
−
2
(
b
i
1
+
b
i
2
+
.
.
.
+
b
i
m
)
=
t
r
(
B
)
+
m
b
i
i
(
式
1.3
)
∑
i
=
1
m
∑
j
=
1
m
d
i
s
t
i
j
2
=
∑
i
=
1
m
(
t
r
(
B
)
+
m
b
i
i
)
=
2
m
t
r
(
B
)
(
式
1.4
)
\begin{aligned} &\sum_{i=1}^mdist_{ij}^2=b_{11}+b_{22}+....+b_{mm}+mb_{jj}-2(b_{1j}+b_{2j}+...+b_{mj})=tr(B)+mb_{jj}(式1.2)\\ &\sum_{j=1}^mdist_{ij}^2=b_{11}+b_{22}+....+b_{mm}+mb_{ii}-2(b_{i1}+b_{i2}+...+b_{im})=tr(B)+mb_{ii}(式1.3)\\ &\sum_{i=1}^m\sum_{j=1}^mdist_{ij}^2=\sum_{i=1}^m(tr(B)+mb_{ii})=2m\ tr(B)(式1.4) \end{aligned}
i=1∑mdistij2=b11+b22+....+bmm+mbjj−2(b1j+b2j+...+bmj)=tr(B)+mbjj(式1.2)j=1∑mdistij2=b11+b22+....+bmm+mbii−2(bi1+bi2+...+bim)=tr(B)+mbii(式1.3)i=1∑mj=1∑mdistij2=i=1∑m(tr(B)+mbii)=2m tr(B)(式1.4)
t
r
tr
tr称为矩阵的迹,即一个n×n矩阵A的主对角线(从左上方至右下方的对角线)上各个元素的总和被称为矩阵A的迹,令
d
i
s
t
i
.
2
=
1
m
∑
j
=
1
m
d
i
s
t
i
j
2
(
式
1.5
)
d
i
s
t
.
j
2
=
1
m
∑
i
=
1
m
d
i
s
t
i
j
2
(
式
1.6
)
d
i
s
t
.
.
2
=
1
m
2
∑
i
=
1
m
∑
j
=
1
m
d
i
s
t
i
j
2
(
式
1.7
)
dist_{i.}^2=\frac{1}{m}\sum_{j=1}^mdist_{ij}^2(式1.5)\\ dist_{.j}^2=\frac{1}{m}\sum_{i=1}^mdist_{ij}^2(式1.6)\\ dist_{..}^2=\frac{1}{m^2}\sum_{i=1}^m\sum_{j=1}^mdist_{ij}^2(式1.7)
disti.2=m1j=1∑mdistij2(式1.5)dist.j2=m1i=1∑mdistij2(式1.6)dist..2=m21i=1∑mj=1∑mdistij2(式1.7)
由式1.2到式1.7可得
b
i
j
=
−
1
2
(
d
i
s
t
i
j
2
−
d
i
s
t
i
.
2
−
d
i
s
t
.
j
2
+
d
i
s
t
.
.
2
)
(
式
1.8
)
b_{ij}=-\frac{1}{2}(dist_{ij}^2-dist_{i.}^2-dist_{.j}^2+dist_{..}^2)(式1.8)
bij=−21(distij2−disti.2−dist.j2+dist..2)(式1.8)
我们来验算一下式1.8,则有
−
1
2
(
d
i
s
t
i
j
2
−
d
i
s
t
i
.
2
−
d
i
s
t
.
j
2
+
d
i
s
t
.
.
2
)
=
−
1
2
(
b
i
i
+
b
j
j
−
2
b
i
j
−
1
m
(
2
t
r
(
B
)
+
m
b
i
i
+
m
b
j
j
−
2
t
r
(
B
)
)
)
=
b
i
j
\begin{aligned} &-\frac{1}{2}(dist_{ij}^2-dist_{i.}^2-dist_{.j}^2+dist_{..}^2)\\ =&-\frac{1}{2}(b_{ii}+b_{jj}-2b_{ij}-\frac{1}{m}(2tr(B)+mb_{ii}+mb_{jj}-2tr(B)))\\ =&b_{ij} \end{aligned}
==−21(distij2−disti.2−dist.j2+dist..2)−21(bii+bjj−2bij−m1(2tr(B)+mbii+mbjj−2tr(B)))bij
至此,我们可以用
D
D
D中的元素表示
B
B
B,接下来,由于
B
=
Z
T
Z
B=Z^TZ
B=ZTZ,我们看看怎么求出
Z
Z
Z,由于
B
B
B是方阵,对
B
B
B进行特征分解可得到
B
=
V
D
V
T
B=VDV^T
B=VDVT,其中,
D
=
d
i
a
g
(
λ
1
,
λ
2
,
.
.
.
.
,
λ
d
)
D=diag(\lambda_1,\lambda_2,....,\lambda_d)
D=diag(λ1,λ2,....,λd),满足
λ
1
≥
λ
2
≥
.
.
.
≥
λ
d
\lambda_1\geq \lambda_2\geq...\geq \lambda_d
λ1≥λ2≥...≥λd,
V
V
V为特征向量矩阵,特征向量相互正交,则
Z
Z
Z可表示为
Z
=
D
1
2
V
T
Z=D^\frac{1}{2}V^T
Z=D21VT(如何求解出来暂时不清楚),其中
D
1
2
=
d
i
a
g
(
λ
1
,
λ
2
,
.
.
.
.
.
,
λ
d
)
D^\frac{1}{2}=diag(\sqrt\lambda_1,\sqrt\lambda_2,.....,\sqrt\lambda_{d})
D21=diag(λ1,λ2,.....,λd),可以验算一下
Z
T
Z
Z^TZ
ZTZ,就会发现其等于
B
B
B
至此,MDS的推导就完成了,需要注意的是,在推导过程中,我们首先对所有数据维度进行了中心化,此时才能使用式1.8计算 B B B