从PCA到Kernel PCA(Python)

PCA作为数据预处理手段,将数据映射到最大化方差的低维空间。Kernel PCA通过核函数处理非线性可分数据,实现线性可分。RBF核函数是最常见的选择,通过计算核矩阵并进行特征值分解得到降维后的数据。在非线性数据集上,KPCA展示了优于PCA的效果。
摘要由CSDN通过智能技术生成

PCA不进行分类的动作,而只做做数据预处理,将样本变换到一个容易分类(向最大化方差的方向,principal component axes,投影)的更低维的新的特征空间中。Kernel PCA比PCA多了一步,也即先升维(RBF包括多项式核均是升高到无穷维)再进行投影的动作,因为有些非线性可分的数据集只有在升维的视角下才线性可分。

##PCA

  • 均值化的数据:
    ∑ i x i = 0 \sum_i\mathrm{x}_i=0 ixi=0
# python 
>>> X-np.mean(X, 0)
				# 一个二维矩阵减去一维向量?对,
				# 这里用到的技术是numpy中broadcasting(广播机制)
  • 样本协方差矩阵(sample-covariance matrix C C C
    C = 1 N ∑ i x i x i T = 1 N X X T C=\frac1N\sum_i\mathrm{x}_i\mathrm{x}_i^T=\frac1NXX^T C=N1ixixiT=N1XXT
    其中, X X X 的每一列表示一个样本(特征向量)

  • 特征分解
    C = U Λ U T = ∑ α λ α u α u α T C=U\Lambda U^T=\sum_\alpha \lambda_\alpha\mathbf{u}_\alpha\mathbf{u}_\alpha^T C=UΛUT=αλαuαuαT

  • projection or transform

y i = U k T x i \mathrm{y}_i=U_k^T\mathrm{x}_i yi=UkTxi

1 N ∑ i y i y i T = 1 N ∑ i U k T x i x i T U k = U k T ( 1 N ∑ i x i x i T ) U k = U k T C U k = U k T U Λ U U k T = Λ k \frac1N\sum_i\mathrm{y}_i\mathrm{y}_i^T=\frac1N\sum_iU_k^T\mathrm{x}_i\mathrm{x}_i^TU_k=U_k^T(\frac1N\sum_i\mathrm{x}_i\mathrm{x}_i^T)U_k=U_k^TCU_k=U_k^TU\Lambda UU_k^T=\Lambda_k N1iyiyiT=N1iU

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

五道口纳什

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

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

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

打赏作者

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

抵扣说明:

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

余额充值