PCA
当处理高维数据时,需要面临降维,进行特征抽取,PCA是特征抽取的主要方法之一,特征抽取即利用映射的方法,将高维度的样本映射至低维度。PCA适用于非监督的不带标签的样本降维,特别是小样本问题。广义认为,这类样本属性之间的相关性很大,通过映射,将高维样本向量映射成属性不相关的样本向量。实际上,大的特征值表征这个映射向量——或者映射方向,能够使样本在映射后,具有最大的方差。样本在这个方向最发散。通常情况下,有用信息具有较大的方差,噪声有较小的方差。
PCA推导
设有数据集
X=[x1,x2,...,xN]∈Rd×N
样本均值
μ=1N∑Ni=1xi
,
xi←xi−μ
,设中心化后的样本集为
X=[x1,x2,...,xN]∈Rd×N
PCA的目的是为了寻找一个投影方向,使数据集投影到新方向上时尽量散开,即有最大方差。
设投影方向为
v
(是
(设
||v||=1
,
vTxi
是一个数值,表示向量
xi
在
v
方向上的投影长度)
则样本在方向
新坐标的方差:
σ2
=
1N∑Ni=1(vTxi−0)2
=
1N∑Ni=1(vTxi)(vTxi)
=
1N∑Ni=1(vTxi)(vTxi)T
=
1N∑Ni=1vTxixTiv
=
1NvT∑Ni=1xixTiv
(一个数)
令
C
=
则
σ2
=
1NvTCv
原问题变为
max
σ2
=
vTCv
s.t
||v||2=vTv=1
用拉格朗日乘数法:
L(v,λ)
=
vTCv
-
λ(vTv−1)
∂L∂v
=
2Cv−2λv
=0
⇒
Cv=λv
∂L∂v
=
1−vTv
=0
⇒
vTv=1
则
σ2
=
vTCv
=
vTλv
=
λvTv
=
λ
∴
所求方向
v
即为样本协方差矩阵
若要将样本降到
k
维,则选出样本协方差矩阵
PCA步骤
1.特征中心化,即每个样本点减去均值
2.计算样本协方差矩阵
3.计算协方差矩阵的特征值和特征向量
4.选取若干个最大的特征值对应的特征向量作为投影矩阵,将原高维样本映射到低维空间
KPCA
PCA针对线性的情况效果比较好,但对于非线性的情况效果并不理想,为了更好的处理非线性数据,引入非线性映射函数 ϕ ,将原空间中的数据映射到高维空间,在这个高维空间中线性不可分的样本变得线性可分了,接着可再运用PCA思想了。
KPCA推导
设有数据集
X=[x1,x2,...,xN]∈Rd×N
,设非线性映射函数
ϕ
,
ϕ
:
Rd
→
FD
,
D≫d
将样本空间映射到高维特征空间得
Φ(X)
=
[ϕ(x1),ϕ(x2),...,ϕ(xN)]
∈RD×N
假设
Φ(X)
的均值为0,即
1N∑Ni=1ϕ(xi)=0
设投影方向为
V
(是一个
则问题转化为
max
VTΦ(X)Φ(X)TV
s.t
||V||2=VTV=1
我们现在的问题是要求
Φ(X)Φ(X)T
(
D×D
)的最大特征值对应的单位特征向量,但
Φ(X)
是未知的,要怎样解决现在的问题呢?
注意到核矩阵
K=⎡⎣⎢⎢⎢ϕ(x1)Tϕ(x1)⋮ϕ(xN)Tϕ(x1)⋯⋱⋯ϕ(x1)Tϕ(xN)⋮ϕ(xN)Tϕ(xN)⎤⎦⎥⎥⎥
=
⎡⎣⎢⎢⎢⎢⎢ϕ(x1)Tϕ(x2)T⋮ϕ(xN)T⎤⎦⎥⎥⎥⎥⎥
[ϕ(x1)ϕ(x2)⋯ϕ(xN)]
=
Φ(X)TΦ(X)
(
N×N
)
设
Kξ
=
λξ
,即
Φ(X)TΦ(X)ξ
=
λξ
(设
ξ
为单位特征向量)
两边同时左乘
Φ(X)
得
Φ(X)Φ(X)TΦ(X)ξ
=
λΦ(X)ξ
即
(Φ(X)Φ(X)T)Φ(X)ξ
=
λΦ(X)ξ
则所要求的投影方向为
V
=
由于
Φ(X)
是未知的,故投影方向是求不出的。
Φ(X)
的投影坐标为
VTΦ(X)
=
ξTΦ(X)TΦ(X)λ√
=
ξTKλ√
=
ξTKTλ√
=
(Kξ)Tλ√
=
λξTλ√
=
λ√ξT
. (即
Φ(X)
中每个向量的投影坐标的第一个分量即第一主成分)
若要将样本降到
k
维,则选出样本协方差矩阵
思考
上面假设
Φ(X)
的均值为0,若
Φ(X)
的均值不为0,则首先需要对
Φ(X)
进行中心化处理,令中心化处理后的样本为
Ψ(X)
=
[ψ(x1),ψ(x2),...,ψ(xN)]
,其中
ψ(xi)
=
ϕ(xi)
-
1N∑Nk=1ϕ(xk)
问题转化为
max
V~TΨ(X)Ψ(X)TV~
s.t
||V~||2=V~TV~=1
和上面一样,这个问题的解是通过求
K~=Ψ(X)TΨ(X)
的特征值特征向量得到的。
下面来求
K~ij
:
K~ij
=
ψ(xi)Tψ(xj)
=
(ϕ(xi)−1N∑Nk=1ϕ(xk))T
(
ϕ(xj)
-
1N∑Nl=1ϕ(xl)
)
=
ϕ(xi)Tϕ(xj)
-
1N∑Nk=1ϕ(xk)Tϕ(xj)
-
1N∑Nl=1ϕ(xi)Tϕ(xl)
+
1N2∑Nk=1∑Nl=1ϕ(xk)Tϕ(xl)
=
Kij
-
1N∑Ni=1Kij
-
1N∑Nj=1Kij
+
1N2∑Ni=1∑Nj=1Kij
设
I
是每个元素都为1的
即
IK
的第
j
列每个元素为
即
IKI
的每个元素为
K
的所有元素之和,即
∴
K~=K−1NIK−1NKI+1N2IKI
=
(E−1NI)K(E−1NI)
其中
E
为
KPCA步骤
1.利用核方程
K(x,y)
计算矩阵
K
2.求矩阵
3.选取几个最大特征值对应的特征向量带入公式求解投影坐标
常见的核函数
线性核:
k(x,y)=xTy+c
多项式核:
k(x,y)=(axTy+c)d
高斯核:
k(x,y)=exp(−||x−y||22σ2)