机器学习算法之数据降维

来源:互联网 发布:淘宝买到假酒怎么办 编辑:程序博客网 时间:2024/06/06 11:41

原文站点:https://senitco.github.io/2017/05/10/data-dimensionality-reduction/

  数据降维是通过某种数学变换将原始高维属性空间,转变为一个低维子空间,对数据进行降维,可以有效地去除样本中冗余的属性,减少数据容量,缓解维数灾难,加快学习速度。数据降维的常用方法有主成分分析(PCA)、多维缩放(MDS)、线性判别分析(LDA)、等度量映射(Isomap)、局部线性嵌入(LLE)、t分布随机邻域嵌入(t-SNE)、Laplacian Eigenmaps等。


主成分分析(PCA)

  主成分分析是一种线性降维方法,将高维空间映射到低维空间,并使得所有样本在低维空间的投影点尽可能分开,也就是低维子空间对样本具有最大可分性,为了实现这种最大可分性,应该使投影后样本的方差最大化。

pca.png

  对于一个维数为D的高维空间,样本点xi=(x1,x2,,xD)通过与矩阵W相乘映射到低维空间(维数为dd<D)中的某个点zi=WTxi=(z1,z2,,zd),矩阵W的大小是Dd。令数据样本集的大小为N,PCA的目标是要让低维子空间中 zi 尽可能地分开,因此投影后样本的方差要尽可能的大。假定数据样本进行了中心化,数据每一维的均值为0,即 Σixi=0,乘上矩阵WT得到的降维后的数据每一维均值也为0,考虑高维空间中原始样本数据集的协方差矩阵C=1NXXT,协方差矩阵中对角线上的值为某一维的方差,非对角线上的值为两维之间的协方差。降维后低维子空间中相应的协方差矩阵为B=1NZZT,如果希望降维后的点具有最大的可分性,那么协方差矩阵B对角线上的值也就是每一维的方差应该尽可能的大,同时为了让不同的属性能够更多地表示原始信息,而不包含冗余的信息,可以使不同属性之间正交,这种情况下矩阵B非对角线上的值即不同维之间的协方差为0。因此降维后的每一维既有足够的区分性,又能代表不同的信息。对于矩阵B,可进一步推导出

B=1NZZT=1NWTX(WTX)T=WT(1NXXT)W=WTCW

这个式子表明,线性变换矩阵W实现数据降维的过程是将高维空间中的协方差矩阵C对角化,因此可通过求协方差矩阵C的特征值以及对应的特征向量来确定投影变换矩阵W。PCA的算法流程如下所述:

  • 输入:样本集x1,x2,,xN,低维空间的维数d
  • 过程
  • 对所有数据样本进行中心化xi=xi1NΣixi
  • 计算样本的协方差矩阵C=1NXXT
  • 对协方差矩阵C做特征值分解:
  • 取最大的d个特征值对应的特征向量w1,w2,,wd
  • 输出:投影矩阵W=(w1,w2,,wd)wiD维列向量。

多维缩放(MDS)

  多维缩放要求原始高维空间中数据样本之间的距离在低维空间中保持不变,即在降维的过程中保留原始数据的差异性。

MDS.jpg

  假定N个样本在D维原始空间的距离矩阵为ARN×N,其第i行第j列的元素aij为样本xixj的距离。多维缩放的目标是获得数据样本在d维空间的表示ZRd×N,dD,且任意两个样本在低维空间的欧氏距离等于原始空间中的距离,即zizj=aij。令B=ZTZRN×N,其中B为降维后样本的內积矩阵,bij=zTizj,根据样本在原始空间和低维空间的距离相等有

a2ij=zizj2=zi2+zj22zTizj=bii+bjj2bij

  令降维后的数据样本Z中心化,数据每一维的均值为0,即Σizi=0。显然,內积矩阵B的行与列之和均为0,即ΣNi=1bij=ΣNj=1bij=0,则有以下式子成立:
ΣNi=1a2ij=tr(B)+Nbjj

ΣNj=1a2ij=tr(B)+Nbii

ΣNi=1Σj=1a2ij=2Ntr(B)

