pca主成分分析结果解释_(白话)主成分分析PCA

pca主成分分析结果解释_(白话)主成分分析PCA_第1张图片

pca主成分分析结果解释_(白话)主成分分析PCA_第2张图片

主成分分析,Principal Component Analysis (PCA),是现代数据分析的标准工具,它可以把庞大复杂的高维数据集,通过数学变换,转化成较低维度的数据集,并去除掉维度之间的相关性。本文会以一种直观的方式来解释PCA,便于大家对其开箱即用。

pca主成分分析结果解释_(白话)主成分分析PCA_第3张图片

1. 举例

假设我们是实验人员,正在尝试通过测量系统中的各种数据(如频谱、电压、电流等)来理解某种现象。但数据很多,且很混乱,不好判断哪些是有用的,哪些是多余的。现实工作和生活中,有很多类似的问题,比如神经系统、网页索引、气象和海洋学等复杂系统,需要我们抽丝剥茧,找到问题的本质。

以物理学中的一个理想弹簧为例,如Figure 1所示。该系统由无质量、无摩擦的沿x轴方向的弹簧和附着其上的质量为m的小球组成。沿x轴把小球拉开一段距离,弹簧处理拉伸状态。放开小球,系统会沿着x轴振动,也就是说,它的运动方程是关于单变量x的。假设在做实验之前,我们并不知道这一结论,因此我们在三维空间中的位置,放置了三台摄像机A,B,C(它们的角度并非互相垂直),这三台摄像机同时开始以同样的频率拍摄系统的运动轨迹。有了这三台摄像机的观察数据之后,我们怎么能根据这些数据,最终得到关于x的方程呢?

pca主成分分析结果解释_(白话)主成分分析PCA_第4张图片

如果实验前我们有先验知识的话,我们会选择沿着x轴进行拍摄,并不需要记录y轴方向的数据。 但现实生活中我们往往并没有足够的先验知识,不清楚用什么样的方式来测量数据,可能统计出来的数据超出了实际需要。另外,我们还需要处理噪声,比如上面的例子中的空气阻力、摩擦力。噪声会污染数据集,增加了我们获取信息的难度。

PCA的目的是,找出数据集中最有意义的数据,能够过滤掉噪声并揭示隐藏的结构。在上面的弹簧示例中,PCA的明确目标是确定运动方向是沿着x轴的,换句话说,确定x轴方向的数据是最重要的。我们有3个相机A、B、C,每个相机都记录了x轴方向和y轴方向的坐标,把同一时刻的样本数据放在一起,就可以表示成6维列向量:

如果我们观察了10分钟,并以120HZ的频率拍照,那么我们便记录了

共72000组向量。

我们用一般化的数学语言来描述:

样本向量

是一个m维的向量,m是测量的维度。这个向量是在一个m维向量空间中由其一组正交基进行线性组合而成。那么这个正交基是什么呢?通常这个正交基是默认的。以相机A的测试数据为例,
对应的正交基通常是
,但是为什么不选择
,或者其他正交基呢?因为正交基反应的是我们收集数据的方式。在
中的数据(2,2),在
中需要记录为
。因此基的选择对应着数据记录的方法。在线性代数中标准正交基是
的单位矩阵:

每一行都是一个包含

个元素的标准正交基。假设我们的数据都是根据上述基来记录的,那么每一个数据都是{
}的线性组合。

2. 用数学语言描述PCA

PCA要解决的问题是,是否存在另一组基(原基的线性组合),可以更好地表达我们的数据集?令

是原始数据集,它的每一列都是一个样本数据,按照上面弹簧的例子来讲,它是一个
维矩阵,
,
。令
是另一个
维矩阵,它是
经线性变换
转换而来,即
即为
的另一种表达。设:
  • 的行
  • 的列
  • 的列

也就是说:

  • 是将
    转换为
    的矩阵
  • 从几何角度来看,
    通过旋转、伸缩之后转换成
    ,这个变换即为
  • 的行{
    },即为表达
    的一组新的基向量

的每一列为
的第
个值是
方向的投影。现在的问题是
  • 最好的重新表达
    的方式是什么?
  • 如何选择

3. 如何更好地表达数据集X

3.1 信噪比与数据冗余

在回答这一问题之前,我们先来回顾一下信噪比。与信号相比,测量噪声要足够小,才能从数据中提取出有用的信息。一个常用的衡量手段即为信噪比(SNR):

当SNR

1时,即信号的方差远大于噪声的方差时,说明数据集比较精确。

pca主成分分析结果解释_(白话)主成分分析PCA_第5张图片

Figure 2中(a)是相机A的数据。互相垂直的两条黑线表示信号的方差和噪声的方差。旋转这2条线,可以得到图(b)。在旋转到图(a)中所示的

的时候,信噪比是最大的。注意,弹簧是沿着x轴运动的,因此任何偏离x轴方向的数据都是噪声。我们感兴趣的是图中的黑线的方向。在图(a)中的基
并不是我们想要的,我们想要的是最大化SNR的方向。需要把基
进行旋转。

另外,还有一个数据冗余的问题。在弹簧的例子中犹为明显。我们使用了3个传感器记录一个弹簧的运动。根据Figure 3重新思考下,每个传感器是否需要记录2个变量?

pca主成分分析结果解释_(白话)主成分分析PCA_第6张图片

Figure 3反应的是两个测试值

。图(a)表示
没有明显的关系,而图(c)表示示
是呈线性关系的。那么在分析数据的时候,只分析其中一个变量即可。

二维情况下,可以用最佳拟合的方法来分辨是否存在数据冗余,那么如何扩展到高维情况呢?假设有两组均值为0的数据集:

