由浅入深了解PCA和KPCA

1.PCA(Principal Component Analysis)

假设有这么多个零均值训练样本(如果不是zero mean就减去平均值),PCA的目标就是找到一个比较小的集合p<=d,这个集合具有最大量的variance值,即投影到坐标轴上的variance值

根据上图的一圈变量,找到投影后分散量最大方向(即蓝色的这条线)

如何找到投影方向以及投影后的向量:

正射影长(红色这段投影线的长度):\large \left \| _{xj} \right \|cos\theta

要找到向量,就得先找到v这个方向的单位向量(代表长度是1),整体计算方法如下图

投影就是找到做内积的坐标,如下图中找到\LARGE _{x1,x2,x3,x4,x5}五个向量在v的内积(都是一个单值,即算出来是一个数)投影

假设有另一个轴\LARGE \overline{v},找到\LARGE _{x1,x2,x3,x4,x5}\overline{v}上的内积(都是一个单值),投影的坐标

PCA的目标就是要找到一个方向分散的最大的variance,如下图所示

由于内积算出的都是单值,因此是用单变数的统计概念来计算variance值,下图是计算方法(图中C是协方差矩阵,又称共变异数矩阵)

在找到所有variance值后,就是要找到最大的variance值,可用argmax函数

要找到v就要先找到,就用Lagrangian(拉格朗日函数)来解,求微分后会得到一个特征值(eigenvalue)和特征向量(eigenvector)

由上式可知,只需要把求协方差矩阵C变成求两个值的最大值就可以了,即最大特征值和最大特征向量(限制eigenvector的长度为1)

根据公式简化可以得到,最后要求的最大值其实就是最大的特征值(eigenvalue)

以此类推,如果要找两个方向的variance,即找最大的eigenvalue和第二大的eigenvalue;找三个方向的variance就是找最大的、第二大的和第三大的eigenvalue,最后得到的variance值就是几个相加起来的结果(因为求出来的value都是垂直的)

根据前面的公式推导,多变量统计中都是矩阵,分别为列向量矩阵和行向量矩阵,可以用下图中的来表示

2.KPCA(Kernel-based PCA)

什么是kernel化——可以指的是将原先的空间的资料送到一个feature space上去(feature space的维度比较大),通过该feature space来进行计算。所以KPCA的目标就是把feature space的协方差矩阵C(covariance matrix)和eigenvalue的值求出来。步骤如下,即把training sample训练样本送到feature space上去,再根据单值公式套入计算

上式中我们能够知道的只有kernel function,而是不知道的,所以我们就要想办法把公式C变成跟kernel function有关,下图是由kernel function计算出的K值

由上面的公式计算出的简化为,而原始式子中是,所以我们要通过找到K中的eigenvectors来找到C中的eigenvectors,最后计算出两者的eigenvalue跟eigenvector的关系

由上面公式推导可以看出,两者的eigenvalue是相同的,但两者的eigenvectors是不一样的,一个的eigenvectors是u,一个的eigenvectors是,但最终我们要做到的是令eigenvector的长度值为1,就除以它自己长度就可以

根据上面的式子可以找到两向量u和v之间的一个关系,但是关系式中的仍是未知的,而对于最终的结果来说,要得到投影到向量上的内积值才是我们的终极目标。因此再通过一次内积,便可以找到要求的variance

将data送到feature space上面,在feature space上面找到变异量最大的方向,投影下来的坐标就可以随之找出

总结:对于KPCA就是先算出kernel matrix的eigenvalue跟eigenvectors,然后求出来的eigenvalue和eigenvectors按照大小排列,得到了kernel matrix后就根据投影后的测试样本求出covariance matrix(不同的kernel对应不同的不同kappa所求出来的结果会对应不同)

有两个重要的因素决定值,一个是kernel function,挑选合适的kernel function是一个很重要的关键,其次是资料的形态

PCA跟KPCA最终的一个对比图

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ZZX-研一小学僧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值