其中 tr(B)=ΣNi=1zi2 为矩阵B的迹,令
a2i=1NΣNj=1a2ij

a2j=1NΣNi=1a2ij

a2=1N2ΣNi=1ΣNj=1a2ij

由以上各式可得
bij=12(a2ija2ia2j+a2)

由此即可通过降维前后保持不变的距离矩阵A求取內积矩阵B。对矩阵B做特征值分解,B=VΛVT,其中Λ=diag(λ1,λ2,,λd)为特征值构成的对角矩阵,λ1λ2lλdV为特征向量矩阵,则Z可表达为
Z=Λ1/2VTRd×N

为了实现有效降维,往往仅需降维后的距离与原始空间中距离尽可能接近,而不必严格相等,因此可取d(d<<D)个最大特征值构成对角矩阵。MDS的算法流程如下所述:

  • 输入:距离矩阵ARN×N,其元素aij为样本xixj的距离,原始空间维数为D,低维空间维数为d
  • 过程
  • 计算內积矩阵B
  • 对矩阵B做特征值分解;
  • d个最大的特征值构成的对角矩阵Λ和对应的特征向量矩阵V
  • 输出:矩阵Z=Λ1/2VTRd×N,每列为一个样本的低维坐标。

线性判别分析(LDA)

  线性判别分析是一种典型的线性学习方法,在二分类问题上最早由Fisher提出。LDA的基本思想是给定数据样本集,设法将样本投影到一个低维空间,使得同类样本的投影点尽可能接近,不同类样本的投影点尽可能远离。LDA和PCA的降维思路相似,都是通过矩阵乘法进行线性降维,但两者原理有所不同,PCA是希望所有样本在每一维上尽可能分开。

LDA.jpg

  给定数据样本集D=(xi,yi),i=1,2,,N,样本集的大小为N,样本的类别数为K,令XiμiΣi分别表示第i(i=1,2,,K)类样本的集合、均值向量和协方差矩阵,样本在低维空间的表示为zi=WTxi,欲使同类样本的投影点尽可能近,可以让同类样本投影点的协方差尽可能小;欲使不同类样本的投影点尽可能远离,则可以让不同类中心之间的距离尽可能大,定义类内散度矩阵

Sw=ΣKk=1Sk=ΣKk=1ΣXXk(Xμk)(Xμk)T

K个类的原始数据协方差矩阵相加。定义类间散度矩阵
Sb=ΣKk=1Nk(μku)(μku)T

其中μ=1/NΣKk=1Nkμk(Nk为第k类的样本个数),同时考虑两者,则LDA算法的最大化目标
maxWJ(W)=tr(WTSbW)/tr(WTSwW)

其中,WRD×(N1)tr()表示矩阵的迹,J(W)W求偏导
J(W)/W=(WTSwW)2SbW(WTSbW)2SwW=0

SbWJ(W)SwW=0

上式表明W的闭式解是S1wSbK1最大广义个特征值所对应的特征向量组成的矩阵。若将W视为一个投影矩阵,则多分类LDA将样本投影到K1维空间,K1通常远小于数据的原有属性数。通过投影可有效减少样本的维数,而且投影过程中使用了类别信息,因此LDA也常视为一种经典的监督降维技术。LDA的算法流程如下:

  • 输入:数据样本集D=(xi,yi),i=1,2,,N,数据可以分为K个类;
  • 过程
    计算类内散度矩阵Sw和类间散度矩阵Sb
    对矩阵Sw做奇异值分解,Sw=UΣVT,S1w=VΣ1UTΣ是一个实对称矩阵;
    对矩阵S1wSb进行特征值分解;
    取最大的d个特征值对应的特征向量;
  • 输出W=(w1,w2,,wd)

等度量映射(Isomap)

  等度量映射是一种基于流形学习的数据降维方法,流形是在局部与欧式空间同胚的空间,也就是说在局部具有欧式空间的性质,可以利用欧氏距离进行距离计算。低维流形嵌入到高维空间之后,直接在高维空间中计算直线距离具有误导性,因为高维空间中直线距离在低维嵌入流形上是不可达的。利用流形在局部上与欧式空间同胚的性质,对每个点基于欧式距离找出其近邻点,然后建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接。于是计算两点之间测地线距离的问题,就转变为计算近邻连接图上两点之间的最短路径问题,基于近邻逼近能获得低维流形上测地线很好的近似。

