PCA和核PCA

本文详细介绍了PCA(主成分分析)及其非线性扩展KPCA(核主成分分析)的基本原理与数学推导过程。PCA是一种常用的降维方法,特别适用于非监督学习中的小样本问题。而KPCA通过引入核技巧处理非线性问题,进一步扩大了PCA的应用范围。

PCA

当处理高维数据时,需要面临降维,进行特征抽取,PCA是特征抽取的主要方法之一,特征抽取即利用映射的方法,将高维度的样本映射至低维度。PCA适用于非监督的不带标签的样本降维,特别是小样本问题。广义认为,这类样本属性之间的相关性很大,通过映射,将高维样本向量映射成属性不相关的样本向量。实际上,大的特征值表征这个映射向量——或者映射方向,能够使样本在映射后,具有最大的方差。样本在这个方向最发散。通常情况下,有用信息具有较大的方差,噪声有较小的方差。

PCA推导

设有数据集X=[x1,x2,...,xN]Rd×N
样本均值μ=1NNi=1xixixiμ,设中心化后的样本集为X=[x1,x2,...,xN]Rd×N
PCA的目的是为了寻找一个投影方向,使数据集投影到新方向上时尽量散开,即有最大方差。
设投影方向为v(是d×1向量),则xiv方向上的表示为
||xi||cosθv||v||=||xi||<xi,v>||xi||||v||v||v||=<xi,v>||v||2v=vTxiv
(设||v||=1vTxi是一个数值,表示向量xiv方向上的投影长度)
则样本在方向v上的坐标分别为vTx1,vTx2,...,vTxN,现要使它们尽量散开,即方差最大。
新坐标的方差:σ2=1NNi=1(vTxi0)2=1NNi=1(vTxi)(vTxi)=1NNi=1(vTxi)(vTxi)T=1NNi=1vTxixTiv=1NvTNi=1xixTiv(一个数)
C=Ni=1xixTi=[x1,x2,...,xN]xT1xT2xTN=XXTd×d矩阵)
σ2=1NvTCv
原问题变为max σ2=vTCv   s.t ||v||2=vTv=1
用拉格朗日乘数法:L(v,λ)=vTCv-λ(vTv1)
Lv=2Cv2λv=0 Cv=λv
Lv=1vTv=0 vTv=1
σ2=vTCv=vTλv=λvTv=λ
所求方向v即为样本协方差矩阵C的最大特征值对应的单位特征向量
若要将样本降到k维,则选出样本协方差矩阵C的前k个最大特征值对应的单位特征向量组成投影矩阵,将样本投影到k维空间。

PCA步骤

1.特征中心化,即每个样本点减去均值
2.计算样本协方差矩阵
3.计算协方差矩阵的特征值和特征向量
4.选取若干个最大的特征值对应的特征向量作为投影矩阵,将原高维样本映射到低维空间

KPCA

PCA针对线性的情况效果比较好,但对于非线性的情况效果并不理想,为了更好的处理非线性数据,引入非线性映射函数ϕ,将原空间中的数据映射到高维空间,在这个高维空间中线性不可分的样本变得线性可分了,接着可再运用PCA思想了。

KPCA推导

设有数据集X=[x1,x2,...,xN]Rd×N,设非线性映射函数ϕϕRdFD,Dd
将样本空间映射到高维特征空间得Φ(X)=[ϕ(x1),ϕ(x2),...,ϕ(xN)]RD×N
假设Φ(X)的均值为0,即1NNi=1ϕ(xi)=0
设投影方向为V(是一个D×1向量),则由以上PCA的分析可知:样本Φ(X)在方向V上的坐标为VTϕ(x1),VTϕ(x2),...,VTϕ(xN)
则问题转化为max VTΦ(X)Φ(X)TV   s.t ||V||2=VTV=1
我们现在的问题是要求Φ(X)Φ(X)TD×D)的最大特征值对应的单位特征向量,但Φ(X)是未知的,要怎样解决现在的问题呢?
注意到核矩阵K=ϕ(x1)Tϕ(x1)ϕ(xN)Tϕ(x1)ϕ(x1)Tϕ(xN)ϕ(xN)Tϕ(xN)
=ϕ(x1)Tϕ(x2)Tϕ(xN)T[ϕ(x1)ϕ(x2)ϕ(xN)]=Φ(X)TΦ(X)N×N)
Kξ=λξ,即Φ(X)TΦ(X)ξ=λξ(设ξ为单位特征向量)
两边同时左乘Φ(X)Φ(X)Φ(X)TΦ(X)ξ=λΦ(X)ξ
Φ(X)Φ(X)TΦ(X)ξ=λΦ(X)ξ
则所要求的投影方向为V=Φ(X)ξ||Φ(X)ξ||=Φ(X)ξξTΦ(X)TΦ(X)ξ=Φ(X)ξξTλξ=Φ(X)ξλξTξ=Φ(X)ξλ
由于Φ(X)是未知的,故投影方向是求不出的。
Φ(X)的投影坐标为VTΦ(X)=ξTΦ(X)TΦ(X)λ=ξTKλ=ξTKTλ=(Kξ)Tλ=λξTλ=λξT. (即Φ(X)中每个向量的投影坐标的第一个分量即第一主成分)
若要将样本降到k维,则选出样本协方差矩阵K的前k个最大特征值对应的单位特征向量ξ1,ξ2,...,ξk组成投影矩阵Ξ,可直接求出原样本在低维空间的坐标λ1ξT1λ2ξT2λkξTk

思考

上面假设Φ(X)的均值为0,若Φ(X)的均值不为0,则首先需要对Φ(X)进行中心化处理,令中心化处理后的样本为Ψ(X)=[ψ(x1),ψ(x2),...,ψ(xN)],其中ψ(xi)=ϕ(xi)-1NNk=1ϕ(xk)
问题转化为max V~TΨ(X)Ψ(X)TV~   s.t ||V~||2=V~TV~=1
和上面一样,这个问题的解是通过求K~=Ψ(X)TΨ(X)的特征值特征向量得到的。
下面来求K~ij:
K~ij=ψ(xi)Tψ(xj)
=(ϕ(xi)1NNk=1ϕ(xk))T(ϕ(xj)-1NNl=1ϕ(xl))
=ϕ(xi)Tϕ(xj)-1NNk=1ϕ(xk)Tϕ(xj)-1NNl=1ϕ(xi)Tϕ(xl)+1N2Nk=1Nl=1ϕ(xk)Tϕ(xl)
=Kij-1NNi=1Kij-1NNj=1Kij+1N2Ni=1Nj=1Kij
I是每个元素都为1的N×N的矩阵,则KI的第i行每个元素为K的第i行元素之和,
(KI)ij=Nk=1Kikj=1,2,...,N
IK的第j列每个元素为K的第j列元素之和,
(IK)ij=Nk=1Kkji=1,2,...,N
IKI的每个元素为K的所有元素之和,即(IKI)ij=Ni=1Nj=1Kij
K~=K1NIK1NKI+1N2IKI=(E1NI)K(E1NI)
其中EN×N单位矩阵

KPCA步骤

1.利用核方程K(x,y)计算矩阵K
2.求矩阵K的前几个最大特征值对应的单位特征向量
3.选取几个最大特征值对应的特征向量带入公式求解投影坐标

常见的核函数

线性核: k(x,y)=xTy+c
多项式核:k(x,y)=axTy+c)d
高斯核:k(x,y)=exp(||xy||22σ2)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值