发现其实还有很多知识点还未整理和掌握,包括降维、模型评估、特征选择、稀疏学习、聚类算法等。在实践中穿插着整理和学习吧。先从降维方法开始。
欲获得低维子空间,最简单的方法就是对原始高维空间进行线性变换。
给定样本 X∈Rn×m X ∈ R n × m ,即有 m m 个数据样本,每个样本有 n n 个特征( n n 维),记为 xi=(x(1)i,x(2)i,...,x(n)i),i=1,2,...,m x i = ( x i ( 1 ) , x i ( 2 ) , . . . , x i ( n ) ) , i = 1 , 2 , . . . , m ,线性变换 Z=WTX Z = W T X 之后得到 k k 维空间中的样本 Z∈Rk×m Z ∈ R k × m , WT∈Rk×n W T ∈ R k × n 是变换矩阵,也被称为基,可以看做有 k k 个 n n 维的基向量,即 W=(w1,w2,...,wk)∈Rk×n W = ( w 1 , w 2 , . . . , w k ) ∈ R k × n
其中 wl w l ( l l 取 1,2,...,k 1 , 2 , . . . , k )是基向量,可表示为:
主成分分析(Principal Component Analysis,简称PCA),是最常用的一种降维方法。 其主要思路可以从两个方向来理解。
第一、最近重构性,即样本点到投影的超平面的距离都越小越好;
第二、最大可分性,即样本点在这个超平面上的投影尽可能分开。
因此优化思路即为最小化投影距离或者最大化投影方差。
假设数据样本都已进行了中心化,即 ∑i=1mxi=0 ∑ i = 1 m x i = 0 ;再假定投影变换后得到的新坐标系 {w1,w2,...,wk} { w 1 , w 2 , . . . , w k } ,假设其中任选两个基向量 wl w l 和 wm w m 都是正交的( l≠m l ≠ m ),也就是 wTlwm=0 w l T w m = 0 ,则 W W 是正交基, wl w l 为标准正交基向量( l l 取 1,2,...,k 1 , 2 , . . . , k ), ||wl||2=wTlwl=1 | | w l | | 2 = w l T w l = 1 。
x^i=∑j=1kz(j)iwj=Wzi x ^ i = ∑ j = 1 k z i ( j ) w j = W z i , zi=WTxi z i = W T x i 。
现在考虑整个训练数据集,原样本点 xi x i 与基于投影重构的样本点 x^i x ^ i 之间的距离为:
∑i=1m||x^i−xi||2=∑i=1m||∑j=1kz(j)iwj−xi||2=∑i=1m[(Wzi)T(Wzi)−2(Wzi)Txi+x2i]=∑i=1m(zTiWTWzi−2zTiWTxi+x2i)=∑i=1m(zTizi−2zTizi+x2i)=∑i=1m(−zTizi+x2i)=−tr(WT(∑i=1mx2i)W)+∑i=1mx2i ∑ i = 1 m | | x ^ i − x i | | 2 = ∑ i = 1 m | | ∑ j = 1 k z i ( j ) w j − x i | | 2 = ∑ i = 1 m [ ( W z i ) T ( W z i ) − 2 ( W z i ) T x i + x i 2 ] = ∑ i = 1 m ( z i T W T W z i − 2 z i T W T x i + x i 2 ) = ∑ i = 1 m ( z i T z i − 2 z i T z i + x i 2 ) = ∑ i = 1 m ( − z i T z i + x i 2 ) = − t r ( W T ( ∑ i = 1 m x i 2 ) W ) + ∑ i = 1 m x i 2
tr指的是矩阵的迹,即主对角线上各个元素总和,因为 ∑i=1mx2i=XXT ∑ i = 1 m x i 2 = X X T ,所以 −tr(WT(∑i=1mx2i)W)=−tr(WTXXTW) − t r ( W T ( ∑ i = 1 m x i 2 ) W ) = − t r ( W T X X T W )
我们为了让这个距离最小,应调整基w使得−tr(wTXXTw)最小 我 们 为 了 让 这 个 距 离 最 小 , 应 调 整 基 w 使 得 − t r ( w T X X T w ) 最 小
优化问题可以写为: 优 化 问 题 可 以 写 为 :
minw−tr(WTXXTW) min w − t r ( W T X X T W )
s.t. WTW=I s . t . W T W = I I为单位矩阵 I 为 单 位 矩 阵
换一个角度来考虑,我们也可以通过使所有样本点的投影尽可能分开来找到最好的 W W 。若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化。
XXT∑i=1mxixTi X X T ∑ i = 1 m x i x i T 是个协方差矩阵,一个对称的矩阵,而且对角线是各个维度上的方差。因此投影后样本点的方差为 ∑i=1mWTxixTiW=tr(WTXXTW) ∑ i = 1 m W T x i x i T W = t r ( W T X X T W )
因此优化问题可以写为: 因 此 优 化 问 题 可 以 写 为 :
maxw tr(WTXXTW) max w t r ( W T X X T W )
s.t. WTW=I s . t . W T W = I
和上面最近重构性思路的优化问题等价。
使用拉格朗日乘子法可得 XXTwi=λiwi X X T w i = λ i w i ,对协方差矩阵 XXT X X T 进行特征值分解,将求得的特征值排序: λ1≥λ2≥...≥λn λ 1 ≥ λ 2 ≥ . . . ≥ λ n ,取前 k k 个特征值对应的特征向量构成 W∗=(w1,w2,...,wk) W ∗ = ( w 1 , w 2 , . . . , w k ) ,这就是主成分分析的解。
输入:样本集 D={x1,x2,...,xm}; D = { x 1 , x 2 , . . . , x m } ; 低维空间维数 k k .
输出:降维后样本集 D′ D ′
过程:
①对所有样本进行中心化: xi−1m∑i=1mxi→xi x i − 1 m ∑ i = 1 m x i → x i ;
②计算样本的协方差矩阵 XXT X X T ;
③对协方差矩阵 XXT X X T 做特征值分解;
④取最大的 k k 个特征值所对应的特征向量构成 W=(w1,w2,...,wk) W = ( w 1 , w 2 , . . . , w k )
⑤对样本集 D D 中每个样本的投影 zi=WTxi z i = W T x i
⑥输出样本 D′=(z1,z2,...,zm) D ′ = ( z 1 , z 2 , . . . , z m )
样本的协方差矩阵 XXT X X T :
cov(x(k),x(t))=∑i=1m(x(k)i−x¯(k))(x(t)i−x¯(t))m−1 c o v ( x ( k ) , x ( t ) ) = ∑ i = 1 m ( x i ( k ) − x ¯ ( k ) ) ( x i ( t ) − x ¯ ( t ) ) m − 1 , k,t k , t 取 1,2,..,n 1 , 2 , . . , n
若是样本是经过中心化过后的样本,则 x¯(k)=0 x ¯ ( k ) = 0 , k k 取 1,2,..,n 1 , 2 , . . , n
式子变为: cov(x(k),x(t))=∑i=1mx(k)ix(t)im−1 c o v ( x ( k ) , x ( t ) ) = ∑ i = 1 m x i ( k ) x i ( t ) m − 1
协方差矩阵(样本为 n n 维)写作:
低维空间维数 k k :
一般低维空间维数 k k 由用户事先指定,也可以通过在 k k 值不同的低维空间对开销较小的学习器进行交叉验证来选取较好的 k k 值。从重构的角度还可以设置一个重构阈值,例如 t=95% t = 95 % ,然后选取使下式成立的最小 k k 值: ∑i=1kλi∑i=1nλi≥t ∑ i = 1 k λ i ∑ i = 1 n λ i ≥ t
PCA算法的主要优点有:
1.仅仅需要以方差衡量信息量,不受数据集以外的因素影响。
2.各主成分之间正交,可消除原始数据成分间的相互影响的因素。
3.计算方法简单,主要运算是特征值分解,易于实现。
PCA算法的主要缺点有:
1.主成分各个特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强。
2.方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响。
PCA算法可用于高维数据可视化。因为一个高维数据集是无法用图形表示的,所以我们可以通过PCA降维方法把它降成二维或三维数据来可视化。
参考:
1. http://www.cnblogs.com/pinard/p/6239403.html
2.《机器学习》