PCA相关知识详解

PCA相关知识详解:

1.相关背景

       在很多领域的研究与应用中,通常需要对含有多个变量的数据进行观测,在收集大量数据后进行分析以寻找某种规律。多变量的大数据集无疑会为研究和应用提供丰富的信息,但是也在一定程度上增加了数据采集的工作量。更重要的是在很多情形下,许多变量之间可能存在相关性,从而增加了问题分析的复杂性。如果分别对每个指标进行分析,分析往往是孤立的,不能完全利用数据中的信息,因此盲目减少指标会损失很多有用的信息,从而产生错误的结论。

       因此我们需要找到一种合理的方法,来减少我们需要分析的指标,同时尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。由于各变量之间存在一定的相关关系,因此可以考虑将关系紧密的变量变成尽可能少的新变量,使这些新变量是两两不相关的,那么就可以用较少的综合指标分别代表存在于各个变量中的各类信息。

2.数据降维

      降维是将训练数据中的样本从高维空间转换到低维空间。从高维到低维的降维中,要保证样本中的信息损失最小。

      降维是一种对高维度特征数据预处理方法。降维就是要保留高维度数据中最重要的一些特征,去除噪声和不重要的特征,从而实来现数据处理速度的提升。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。

3 主成分分析介绍

3.1主成分分析解释

       主成分分析是一种常用的无监督学习方法。

      它利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。数据集合的样本由实数空间(正交坐标系)中的点表示,空间中的坐标轴表示一个变量。首先进行零均值化(中心化),即每一维的数据减去该维度的平均值。其实就是一个平移的过程,平移后使得所有数据的中心点是(0,0)。中心化是数据降维(坐标系旋转,寻找主成分)关键和必要的一步。如果没有进行中心化处理,无论坐标系的怎么旋转都是无效的,也没法保证变换后的数据是线性无关的。数据分布在原点之后,对坐标系中的数据进行主成分析等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上。

       在上图16.1(a) 中很明显这个数据中的变量x1和x2是线性相关的,具体的,当知道其中一个变量x1的取值时,对另一个变量x2的预测不是完全随机的。主成分分析对数据进行正交变换,具体地,对原坐标系进行旋转变换,并将数组在新坐标系中表示,如上图16.1(b)所示。主成分分析选择方差最大的的方向(第一主成分)作为新坐标系的第一坐标轴,即y1轴之后选择与第一坐标轴正交,且方差次之的方向(第二主成分)作为新坐标系的第二坐标轴,即y2轴。在新坐标系中,数据中的变量y1和y2是线性无关的,当知道其中一个变量y1时,对另一个变量y2的预测是完全随机的;反之亦然。如果主成分分析只取第一主成分,即新坐标系的y1轴,那么等价于将数据投影在椭圆的长轴上,用这个主轴表示数据,将二维空间压缩到一维空间上。

3.2均值、方差、协方差的定义和结论

对于3维数据(x,y,z),计算它的协方差就是:

由上面的公式,我们可以得到以下结论:

(1)方差的计算公式是针对某一个变量的这一维特征,即针对同一特征不同样本的取值来进行计算得到;方差是用来刻画随机变量X和数学期望E(X)之间的偏离程度。在某一个变量的这一维度上方差越大,即数据越离散,数据的丰富性和有用性越高,对我们分析问题就越有帮助。这也是在主成分分析中要选择方差最大的原因。

(2)协方差则必须要求至少满足二维特征;协方差就是一种用来度量两个随机变量关系的统计量。同一元素的协方差就表示该元素的方差(所以说方差是协方差的一种特殊情况),不同元素之间的协方差就表示它们的相关性。

(3)协方差矩阵计算的是不同维度之间的协方差, 而不是不同样本之间的; 样本矩阵的每行是一个样本, 每列为一个维度, 所以我们要按列计算均值。

协方差矩阵的对角线就是各个维度上的方差。

协方差为正时,说明X和Y是正相关关系;协方差为负时,说明X和Y是负相关关系;协方差为0时,说明X和Y是相互独立。Cov(X,X)就是X的方差。当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵)。

(4) 方差和协方差的除数是n-1,这是为了得到方差和协方差的无偏估计。

3.3 相关矩阵的定义和特征值分解矩阵的原理

(1) 特征值与特征向量

A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。当特征多项式等于0的时候,称为A的特征方程,特征方程是一个齐次线性方程组,求解特征值的过程其实就是求解特征方程的解。对于协方差矩阵A,其特征值( 可能有多个)计算方法为:

特征值λ求出之后,再代入Ax=λ求得每一个特征值所对应的特征向量。

设λ1λ2…,λm是方阵A(n阶矩阵)的互不相同的特征值。xj是属于λi的特征向量( i=1,2,…,m),则x1,x2,…,xm线性无关,即特征值不相同的特征向量线性无关

(2) 矩阵的特征分解

