[关闭]
@hainingwyx 2017-05-10T13:39:57.000000Z 字数 2854 阅读 2159

Kernel PCA

机器学习


算法原理

部分数据在低维度线性不可分,但映射到高维度时就可以实现线性划分。通过使用核的技巧就可以实现映射,并在映射得到的新的特征空间进行主成分分析。

推导方法1[1]

推导建立在PCA的基础上的。需要先掌握PCA。

假设在特征空间数据的均值为:

有方差:

和PCA相类似, 特征向量为:

因为不知道的形式是怎么样的,并不能直接通过特征分解求

可以证明可以表示成高维特征的线性组合

所以求特征向量等价于求因子

通过将的表达式代入(1)中可以得到:

其中是一个核函数,对于特定的数据,可认为是已知的。由(2) 的特征向量, 下面求其约束。注意这里并不是要求其长度为1。 特征向量是一个单位向量,

代入

代入(2)得到

以上就是其长度约束。

对于新的数据x,它在主成分的投影坐标为

由以上投影坐标可以求。


一般情况下,特征空间的均值不是0。可以将特征中心化。

相应的核也变成了

矩阵形式:

表示所有元素为1的矩阵。


KPCA的算法流程
1. 选择一个核
2. 由(3)建立一个归一化核矩阵
3. 求特征值分解


4. 对于新的数据点在主成分的投影为

推导方法2[2]

假设数据均值为0时,有协方差矩阵,

认为是数据在特征空间的表示。因为不知道的形式,所以希望转换成可以用kernel K表示形式

从kernel矩阵的特征方程(逆向推理)出发:

两边左乘,整理得到

可以看出的特征向量,因为其受到其为单位向量的约束,有:

这里令也是单位向量。特征向量还是和直接相关,仍然是未知的。

直接考虑在特征空间投影之后的坐标(高中向量知识):

最想要知道的正好是可以计算的。


题外话
特征空间的向量可以用特征空间的数据线性表示。因为


KPCA的算法流程
1. 选择一个核
2. 建立一个归一化核矩阵
3. 求特征值分解


4. 对于新的数据点在主成分的投影为

参考文献

[1]. http://www.cs.haifa.ac.il/~rita/uml_course/lectures/KPCA.pdf
[2]. https://www.youtube.com/watch?v=G2NRnh7W4NQ

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注