Isomap.jpg

  多维缩放(MDS)对数据降维,需要已知高维空间中样本之间的距离关系,等度量映射(Isomap)结合流形学习的思想和多维缩放的方法来进行降维,在高维空间的局部空间,计算邻近点的欧式距离,并构建近邻连接图。然后利用Dijkstra算法或Floyd算法在近邻连接图上计算两点间的最短路径,得到任意两点间的距离之后,即可作为MDS算法的输入距离矩阵,通过MDS算法输出样本在低维空间的投影。Isomap算法描述如下:

  • 输入:数据样本集x1,x2,,xN,近邻参数k,低维空间维数d
  • 过程
  • 利用k近邻算法计算xik个近邻样本点的欧式距离,与其他点的距离设为无穷大;
  • 根据最短路径算法计算任意两个样本点之间的距离,得到距离矩阵A
  • 将距离矩阵A作为MDS算法的输入,得到输出;
  • 输出:样本集在低维空间的投影Z=(z1,z2,,zN)zi为低维空间的向量。

局部线性嵌入(LLE)

  局部线性嵌入是一种基于流形学习的算法,能够使降维后的数据较好地保持原有的流形结构。与等度量映射(Isomap)试图保持近邻样本之间的距离不同,LLE试图保持降维前后邻域内样本之间的线性关系。

LLE.jpg

  在原始空间中,假定样本点xi的坐标利用其邻域样本的坐标通过线性组合而重构出来,即xi=ΣjXiwijxj,其中Xixi邻域内样本点的下标集合。通过最小化重构误差来求解对每个样本点xi进行线性重构的权值系数wi,即

minw1,w2,,wmΣmi=1xiΣjXiwijxj,s.t.Σ(jXi)wij=1

其中xixj均为已知样本点,定义局部协方差矩阵Cjk=(xixj)T(xixk)wij有闭式解
wij=(ΣkXiC1jk)/(Σl,sXiC1ls)

LLE在低维空间中保持权重wi不变,因此xi对应在低维空间的坐标zi可通过最优化下式求解
minz1,z2,,zmΣmi=1ziΣjXiwijzj

Z=(z1,z2,,zm)Rd×m,(W)ij=wij,
M=(IW)T(IW)

则最优化目标可重写为
minZtr(ZMZT),s.t.ZZT=I

利用拉格朗日乘子法可以得到MZ=λZ的形式,因此可对矩阵M进行特征值分解,取d个最小的非零特征值对应的特征向量组成的矩阵即为样本在低维空间的投影Z。算法描述如下:

  • 输入:数据样本集x1,x2,,xm,近邻参数k,低维空间维数d
  • 过程
  • 利用k近邻算法确定每个样本点xi的邻域样本的下标集合Xi
  • 最小化重构误差计算样本xi的权值系数wi,并得到矩阵M
  • 对矩阵M进行特征值分解;
  • d个最小的非零特征值对应的特征向量;
  • 输出:样本集在低维空间的投影Z=(z1,z2,,zm)

t分布随机邻域嵌入(t-SNE)

  t-SNE是一种非线性降维方法,非常适用于高维数据降到二维或者三维空间,进行可视化。其基本原理是在高维空间中构建一个样本之间的概率分布,使得相似的样本有更高的概率被选择,而不相似的样本被选择的概率较低;然后在低维空间中构建这些样本点的概率分布,使得这两个概率分布尽可能的相似,并利用KL散度(Kullback–Leibler divergence)来度量两个分布之间的相似性。
  给定一个高维空间的数据样本集x1,x2,,xN,xiRDN为样本集的大小。假设高维空间中的任意两个样本点,xj的取值服从以xi为中心、σi为方差的高斯分布,同样xi也服从以xj为中心、σj为方差的高斯分布,这样样本点xjxi相似的条件概率为