的方差分别为:
的协方差为:

协方差的数值越大,表明两个维度之间的冗余性越大。把

表示成行向量:

那么它们的协方差可以表示成点积组成的矩阵:

。把
看作是矩阵中的行向量,定义一个
的矩阵

的每一行
是一种类型的数据,
的每一列表示一个样本。
的协方差矩阵是

的第
行第
列元素是
的第
维数据和第
维数据的点积。因此:
  • 是一个方阵
  • 对角线的元素是每一维数据的方差
  • 非对角线元素是对应的两维数据的协方差

可以显示出任意两维数据的相关性。对角线方向,值越大表示我们越感兴趣;非对角线方向,值越小表示冗余性越小。

是测试数据,我们没办法"操纵",但我们可以"操纵"
(别忘记
),通过优化
来使
具备我们想要的特性。

3.2 优化协方差矩阵

我们的目标是,使

的不同维度之间是无相关性的,即最小化非对角线上的元素,最大化对角线上的元素。根据协方差的性质,可知
的每一个元素都是非负的。因此我们希望
是一个对角阵。将
对角化,有很多方法,PCA选择了最简单的一种。

PCA假设基向量

是正交的,在线性代数中,
是一个正交矩阵;另外,PCA假设方差越大的维度,就越重要。
1. 在
维空间中,选择一个归一化的方向,使得
的方差最大,记为

2. 找到与之前方向垂直的方向,并使得
的方差最大,记为

3. 重复以上步骤,直至选完
个向量。

得到的

的有序集合即为主成分。

这里的几个假设:

  • 线性。(PCA也可以扩展到非线性领域)
  • 方差大的方向更重要。(假设数据的SNR高,主成分对应的方差代表我们感兴趣的数据,方差小的则视为噪声。这个假设有时可能并不正确)
  • 主成分之间是正交的。(这个假设使得PCA可以使用线性代数的分解方法)

4. 如何计算PCA

4.1 代数解决方案

使用特征向量分解的方法来计算PCA。仍然用数据集

。目标是找到正交矩阵
,满足
,且
的协方差矩阵
是对角化的。
的行即为
的主成分。

定义

。可知
是对称的。
可由正交矩阵的特征向量进行对角化。即
是对角化的,而
是由
的特征向量组成的矩阵。由线性代数可知,
的秩
。如果
是退化的,那么可以选择
个向量来填充
。此时我们选择
,那么
,根据正交矩阵的性质,可知
。则

可以看出,这样选择

,可以使
对角化,从而达到了PCA的目标:
  • 的主成分是
    的特征向量
  • 的第
    个对角值,是
    沿着
    方向的方差。

4.2 SVD

本节给出PCA的另外一种解决方案-奇异值分解(SVD)。

的矩阵,那么
的对称方阵,秩为
这个矩阵的特征向量和特征值为
,它们满足
  • 定义奇异值为
  • 是一组正交向量,满足

那么由线性代数的理论可知(原文附录中有作解释,不懂的同学可以去参考):

奇异值分解即为

乘以
的特征向量等于一个标量乘以另一个向量。
均为
维空间上的正交向量。下面简单地解释一下。

从形式上来看,奇异值分解的方程可以表示为:

pca主成分分析结果解释_(白话)主成分分析PCA_第7张图片

我们可以构造三个新的矩阵

。所有的奇异值按照从大到小的方向排列,它们对应的向量也是按顺序排列。每一个相关的
都是各种矩阵的第
列。奇异值
处在
对角线的第
个元素。方程
类似于下式:

pca主成分分析结果解释_(白话)主成分分析PCA_第8张图片

首先我们构造一个对角阵

pca主成分分析结果解释_(白话)主成分分析PCA_第9张图片

对角线上的元素是按照降序排列的奇异值。同样,我们构造正交矩阵

之后我们用

个正交向量把
分别补充成为
的方阵。由于
是正交的,有
,因此有

任意的矩阵

可以分解为一个正交矩阵乘以一个对角阵,再乘以一个正交矩阵。这也是奇异值分解的核心公式之一。

4.3 解释SVD

考虑下式:

其中

是列向量,
是表示权重的常数。
是正交向量的集合,可以分别扩展成为
维向量空间。也就是说,它们可以分别涵盖所有的输入(
)和输出 (
)。从上一小节中,我们得到了

中的行。因此
可看作是
的变换。可以与
变换到了
作类比。
的列做变换,它可以看作是列空间的基向量。同样的,我们可能定义行空间。

。那么
的行向量即为将
变换到
的正交基,那么
的行向量即为
的行空间的正交基。

回到数据集

,它是
的矩阵。定义一个新的矩阵
,它是
的矩阵。

的每一列均为0均值。那么

从前面的讨论中,我们得到

的主成份是
的特征向量。而
的奇异值分解中矩阵
, 包括
的特征向量,也就是说矩阵
的主成分。而同时
又是
的行空间向量,也就是说,计算
的主成分,便是找到
的列空间的正交基。

5. 结论

实际应用中,PCA的计算很简单:

  • 把数据集组织成一个
    的矩阵
  • 将每种测试类型的数据减去其均值。(即均值归0)
  • 计算SVD,或者协方差矩阵的特征向量

PCA也可以用于降维,我们可以找出

方差最大的前
项作为主分量,去掉不太重要的后
项。

PCA的优势和劣势都在于,它是一个非参数的分析。没有需要调整的参数,它的答案是唯一的,独立于用户特性的。

注意:本文参考自https://www.cs.cmu.edu/~elaw/papers/pca.pdf,如有兴趣,请阅读原文。

你可能感兴趣的:(pca主成分分析结果解释,STC用PCA测量脉宽,主成分分析matlab代码)