PCA算法步骤(协方差矩阵)

我的PCA与KPCA学习笔记_降维

PCA算法步骤(SVD)

我的PCA与KPCA学习笔记_降维_02

选取前d’个主成分

我的PCA与KPCA学习笔记_特征向量_03

PCA的意义

我的PCA与KPCA学习笔记_特征向量_04

KPCA与PCA的区别

我的PCA与KPCA学习笔记_降维_05

KPCA

KPCA.中文名称”核主成分分析“,是对PCA算法的非线性扩展。PCA是线性的,其对于非线性数据往往显得无能为力(虽然这二者的主要目的是降维,而不是分类,但也可以用于分类),其中很大一部分原因是,KPCA能够挖掘到数据集中蕴含的非线性信息

PCA只能解决数据分布是线性的情况(数据大致分布在一个超平面附近)。KPCA 的思想:把原始的非线性的数据映射到高维空间变成线性的,然后用 PCA 来处理映射后的高维数据。

我的PCA与KPCA学习笔记_核函数_06


核函数可以直接对特征向量的内积进行变换,等价于先对特征向量做核映射然后做内积。

KPCA算法流程有四步:
1、去除平均值,进行中心化
2、利用核函数计算核矩阵K
3、计算核矩阵的特征值和特征向量
4、将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成降维后 的数据矩阵P,P即为降维后的数据

由于K是n(样本数)维方阵,所以最多有n个特征值,所以理论上讲KPCA的降维结果最高可以达到n维,会比降维之前的特征多。但是核心信息都在前几个轴上面,至于取几个轴,就看经验啦。

核技巧与核函数

因为面对样本线性不可分的时候,可以对特征向量进行映射将它转化到一般来说更高维的空间,使得在该空间中是线性可分的,这种方法在机器学习中被称为核技巧。

我的PCA与KPCA学习笔记_核函数_07


满足上面条件的函数称为核函数,常用的核函数有以下几种:

我的PCA与KPCA学习笔记_降维_08


为了让不同的数据集都能表现良好,调优参数r并没有一个普适性的数值,对于特定问题需要实验才能确定γ值。

核函数的精妙之处在于不用真的对特征向量做核映射,而是直接对特征向量的内积进行变换,而这种变换却等价于先对特征向量做核映射然后做内积

矩阵K计算方式:

我的PCA与KPCA学习笔记_核函数_09


通过变换使得核矩阵k更为聚集(中心化):

我的PCA与KPCA学习笔记_KPCA_10

参考文献

1、​​pca数学原理​

2、​​核化线性降维(KPCA)的理解​​

3、​​特征工程之降维(KPCA)​​