pj|i=exp(xixj2/2σ2)Σkiexp(|xixk|2/σ2)

xjxi高斯分布下的概率占全部样本在xi高斯分布下概率的多少。定义两个点相似度在全部样本两两相似度的联合概率
pij=(pj|i+pi|j)/2N

t-SNE的目标是学习一个高维到低维的映射y1,y2,,yN,yiRd,在低维空间中,两个点相似度也利用联合概率来表示,假设低维空间中两点间的欧氏距离服从学生分布,两个点yiyj的相似度可定义为
qij=(1+yiyj2)1Σki(1+|ykyl|2)1

如果在高维空间中样本点之间的相似度pij和在低维空间中样本点之间的相似度qij相同,就说明低维空间的点能正确反映高维空间中的相对位置关系。t-SNE的目标就是要找到一组降维表示能够最小化pijqij的差值,因此采用KL散度来构建目标函数
C=ΣiKL(Pi||Qi)=ΣiΣjpj|ilogpj|iqj|i

KL散度能够衡量两个概率分布的差别,通过梯度下降法来求输入数据对应的低维表达yi。即用目标函数对yi求导,梯度值为
dCdyi=4Σj(pijqij)(yiyj)(1+yiyj2)1

然后更新迭代yi,算法流程大致如下:

  • 输入:数据样本集x1,x2,,xN,xiRD,代价函数的参数Perp,迭代次数T,学习率ηmomentum项系数α(t)
  • 过程
  • 计算给定Perp下的条件概率pj|i
  • 分别计算高维空间样本点的相似度pij和低维空间样本点的相似度qij
  • 对目标函数求导,计算梯度值;
  • 迭代更新yi,直至收敛或达到最大迭代次数;
  • 输出:低维数据表示y1,y2,,yN,yiRd

拉普拉斯特征映射(Laplacian Eigenmaps)

  拉普拉斯特征映射和局部线性嵌入(LLE)类似,也是一种基于流形学习的数据降维方法,都是从图的角度去构建数据之间的关系。其基本思想是在高维空间中相互有关系或者说相连的样本点,在降维后的低维空间中尽可能的靠近,以反映数据内在的流形结构。
  Laplacian Eigenmaps通过构建相似关系图,图中每个顶点代表一个样本点,每一条边权重代表样本之间的相似程度,距离越近的点越相似,而且权值越大,以此来重构数据流形的局部结构特征。给定一个高维空间的数据样本集X=x1,x2,,xN,xiRDN为样本集的大小,样本集在低维空间的映射为Y=y1,y2,,yN,yiRd,降维后的空间维数为d。如果两个样本点xixj很相似,那么在降维后的空间中应该尽可能接近,因此要优化的目标函数如下:

minΣi,jWijyiyj2

式中,W为一权重矩阵,Wij为度量样本点xixj相似性的权值,可通过一个热核函数来定义:
Wij=exixj2/i

根据距离远近确定权值大小,当然也可以简单地将直接相连样本点的权值设为1,其他为0。定义一个对角矩阵D,对角线上元素Dii为权重矩阵Wi行元素之和,即
Dii=ΣjWij

L=DWL为拉普拉斯矩阵,则
Σi,jWijyiyj2=Σiyi2Dii+Σjyj2Djj2Σi,jyTiyjWij=2YTLY

因此最优化目标可重写为
mintr(YTLY),s.t.YTDY=I

使用拉格朗日乘子法,可得
LY=λDY

基于上式进行特征值分解,取d个最小的非零特征值所对应的特征向量组成的矩阵即为降维后的结果输出。算法流程如下:

  • 输入:高维数据样本集X=x1,x2,,xN,xiRD,降维后的空间维数为d
  • 过程
  • 利用某种方法将所有样本点构建成一个图,例如K近邻算法,将每个点和最近的K个点相连;
  • 确定点与点之间连接边的权重Wij,例如热核函数;
  • 进行特征映射,计算拉普拉斯矩阵最小的d个非零特征值对应的特征向量作为输出矩阵;
  • 输出:样本集在低维空间的映射为Y=y1,y2,,yN,yiRd
阅读全文
0 0
原创粉丝点击