1、为什么要提出核化线性降维(KPCA)?
答:PCA只能解决数据分布是线性的情况(数据大致分布在一个超平面附近),对于数据分布情况是非线性的有心无力
可以看到,假如数据分布是图(a)的样子,利用PCA得到的图(c)就是杂乱无章的,与他本真的结构差别比较大。
为了解决这个问题,提出了KPCA
2、KPCA的思想是什么?
答:你不是说数据分布不再是线性的了吗,那我就想到了,当初支持向量机也是遇到过这个问题,他是怎么解决的呢?他把数据映射到高维空间去,在高维空间这些数据就是线性的了。好的,那我也有想法,PCA 不是只能处理线性分布的数据吗,那我把这个非线性的数据映射到高维去不就变成线性分布的了吗。我再用 PCA 来处理映射后的高维数据,
好的,到这儿 KPCA 的思想就全部浮现了,把原始的非线性的数据映射到高维空间变成线性的,然后用 PCA 来处理映射后的高维数据。
在 PCA 里面有 x x T w = λ w ⇒ ( ∑ i = 1 m x i x i T ) w = λ w \mathbf{x}{{\mathbf{x}}^{\text{T}}}\mathbf{w}=\lambda \mathbf{w}\Rightarrow \left( \sum\limits_{i=1}^{m}{{{x}_{i}}}x_{i}^{\text{T}} \right)\mathbf{w}=\lambda \mathbf{w} xxTw=λw⇒(i=1∑mxixiT)w=λw,然后选前d(这个由你自己指定)个大的特征值对应的特征向量组成变换矩阵。
那么在KPCA里面有
Z
Z
T
W
=
λ
W
⇒
(
∑
i
=
1
m
z
i
z
i
T
)
W
=
λ
W
Z{{Z}^{\text{T}}}\mathbf{W}=\lambda \mathbf{W}\Rightarrow \left( \sum\limits_{i=1}^{m}{{{z}_{i}}}z_{i}^{\text{T}} \right)\mathbf{W}=\lambda \mathbf{W}
ZZTW=λW⇒(i=1∑mziziT)W=λW ,Z是样本x映射到高维空间的像,
z
=
ϕ
(
x
)
z=\phi (x)
z=ϕ(x)
Z
Z
T
W
=
ϕ
(
X
)
ϕ
(
X
)
T
W
Z{{Z}^{\text{T}}}\mathbf{W}=\phi (X)\phi {{(X)}^ {\text{T}}}\mathbf{W}
ZZTW=ϕ(X)ϕ(X)TW,然后我们都知道映射函数不好求嘛,那么我们引入了核函数
K
=
ϕ
(
X
)
ϕ
(
X
)
T
K=\phi (X)\phi {{(X)}^{\text{T}}}
K=ϕ(X)ϕ(X)T,则可以推出
⇒
K
W
=
λ
W
\Rightarrow K\mathbf{W}=\lambda \mathbf{W}
⇒KW=λW,那么我们取K最大的d个的特征值对应的特征向量组成变换矩阵,不就可以了