降维
在机器学习或数据处理中,经常会碰到一些高维数据,而高维数据情形下经常出现样本稀疏、计算困难等问题,称之为“维度灾难”。
对于一个高维数据数 D = { X 1 , X 2 , . . . , X N } D = \{X_1, X_2, ..., X_N\} D={
X1,X2,...,XN},其中每条数据的对应维度为 n n n,即 X i ∈ R n X_i\in R^{n} Xi∈Rn。降维的目的是找到一个映射函数 f f f,使得 D D D中的任意一条数据 X X X,都能被映射到一个低维空间中:
f ( X ) → R m f(X) \to R^m f(X)→Rm
其中, m m m是映射后的低维空间的维度,从而每一条数据的维度都从 n n n维降到了 m m m维。
映射函数 f f f的形式有无数种,可简单分为线性变换和非线性变换。线性变换在高维空间中,寻找一个超平面从而将高维空间中的数据点映射到超平面上。而线性变换的形式较为简单,不一定能够完全表现出数据的特征,因此也有许多基于非线性变换的降维方法。
在确定映射函数的形式后,一般需要根据不同的任务或某些准则来确定映射函数的最优参数:
min θ L ( f ( D ∣ θ ) , D ) \min_{\theta} L(f(D|\theta), D) θminL(f(D∣θ),D)
其中, L L L是定义的准则函数, θ \theta θ是映射函数 f f f的参数, D D D是原始的高维数据集合, f ( D ∣ θ ) f(D|\theta) f(D∣θ)是映射后的低维数据集合。
线性变换降维
主成分分析(PCA)
主成分分析 (PCA)是一种较为常用的线性变换、无监督的降维方法。线性变换是在高维空间中,寻找一个超平面从而将高维空间中的数据点映射到超平面上。那么,一个较好的超平面,应该具有以下的性质:
-
最近可重构性: 样本点到这个超平面的距离都足够近。
即下图中所有红线(即投影造成的损失)加起来最小。西瓜书对最近可重构性的解释较为简略,基于西瓜书的个人对最近可重构性的理解是其等价于基于投影后的低维数据集,重构到原来的高维空间中,应使重构后的高维的点与原始的高维的点的距离尽可能小(欢迎探讨)。
-
最大可分性: 样本点在这个超平面上的投影能尽可能地分开。
一个比较直观的感受是,投影应尽可能保留更多原始数据的特征和信息,因此应尽可能地分开;如果投影存在重合,那么则无法区分其对应的原始数据。而数据之间的离散程度可以用样本方差表示,所以,如下图的二维到一维的投影所示,最大可分性即需最大化投影点的方差。
从最近可重构性的推导
原始的高维数据 X = { X 1 , X 2 , . . . , X N } X = \{X_1, X_2, ..., X_N\} X={
X1,X2,...,XN},其中每一条样本是一个列向量,数据矩阵 X ∈ R n × N X\in R^{n×N} X∈Rn×N。现在对这些点进行压缩,使其投影到k维空间中,其中k<n,使其损失的信息最小。设矩阵 W = { w 1 , w 2 , . . . , w k } W = \{w_1, w_2, ..., w_k\} W={
w1,w2,...,wk}是一个 n × k n×k n×k的正交阵, w i w_i wi是标准正交基向量,即满足
W T W = I W^TW = I WTW=I
根据线性变换,原始数据矩阵 X X X经过线性变换 W W W的点的坐标:
Z = f ( X ) = W T X Z = f(X) = W^TX Z=f(X)=WTX
矩阵相乘实际上一种线性变换,这里的 W W W是一个正交阵,保证线性变换后的子空间的基是一组标准正交基,即投影后的数据之间各个维度的协方差为0,从而避免冗余信息,保留更多的数据特征。
如果对原始样本进行中心化处理,均值化为0,即每个样本都减去所有样本的均值:
X ′ = X − μ X = X − 1 N ∑ i = 1 N X i X' = X - \mu_X = X - \frac{1}{N}\sum_{i=1}^{N}X_i X′=X−μX=X−N1i=1∑N