令 A 是一个 N×N 的方阵,且有 N 个线性无关的特征向量qi(i=1,2…N)。这样A 可以被分解为

其中 Q 是N×N方阵,它是矩阵A的特征向量组成的矩阵 。 Λ 是对角矩阵,其对角线上的元素为对应的特征值,也即。只有可对角化矩阵才可以作特征分解。

对角矩阵(diagonal matrix)是一个主对角线之外的元素皆为0的矩阵。对角线上的元素可以为0或其他值。对角线上元素相等的对角矩阵称为数量矩阵;对角线上元素全为1的对角矩阵称为单位矩阵。

如果一个方块矩阵 A 相似于对角矩阵,也就是说,如果存在一个可逆矩阵 P 使得 P-1 AP 是对角矩阵,则它就被称为可对角化的。

4.如何实现PCA算法简单概括

       简单来说,就是将数据从原始的空间中转换到新的特征空间中,例如原始的空间是三维的(x,y,z),x、y、z分别是原始空间的三个基,我们可以通过某种方法,用新的坐标系(a,b,c)来表示原始的数据,那么a、b、c就是新的基,它们组成新的特征空间。在新的特征空间中,可能所有的数据在c上的投影都接近于0,即可以忽略,那么我们就可以直接用(a,b)来表示数据,这样数据就从三维的(x,y,z)降到了二维的(a,b)。

问题是如何求新的基(a,b,c)? 一般步骤是这样的:

1) 对原始数据零均值化(中心化),

2) 求协方差矩阵,

3) 对协方差矩阵求特征向量和特征值,这些特征向量组成了新的特征空间。

5. 基于特征值分解协方差矩阵实现PCA算法

输入:数据集X由(x1,x2,…,xm) m个维度组成。需要降到k个维度。

设样本矩阵,每行为一个样本,样本数目为n,特征维度为m。

1) 去平均值(即去中心化),即每一维特征数据减去该维度的平均值。

2) 计算协方差矩阵:

注:这里除或不除样本数量n或n-1,其实对求出的特征向量没有影响。

协方差矩阵是  还是 主要看样本矩阵是还是 ,即主要看是以行为样本,还是以列为样本。

前者样本矩阵的格式:

样本1 [特征a11,特征a12,特征a13,…..,特征a1m]

样本2 [特征a21,特征a22,特征a23,…..,特征a2m]

样本3 [特征a31,特征a32,特征a33,…..,特征a3m]

样本n [特征an1,特征an2,特征an3,…..,特征anm]

这里的每行为一个样本,样本数目为n,特征维度为m。以样本1为例:样本1 [特征a11,特征a12,特征a13,…..,特征a1m] ; 其中下标第一个1表示第1个样本,m表示样本中第m维特征。

后者样本矩阵的格式:

样本1         样本2         样本3                  样本n

[特征a11,特征a12,特征a13,…..,特征a1n]

[特征a21,特征a22,特征a23,…..,特征a2n]

[特征a31,特征a32,特征a33,…..,特征a3n]

[特征am1,特征am2,特征am3,…..特征amn]

这里的每一列是一个样本,样本数目为n,特征维度为m。以样本1为例:样本1 [特征a11,特征a21,特征a31,…..,特征am1]T ;其中下标第二个1表示第1个样本,m表示样本中第m维特征。

3) 用特征值分解方法求协方差矩阵S的特征值与特征向量。

4) 对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵P。

注:K的选取

通过特征值的计算我们可以得到主成分所占的百分比,用来衡量模型的好坏。

对于前k个特征值所保留下的信息量(累计方差贡献率)计算方法如下:

通常取k使得累计方差贡献率达到规定的80%~90%以上。这个是自己设置的。

5) 将数据转换到k个特征向量构建的新空间中

6.PCA降维几何意义

我们对于一组数据,如果它在某一坐标轴上的方差越大,说明坐标点越分散,该属性能够比较好的反映源数据。所以在进行降维的时候,主要目的是找到一个超平面,它能使得数据点的分布方差呈最大,这样数据表现在新的坐标轴上时候已经足够分散了。

PCA算法的优化目标就是: ① 降维后同一维度的方差最大 ② 不同维度之间的相关性为0

7.PCA算法的优缺点

优点:

1)它是无监督学习,完全无参数限制的。在PCA的计算过程中完全不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。

2)用PCA技术可以对数据进行降维,同时对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。同时最大程度的保持了原有数据的信息。

3) 各主成分之间正交,可消除原始数据成分间的相互影响。

4) 计算方法简单,易于在计算机上实现。

缺点:

1) 如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。

2)贡献率小的主成分往往可能含有对样本差异的重要信息。

具体的可以还看我的另一篇文章:基于主成分分析(PCA)的故障诊断(SPE和T2指标)-MATLAB实现

https://blog.csdn.net/qq_44744164/article/details/105794851

 

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值