前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >站在机器学习视角下来看主成分分析

站在机器学习视角下来看主成分分析

作者头像
深度学习与Python
发布2019-06-18 20:57:16
1.1K0
发布2019-06-18 20:57:16
举报

主成分分析(PCA)是一种降维算法,通常用于高维数据降维减少计算量以及数据的降维可视化。在本文中,我将从机器学习的角度来探讨主成分分析的基本思想。本次只涉及简单的PCA,不包括PCA的变体,如概率PCA和内核PCA。

首先,我们给出一组二维数据,并从中寻找其一维投影,数据二维图形如下。

因为我们可以设置无数的投影方向,即我们也会得到无数种一维投影的可能情况:

在我们拥有的所有可能性中,我们只选择正交投影,其基本情况如下。

根据向量特性,在W空间中的所有向量中,最接近u的向量是u在W上的正交投影。换句话说,我们希望获得最接近原始数据集的投影以保持尽可能多的信息以及尽可能小的数据规模。以下是矢量属性的证明:

现在我们知道应该采用正交方向的投影,通过正交投影,我们采用下面公式对数据进行线性变换:

变换后的最后一个表达式是最终我们想要的东西:即在新的较低维度上的正交投影数据。因此我们希望找到将数据映射到具有最小正交投影的子空间的线性运算符。重要的是看到正交投影是原始d维空间的k维子空间,用原始d维坐标表示。如下图所示,1维投影数据用2维坐标表示。

那么现在我们的问题是找到最佳线性变换(线性算子将我们的数据转换为投影到较低维度),以最小化降维损失:

在这里需要注意的是不要将PCA与线性回归混淆。PCA用的是最小化正交投影距离,而线性回归是最小化y轴上的距离。

在k维子空间中,存在k个标准正交基矢量。基矢量不必是正交的,但子空间中的每个基矢量都可以使用Gram-Schmidt过程替换为正交基,我们可以很容易地将基矢的长度改为1.因此,这个优化问题的约束条件是基向量的长度必须为1。

我们将从最容易处理的情况开始,即当投影维数k = 1时。使用k = 1情况的好处是我们可以去除Pi或基向量q的内部求和,因为这里只有一个向量。我们可以通过做一些线性代数变换将这个问题转化为最大化问题,而不是处理最小化问题。具体变换如下:

第一个求和不依赖于基矢量q,因此它不会影响我们的最小化问题。在摆脱常数之后,就可以转化为最大化问题。

将求和项进行更深一步的化简得到:

即现在问题是一个最大值的优化问题。

我们开始的最小化问题是最小化从数据集到投影的正交距离。对于最大化问题,我们看到它是最大化方差。现在我将说明为什么问题的最大化版本是投影数据集的方差的最大化。我们先定义方差的表达式:

即上面的等式是一个标量乘以向量本身的点积。

那么什么是X q的转置?它与原X有什么不同?

换句话说,列向量表示k维度的新子空间内的距离。

从最小化和优化角度看同样的问题很有意思,因为它们都实现了减小维度的目标,但它是以不同的方式完成的。最小化将是最小化残差,残差是数据点和投影之间的正交距离。另一方面,最大化问题是最大化正交投影数据集的方差。我们可以直观地看一下最小化和最大化:

现在我们将k = 1表达式转换为通用k表达式。原始的最小化表达式

即相当于:

其中q不再是一个向量而是一个矩阵。

原因是因为外部乘积(即变换算子)的总和等于矩阵乘法,因为它从向量增长到如下所示的矩阵:

为了将最大化问题转化为一般k情况,我们需要决定从矩阵中最大化什么。让我们从定义开始。所述迹线的的Ñ -by- Ñ方阵阿被定义为对在主对角线元素(对角线从左上到右下)的总和。由于矩阵Q(Q的转置)是对称的,所以将应用上述对称矩阵的相同定理,

如果A是可对角化的矩阵,则A的轨迹等于A的特征值之和。这是证明:

因此,为了最大化方差,我们可以最大化矩阵的轨迹,矩阵是D的对角线条目的总和。

我们还可以将跟踪的想法带入最小化问题,如下所示:

因此,最大化矩阵的轨迹是

等效于最大化协方差矩阵以及与X的X转置相关联的特征值。注意,X的X转置的维度是dxd,但是其轨迹被最大化的矩阵具有kx k的维度。trace操作的输出是特征值之和的kxk矩阵,但是argmax操作的输出是(dxk)Q矩阵,其中每列是X的X转置的特征向量。因此,我们获得最大k个特征向量。

投影数据为:

到目前为止,我们只致力于获得新维度的基础向量。但是,我们真正想要的是将原始数据投影到新维度上。PCA的最后一步是我们需要将Q的Q转置与原始数据矩阵相乘以获得投影矩阵。我们从(dxk)Q矩阵开始,Q的Q转置导致dxd维度。通过乘以(dxn)X矩阵,投影矩阵是dxn。

结论

我们从dxd协方差矩阵开始,我们通过最小化重建误差获得了前k个特征向量,这与最大化矩阵的轨迹相同。因此,我们成功地减少了维度。回到统计学的观点,我们为什么要最大化方差的问题得到了回答,因为我们希望最小化降维损失,这与最大化方差具有相同的结果。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习与python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 到目前为止,我们只致力于获得新维度的基础向量。但是,我们真正想要的是将原始数据投影到新维度上。PCA的最后一步是我们需要将Q的Q转置与原始数据矩阵相乘以获得投影矩阵。我们从(dxk)Q矩阵开始,Q的Q转置导致dxd维度。通过乘以(dxn)X矩阵,投影矩阵是dxn。
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档