14、Dimensionality Reduction(降维)
“降维”的只管理解就是在给定的数据样本空间时,找一个更低维度空间或者是数据样本空间中的一个超平面(直线的高维推广)对所有的样本进行恰当的表达。
14.3 Principal Component Analysis (主成分分析)
主成分分析(Principal Component Analysis,简称PCA)是最常用的一种降维方法。具体的分析推到建议看西瓜书。
PCA算法伪代码如下:
降维后低维空间的维数
d
’
d^{’}
d’通常是由用户事先指定,或通过在
d
’
d^{’}
d’不同的低维空间中对
k
k
k近邻分类器(或其他开销较小的学习器)进行交叉验证来选取较好的
d
’
d^{’}
d’值。对PCA,还可以从重构的角度设置一个重构阈值,例如
t
=
95
%
t=95\%
t=95%,然后选取使下式成立的最小
d
’
d^{’}
d’值:
∑
i
=
1
d
′
λ
i
∑
i
=
1
d
λ
i
\frac{\sum_{i=1}^{d^{'}}\lambda_i}{\sum_{i=1}^d\lambda_i}
∑i=1dλi∑i=1d′λi其中
λ
\lambda
λ为
X
X
T
XX^T
XXT的特征值(奇异值)
原先样本点 x i x_i xi在低维坐标系中的投影 z i = ( z i 1 , z i 2 , ⋯ , z i d ′ ) T z_i=(z_{i1},z_{i2},\cdots,z_{id^{'}})^T zi=(zi1,zi2,⋯,zid′)T,其中 z i j = w j T x i z_{ij}=w_j^Tx_i zij=wjTxi是 x i x_i xi在低维坐标系下第 j j j维的坐标。若基于 z i z_i zi来重构 x i ^ \hat{x_i} xi^,则会得到 x i ^ = ∑ j = 1 d ′ z i j w j \hat{x_i}=\sum_{j=1}^{d^{'}}z_{ij}w_j xi^=∑j=1d′zijwj。即 X ^ = W Z = W W T X \hat{X}=WZ=WW^TX X^=WZ=WWTX
注:在进行PCA前,别忘了对数据样本进行特征缩放。对称矩阵的奇异值分解和特征值分解是一样的。
14.7 Advice for applying PCA(应用PCA的建议)
运用PCA算法降低特征的维度,在某些情况下可以加快学习算法的执行效率。对于有监督学习,数据样本 ( x , y ) (x,y) (x,y),我们可以把训练集 ( x t r a i n , y t r a i n ) (x_train,y_train) (xtrain,ytrain)的 x t r a i n x_train xtrain运用PCA降低特征的维度,这样就可以加速训练。注:PCA只用在训练集上,但是可以直接把PCA分解后的W直接应用到验证集和测试集上。
注:1,不要使用PCA来防止过拟合,最好还是用正则项。2,不要随便使用PCA,只有在学习算法运行太慢或者需要的内存太大时,才考虑使用PCA降低特征维度来加速和减少内存使用。