@hainingwyx
2017-05-10T13:39:57.000000Z
字数 2854
阅读 2159
机器学习
部分数据在低维度线性不可分,但映射到高维度时就可以实现线性划分。通过使用核的技巧就可以实现映射,并在映射得到的新的特征空间进行主成分分析。
推导建立在PCA的基础上的。需要先掌握PCA。
假设在特征空间数据的均值为:
有方差:
和PCA相类似, 特征向量为:
因为不知道的形式是怎么样的,并不能直接通过特征分解求。
可以证明可以表示成高维特征的线性组合
所以求特征向量等价于求因子
通过将的表达式代入(1)中可以得到:
其中是一个核函数,对于特定的数据,可认为是已知的。由(2) 是的特征向量, 下面求其约束。注意这里并不是要求其长度为1。 特征向量是一个单位向量,
由
代入有
即
代入(2)得到
以上就是其长度约束。
对于新的数据x,它在主成分的投影坐标为
由以上投影坐标可以求。
一般情况下,特征空间的均值不是0。可以将特征中心化。
相应的核也变成了
矩阵形式:
表示所有元素为1的矩阵。
KPCA的算法流程
1. 选择一个核
2. 由(3)建立一个归一化核矩阵
3. 求特征值分解
假设数据均值为0时,有协方差矩阵,
认为是数据在特征空间的表示。因为不知道的形式,所以希望转换成可以用kernel K表示形式
从kernel矩阵的特征方程(逆向推理)出发:
两边左乘,整理得到
可以看出是的特征向量,因为其受到其为单位向量的约束,有:
这里令也是单位向量。特征向量还是和直接相关,仍然是未知的。
直接考虑在特征空间投影之后的坐标(高中向量知识):
最想要知道的正好是可以计算的。
题外话
特征空间的向量可以用特征空间的数据线性表示。因为
KPCA的算法流程
1. 选择一个核
2. 建立一个归一化核矩阵
3. 求特征值分解
[1]. http://www.cs.haifa.ac.il/~rita/uml_course/lectures/KPCA.pdf
[2]. https://www.youtube.com/watch?v=G2NRnh7W4NQ