KPCA,中文名称”核主成分分析“,是对PCA算法的非线性扩展。PCA是线性的,其对于非线性数据往往显得无能为力(虽然这二者的主要目的是降维,而不是分类,但也可以用于分类),其中很大一部分原因是,KPCA能够挖掘到数据集中蕴含的非线性信息。
一、KPCA较PCA存在的创新点:
1. 为了更好地处理非线性数据,引入非线性映射函数,将原空间中的数据映射到高维空间,注意,这个是隐性的,我们不知道,也不需要知道它的具体形式是啥。
2. 引入了一个定理:空间中的任一向量(哪怕是基向量),都可以由该空间中的所有样本线性表示,这点对KPCA很重要,我想大概当时那个大牛想出KPCA的时候,这点就是它最大的灵感吧。话说这和”稀疏“的思想比较像。
二、核函数定义
核函数K(kernel function)可以直接得到低维数据映射到高维后的内积,而忽略映射函数具体是什么,即K(x, y) = <φ(x), φ(y)>,其中x和y是低维的输入向量,φ是从低维到高维的映射,<x, y>是x和y的内积。核函数是一个非常有趣和强大的工具。 它是强大的,因为它提供了一个从线性到非线性的连接以及任何可以只表示两个向量之间的点积的算法。如果我们首先将我们的输入数据映射到更高维的空间,那么我在这个高维的空间进行操作出的效果,在原来那个空间就表现为非线性。
常见核函数:
(1)线性核函数:
(2)多项式核函数:
(3)高斯径向基核函数:
(4)拉普拉斯核函数:
三、KPCA的简单推导:
假设原始数据是如下矩阵X:(数据每一列为一个样本,每个样本有m个属性,一共有n个样本)
将每个样本通过函数φ映射到高维空间,得到高维空间的数据矩阵φ(X)。
用同样的方法计算高维空间中数据的协方差矩阵,进一步计算特征值与特征向量。