多维放缩(MDS)与主成分分析(PCA)

摘要

多维缩放(MDS)是一种保持样本间距离关系的降维技术,通过将高维空间中的距离矩阵转换为低维空间中的内积矩阵来实现。在MDS中,首先计算原始数据间的欧氏距离,然后构造出一个中心化的内积矩阵B,并对其进行特征值分解以获得降维后的坐标。主成分分析(PCA)则是另一种广泛使用的降维方法,它基于最大化投影后样本点方差的原则,通过求解协方差矩阵的特征向量找到最佳投影方向。两种方法都旨在减少数据维度同时尽可能保留原始数据的信息。

Abstract

Multidimensional scaling (MDS) is a dimensionality reduction technique that maintains the distance relationship between samples by converting the distance matrix in the high-dimensional space to the inner product matrix in the low-dimensional space. In MDS, the Euclidean distance between the original data is calculated first, and then a centralized inner product matrix B is constructed, and the eigenvalue decomposition is performed to obtain the coordinates after dimensionality reduction. Principal component analysis (PCA) is another widely used dimensionality reduction method, which is based on the principle of maximizing the variance of the projected sample points, and finds the best projection direction by solving the eigenvector of the covariance matrix. Both approaches aim to reduce the data dimension while preserving as much information as possible about the original data.

1. 多维缩放(MDS)

目的:要求原始空间中样本之间的距离在低维中得以保持。

