机器学习算法之数据降维

原文站点: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 相乘映射到低维空间(维数为 d d<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) wi D 维列向量。

多维缩放(MDS)

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


MDS.jpg

  假定 N 个样本在 D 维原始空间的距离矩阵为 ARN×N ,其第 i 行第 j 列的元素 aij 为样本 xi xj 的距离。多维缩放的目标是获得数据样本在 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=1b
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值