kernel PCA 与 kPPCA 原理及推导过程

PCA在处理非线性数据时效果不佳,为此引入了Kernel PCA(kPCA)。kPCA利用核技巧实现非线性降维,通过对gram矩阵进行特征分解得到特征向量。kPCA投影涉及中心化处理,通过定义中心化Gram矩阵实现。kPPCA作为kPCA的推广,处理投影的非自然性,通过最大似然估计求解。本文详述kPCA和kPPCA的推导过程并提供代码实现。
摘要由CSDN通过智能技术生成

1.概述

使用PCA可以实现数据的低维线性嵌入也就是线性降维,但是对于非线性比如具有流形结构的数据特征,PCA得到的效果不太理想,原因无它,此时强行使用PCA方法,得到的低维表示会使得高维空间相距较远的点缠绕在一起,得不到想要的低维嵌入效果。相应地,对于流形数据结果,通常将PCA扩展为kernel PCA,即通过引入kernel method(kernel trick)来实现非线性降维。

2.kPCA推导过程

根据前面PCA的篇章,我们知道如何使用PCA对数据进行低维的线性嵌入。这需要我们对采样的协方差矩阵\mathbf S进行特征分解。其中矩阵 \mathbf S的定义如下:

                        ​​​​​​​        ​​​​​​​        

Kernel PCA(核主成分分析)是一种非线性的主成分分析方法,它通过将数据映射到高维空间,利用线性PCA方法对映射后的数据进行处理,得到非线性的主成分分析结果。 下面是Kernel PCA推导过程: 假设我们有一个包含n个样本的数据集$X=\{x_1,x_2,...,x_n\}$,每个样本$x_i$有d个特征。我们的目标是将数据集X映射到一个m维的特征空间,其中m<d。 首先,我们定义一个核函数$K(x_i,x_j)$,它可以将两个样本映射到高维空间中的内积。常用的核函数有线性核函数、多项式核函数、高斯核函数等。 然后,我们定义一个中心化矩阵K,其中$K_{ij}=K(x_i,x_j)-\frac{1}{n}\sum_{k=1}^nK(x_i,x_k)-\frac{1}{n}\sum_{k=1}^nK(x_j,x_k)+\frac{1}{n^2}\sum_{k=1}^n\sum_{l=1}^nK(x_k,x_l)$。这个矩阵可以看作是样本之间的相似度矩阵,同时也是一个半正定矩阵。 接着,我们对中心化矩阵K进行特征值分解,得到特征值$\lambda_1,\lambda_2,...,\lambda_n$和对应的特征向量$\phi_1,\phi_2,...,\phi_n$。其中,特征向量$\phi_i$是映射到高维空间中的第i个主成分。 最后,我们将原始数据集X映射到m维的特征空间中,得到新的数据集$X'=\{\phi_1(x_1),\phi_2(x_2),...,\phi_m(x_n)\}$。这个数据集就是经过非线性主成分分析处理后得到的结果。 总的来说,Kernel PCA推导过程就是先定义核函数,然后通过中心化矩阵和特征值分解得到映射到高维空间中的主成分,最后将原始数据集映射到新的特征空间中得到结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scott198512

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值