在这里插入图片描述
假定一共有m个样本空间的距离矩阵为
D∈ R m × m {R}^{m\times m} Rm×m,令 B = Z T Z ∈ R m × m \mathbf{B}=\mathbf{Z}^{\mathrm{T}}\mathbf{Z}\in\mathbb{R}^{m\times m} B=ZTZRm×m,其中B为降维后样本的内积矩阵, b i j = z i T z j b_{ij}=z_i^\mathrm{T}z_j bij=ziTzj 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=\|\boldsymbol{z}_i\|^2+\|\boldsymbol{z}_j\|^2-2\boldsymbol{z}_i^\mathrm{T}\boldsymbol{z}_j\\=b_{ii}+b_{jj}-2b_{ij} . distij2=zi2+zj22ziTzj=bii+bjj2bij.
令降维后的样本Z被中心化 ∑ i = 1 m z i = 0 \sum_{i=1}^mz_i=0 i=1mzi=0.显然,矩阵B的行与列之和均为零,即 ∑ i = 1 m b i j = ∑ j = 1 m b i j = 0. \sum_{i=1}^mb_{ij}=\sum_{j=1}^mb_{ij}=0. i=1mbij=j=1mbij=0.可以得到 ∑ i = 1 m d i s t i j 2 = t r ( B ) + m b j j ∑ j = 1 m d i s t i j 2 = t r ( B ) + m b i i ∑ i = 1 m ∑ j = 1 m d i s t i j 2 = 2 m t r ( B ) \sum_{i=1}^{m}dist_{ij}^{2}=\mathrm{tr}(\mathbf{B})+mb_{jj}\\\sum_{j=1}^{m}dist_{ij}^{2}=\mathrm{tr}(\mathbf{B})+mb_{ii}\\\sum_{i=1}^{m}\sum_{j=1}^{m}dist_{ij}^{2}=2m \mathrm{tr}(\mathbf{B}) i=1mdistij2=tr(B)+mbjjj=1mdistij2=tr(B)+mbiii=1mj=1mdistij2=2mtr(B)根据矩阵的性质可以得到以下公式:
d i s t i 2 = 1 m ∑ j = 1 m d i s t i j 2 , d i s t ⋅ j 2 = 1 m ∑ i = 1 m d i s t i j 2 , d i s t . . 2 = 1 m 2 ∑ i = 1 m ∑ j = 1 m d i s t i j 2 , \begin{aligned} &dist_i^2 =\frac1m\sum_{j=1}^{m}dist_{ij}^{2} , \\ &dist_{\cdot j}^2 =\frac{1}{m}\sum_{i=1}^{m}dist_{ij}^{2} , \\ &dist_{..}^2 =\frac1{m^2}\sum_{i=1}^m\sum_{j=1}^mdist_{ij}^2 , \end{aligned} disti2=m1j=1mdistij2,distj2=m1i=1mdistij2,dist..2=m21i=1mj=1mdistij2,
由所有式子联合起来可以得到以下公式:
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 ) , b_{ij}=-\frac{1}{2}(dist_{ij}^{2}-dist_{i.}^{2}-dist_{.j}^{2}+dist_{..}^{2}) , bij=21(distij2disti.2dist.j2+dist..2),
上述得到的结论是:通过降维前后保持不变的距离矩阵D求取内积矩阵B
对上述矩阵B做特征值分解, B = V Λ V T \mathbf{B}=\mathbf{V}\mathbf{\Lambda}\mathbf{V}^{\mathrm{T}} B=VT,其中, Λ = diag ⁡ ( λ 1 , λ 2 , … , λ d ) \boldsymbol{\Lambda}=\operatorname{diag}(\lambda_1,\lambda_2, \ldots,\lambda_d) Λ=diag(λ1,λ2,,λd), V \mathbf{V} V为特征向量矩阵假定其中有d’个非零特征值,它们构成对角矩阵 Λ ∗ = diag ⁡ ( λ 1 , λ 2 , … , λ d ′ ) \boldsymbol{\Lambda_*}=\operatorname{diag}(\lambda_1,\lambda_2, \ldots,\lambda_d') Λ=diag(λ1,λ2,,λd) V ∗ \mathbf{V_*} V表示相应的特征向量矩阵,则Z可表达为 Z = Λ ∗ 1 / 2 V ∗ T ∈ R d ∗ × m . \mathbf{Z}=\mathbf{\Lambda}_{*}^{1/2}\mathbf{V}_{*}^{\mathrm{T}}\in\mathbb{R}^{d^{*}\times m} . Z=Λ1/2VTRd×m.
注意:在现实应用中为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必严格相等。
MDS算法流程:
在这里插入图片描述

1.1 MDS降维条件

保持原始空间样本之间的距离和低维空间中的距离相等。这是MDS降维方法的前提和条件,但是在实际的应用中,并不会保证样本之间距离在降维前后保持百分之百不变,而是使得降维前后样本距离大致一致。

1.2 MDS降维步骤

  • 1.对原始数据做归一化预处理

目的:对原始数据进行归一化后,保证所有属性的数据点全部落在[0,1]区间内,这样方便后面MDS算法处理。

  • 2.计算每两个样本之间的欧式距离
    在这里插入图片描述
  • 3.计算降维后样本的内积矩阵B
    在这里插入图片描述
  • 4.对上述矩阵内积矩阵B做特征值分解
    num表示降到的维度
    在这里插入图片描述
  • 5.对降维后的数据进行可视化
    在这里插入图片描述

2. 主成分分析(PCA)

  • 主成分分析是最常用的一种降维方法。
  • 对于正交属性空间的样本点,如何用一个超平面(直线的高维推广)所有的样本进行恰当的表达?
  • 应该具有两个性质:
    • 最近重构性:样本点到这个超平面的距离足够近
    • 最大可分性:样本点在这个超平面的投影能尽可能分开。

2.1 最近重构性

在这里插入图片描述
即通过w矩阵将d维数据变成d‘维的数据,然后又通过w重构回去。
考虑整个训练集,原样本点xi与基于投影重构的样本点 x ^ i \hat{x}_i x^i之间的距离为
∑ i = 1 m ∥ ∑ j = 1 d ′ z i j w j − x i ∥ 2 2 = ∑ i = 1 m z i T z i − 2 ∑ i = 1 m z i T W T x i + c o n s t ∝ − t r ( W T ( ∑ i = 1 m x i x i T ) W ) . ( 10.14 ) \begin{aligned} \sum_{i=1}^{m}\left\|\sum_{j=1}^{d^{\prime}}z_{ij}\boldsymbol{w}_{j}-\boldsymbol{x}_{i}\right\|_{2}^{2}& =\sum_{i=1}^{m}\boldsymbol{z_{i}}^{\mathrm{T}}\boldsymbol{z_{i}}-2\sum_{i=1}^{m}\boldsymbol{z_{i}}^{\mathrm{T}}\mathbf{W}^{\mathrm{T}}\boldsymbol{x_{i}}+\mathrm{const} \\ &\propto-\mathrm{tr}\left(\mathbf{W}^\mathrm{T}\left(\sum_{i=1}^{m}\boldsymbol{x}_{i}\boldsymbol{x}_{i}^\mathrm{T}\right)\mathbf{W}\right).\quad(10.14) \end{aligned} i=1m j=1dzijwjxi 22=i=1mziTzi2i=1mziTWTxi+consttr(WT(i=1mxixiT)W).(10.14)
上述整个公式的目标就是使得变换维度后对每两个样本之间的距离保持最低损失,其目标函数变换成求解:
min ⁡ W − t r ( W T X X T W ) ( 10.15 ) s . t . W T W = I . \begin{aligned}\min_{\mathbf{W}}&-\mathrm{tr}\left(\mathbf{W}^{\mathrm{T}}\mathbf{X}\mathbf{X}^{\mathrm{T}}\mathbf{W}\right)&(10.15)\\\mathrm{s.t.}&\mathbf{W}^{\mathrm{T}}\mathbf{W}=\mathbf{I}.\end{aligned} Wmins.t.tr(WTXXTW)WTW=I.(10.15)
对于(10.15)公式是主成分分析的优化目标。

2.2 最大可分性

从最大性出发,能得到主成分的另一种解释。样本点xi在新空间中超平面上的投影 w T x i \mathbf{w}^{\mathrm{T}}x_{i} wTxi,若所有样本点的投影尽可能分开,则应该使投影后样本点地方差最大化。于是对于优化目标可写为
max ⁡ W t r ( W T X X T W ) s . t . W T W = I , ( 10.16 ) \begin{aligned}\max_{\mathbf{W}}&\mathrm{tr}\left(\mathbf{W}^{\mathrm{T}}\mathbf{X}\mathbf{X}^{\mathrm{T}}\mathbf{W}\right)\\\mathrm{s.t.}&\mathbf{W}^{\mathrm{T}}\mathbf{W}=\mathbf{I} ,\end{aligned}\quad(10.16) Wmaxs.t.tr(WTXXTW)WTW=I,(10.16)对上述式子使用拉格朗日乘子法(有约束的目标函数)可得 X X T W = λ W , ( 10.17 ) \mathbf{X}\mathbf{X}^\mathrm{T}\mathbf{W}=\lambda\mathbf{W} ,\quad(10.17) XXTW=λW,(10.17)

2.3 PCA维度分析

降维后低维空间d’通常由用户事先指定,或通过在d’值不同的低维空间中对k近邻分类器(或其他开销较小的学习器)进行交叉验证来选取较好的d’值。对PCA,还可重构的角度设置一个重构阈值,例如t = 95%,然后选取使用下式成立的最小d‘值:
∑ i = 1 d ′ λ i ∑ i = 1 d λ i ⩾ t . ( 10.18 ) \frac{\sum_{i=1}^{d'}\lambda_i}{\sum_{i=1}^d\lambda_i}\geqslant t .\quad(10.18) i=1dλii=1dλit.(10.18)

2.4 PCA实战

import numpy as np
import matplotlib.pyplot as plt

def pca(dataMat, topNfeat=999999):
    meanVals=np.mean(dataMat, axis=0) #计算均值
    meanRemoved=dataMat-meanVals #去除向量平均值 实现数据中心化
    covMat=np.cov(meanRemoved,rowvar=0) #计算矩阵的特征值特征向量
    eigVals,eigVects=np.linalg.eig(np.mat(covMat))
    eigValInd=np.argsort(eigVals)[::-1] #从大到小排序
    redEigVectors=eigVects[:,eigValInd[:-(topNfeat+1):-1]] #取最大的N个特征向量
    lowDDDataMat=meanRemoved*redEigVectors #将数据转换到新空间
    reconMat=(lowDDDataMat*redEigVectors.T)+meanVals #降维之后的数据重构原矩阵
    return lowDDDataMat,reconMat

dataMat = np.array([[1,2,3], [4,2,1], [3,2,1]]) #或者 load_iris().data[:,:]
lowDDDataMat, reconMat = pca(dataMat, topNfeat=2)
print(lowDDDataMat)
print(reconMat)
plt.scatter(lowDDDataMat[:,0].tolist(), lowDDDataMat[:,1].tolist(),c='r',marker='o')
plt.show()

2.5 PCA小结

  • PCA仅需保留W与样本的均值向量即可通过简单的向量减法和矩阵-向量乘法将新样本投影至低维空间中。显然,低维空间与原始高维空间必不相同,有d-d’个特征值的特征向量被舍弃了,这是降维导致的结果。
  • 舍弃这部分信息往往是必要的:一方面,舍弃这部分信息之后能使样本的采样密度增大,这正是降维的重要动机;另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到去噪的效果。

3. 总结

多维缩放(MDS)和主成分分析(PCA)都是重要的降维工具,它们各有特点但目标一致:即在降低数据复杂度的同时尽量保持原有信息。MDS侧重于保持样本间的相对距离不变,适用于需要考虑距离结构的应用场景;而PCA则通过寻找能够解释最大方差的方向来降维,更适用于特征提取或可视化。两者都能有效处理高维数据,但在实际应用时需根据具体情况选择合适的方法。此外,PCA还能通过设置重构阈值自动确定最优降维维度,从而在去噪与信息保留之间取得平衡。这两种技术是数据分析、机器学习领域不可或缺的基础工具。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值