KPCA(核主成分分析,Kernel PCA) 是PCA的非线性扩展,本质是“先升维,后降维”——通过核函数将数据隐式映射到高维(甚至无穷维)特征空间,再在该空间里做标准的线性PCA,从而在原始空间中捕捉非线性主成分。
经典的PCA方法假设数据 x 服从多变量高斯分布,但实际应用中这一假设可能不成立基于核方法,我们可以将数据从原始空间 x 转换为特征空间 Φ(x),如果 Φ(x) 服从高斯分布的话,我们可在特征空间下做PCA,即核PCA.
数学推导#
特征空间中的数据已经中心化
原始空间中的数据 x 通过核函数 k(x,y)=⟨Φ(x),Φ(y)⟩ 映射到特征空间 F 中的点 Φ(x)。
在特征空间中,协方差矩阵(散度矩阵)C:
C=i=1∑nΦ(xi)Φ(xi)T由于特征空间可能是高维甚至无穷维的,直接对 C 特征值分解是不可行的。KPCA 的核心思想是利用核函数来避免显式地计算 Φ(x)。
需要求解特征值问题:
Cv=λv我们可以将特征向量 v 表示为训练样本的线性组合:(特征向量可以表示成列向量的线性组合)
v=i=1∑nαiΦ(xi)将 v 代入特征值问题中:
(i=1∑nΦ(xi)Φ(xi)T)j=1∑nαjΦ(xj)=λj=1∑nαjΦ(xj)⇒i=1∑nj=1∑nαjΦ(xi)Φ(xi)TΦ(xj)=λj=1∑nαjΦ(xj)利用核函数 k(xi,xj)=Φ(xi)TΦ(xj),两边同时乘以 Φ(xk)T,k=1,2,…,n 可以将上述方程转化为:
i=1∑nj=1∑nαjk(xi,xj)k(xi,xk)=λj=1∑nαjk(xj,xk)定义核矩阵(Gram 矩阵.) K,其中 Kij=k(xi,xj),上述方程可以写成矩阵形式:
K2α=λKα进一步简化为:
Kα=λα