1
模式识别与智能计算的MATLAB实现
1.7.2.2 5.2.2 基于核的主成分分析
5.2.2 基于核的主成分分析

由于经典的主成分分析是一种线性算法,不能抽取出数据中非线性的结构,即对非线性数据不能降维,此时可用核主成分分析(KPCA)方法。KPCA用非线性变换将输入数据空间映射到高维特征空间,使非线性问题转化为线性问题,然后在高维空间中使用PCA方法提取主成分,在保持原数据信息量的基础上达到降维的目的。

对于输入空间中的M个样本xk(k=1,2,…,M),xk∈RN,使xk中心化,即alt,则其协方差矩阵为

alt

对于一般PCA方法,即通过求解上述协方差矩阵的特征值和特征向量,获得贡献率大的特征值(对应较大的特征值)及与之对应的特征向量。

现引入线性映射函数Φ,使输入空间的样本点x1,x2,…,xM变换为特征空间中的样本点Φ(x1),Φ(x2),…,Φ(xM),并假设

alt

则在特征空间F下的协方差矩阵为

alt

因此,特征空间中的PCA是求解方程alt中的特征值λ和特征向量ν,进而有

alt

注意到上式中的ν可由线性表出,即

alt

从而可得

alt

定义M×M矩阵K∶Kij≡Φ(xi)·Φ(xj),上式可简化为

MλKα=K2α

MλK=Kα

通过对上式的求解,即可获得要求的特征值和特征向量。对于测试样本在F空间向量Vk上的投影为

alt

应该注意的是,在一般情况下中心化是不成立的,此时K可用alt代替

alt

其中,lij=1(对所有的i,j)。

从上面的讨论可以看出,KPCA实际上与PCA具有本质上的区别:PCA是基于输入向量维数(特征、指标)的,而KPCA是基于样本的。

在实际工作中,对样本的数目进行筛选也是非常重要的,其原因有三:一是获取训练样本需要花费大量的时间和费用;二是在一些监督学习领域中,如对Email进行分类和过滤,虽然获取样本不需要太多的代价,但标识这些样本要大量时间;三是对于一些机器学习是NP(Non-deterministic polynimical,多项式复杂程度的非确定性问题)的,如果样本数据太多,会导致问题的求解无法进行。KPCA不仅可以用于数据的降维处理,也可用于样本的筛选,此时的算法称为AKPCA。

而对于样本筛选问题,如果样本数目不是很多,可以通过比较第一特征值对应向量的系数,保留系数大的样本,再在这些样本的基础上进行KPCA。但是,当样本数目太多时,上述样品筛选的方法变得不可行:一是耗费太多的时间;二是运算需要占用太多的内存。为了解决这个问题,可以对样本数据进行分组训练。设样本总数为N,现将其分成M组,N=MN1,N1为每一组中具有的样本数目,设第i个(i=1,2,…,M)组中与第一投影方向相对应的系数向量为αi

alt

并假设每一组中欲保留的样本数目为Li(i=1,2,…,M),Li由下式决定

alt

其中,δ值为阈值,可根据问题需要研究,其值越小,筛选掉的样本越多,但也有可能产生较大的误差。β由αi排序获得,满足β1≥β2≥…≥βM