主成分分析法

主成分分析法,第1张

在对灾毁土地复垦效益进行分析时,会碰到众多因素,各因素间又相互关联,将这些存在相关关系的因素通过数学方法综合成少数几个最终参评因素,使这几个新的因素既包含原来因素的信息又相互独立。简化问题并抓住其本质是分析过程中的关键,主成分分析法可以解决这个难题。

(一)主成分分析的基本原理

主成分分析法(Principal Components Analysis,PCA)是把原来多个变量化为少数几个综合指标的一种统计分析方法。从数学角度来看,这是一种降维处理方法,即通过对原始指标相关矩阵内部结果关系的研究,将原来指标重新组合成一组新的相互独立的指标,并从中选取几个综合指标来反映原始指标的信息。假定有n个评价单元,每个评价单元用m个因素来描述,这样就构成一个n×m阶数据矩阵:

灾害损毁土地复垦

如果记m个因素为 x1,x2,…,xm,它们的综合因素为 z1,z2,…,zp(p≤m),则:

灾害损毁土地复垦

系数lij由下列原则来决定:

(1)zi与zj(i≠j,i,j=1,2,…,p)相互无关;

(2)z1是x1,x2,…,xm的一切线性组合中方差最大者,依此类推。

依据该原则确定的综合变量指标z1,z2,…,zp分别称为原始指标的第1、第2、…、第p个主成分,分析时可只挑选前几个方差最大的主成分。

(二)主成分分析法的步骤

(1)将原始数据进行标准化处理,以消除原始数据在数量级或量纲上的差异。

(2)计算标准化的相关数据矩阵:

灾害损毁土地复垦

(3)用雅克比法求相关系数矩阵R的特征值(λ1,λ2,…,λp)和与之相对应的特征向量 αi=(αi1,αi2,…,αip),i=1,2,…,p。

(4)选择重要的主成分,并写出其表达式。

主成分分析可以得到P个主成分,但是由于各个主成分的方差与其包含的信息量皆是递减的,所以在实际分析时,一般不选取P个主成分,而是根据各个主成分所累计的贡献率的大小来选取前K个主成分,这里的贡献率是指某个主成分的方差在全部方差中所占的比重,实际上也是某个特征值在全部特征值合计中所占的比重。即:

灾害损毁土地复垦

这说明,主成分所包含的原始变量的信息越强,贡献率也就越大。主成分的累计贡献率决定了主成分个数K的选取情况,为了保证综合变量能包括原始变量的绝大多数信息,一般要求累计贡献率达到85%以上。

另外,在实际应用过程中,选择主成分之后,还要注意主成分实际含义的解释。如何给主成分赋予新的含义,给出合理的解释是主成分分析中一个相当关键的问题。一般来说,这个解释需要根据主成分表达式的系数而定,并与定性分析来进行有效结合。主成分是原来变量的线性组合,在这个线性组合中各变量的系数有正有负、有大有小,有的又大小相当,因此不能简单地把这个主成分看作是某个原变量的属性作用。线性组合中各变量系数的绝对值越大表明该主成分主要包含了该变量;如果有几个大小相当的变量系数时,则认为这一主成分是这几个变量的综合,而这几个变量综合在一起具有什么样的实际意义,就需要结合具体的问题和专业,给出合理的解释,进而才能达到准确分析的目的。

(5)计算主成分得分。根据标准化的原始数据,将各个样品分别代入主成分表达式,就可以得到各主成分下的各个样品的新数据,即为主成分得分。具体形式可如下:

灾害损毁土地复垦

(6)依据主成分得分的数据,则可以进行进一步的统计分析。其中,常见的应用有主成分回归,变量子集合的选择,综合评价等。

(三)主成分分析法的评价

通过主成分分析法来评价复垦产生的效益,可将多个指标转化成尽可能少的综合性指标,使综合指标间互不相干,既减少了原指标信息的重叠度,又不丢失原指标信息的总含量。该方法不仅将多个指标转化成综合性指标,而且也能对每个主成分的影响因素进行分析,从而判别出影响整个评价体系的关键因素,并且主成分分析法在确定权重时可以科学地赋值,以避免主观因素的影响。

需要注意的是,主成分分析法虽然可以对每个主成分的权重进行科学、定量的计算,避免人为因素及主观因素的影响,但是有时候赋权的结果可能与客观实际有一定误差。因此,利用主成分分析法确定权重后,再结合不同专家给的权重,是最好的解决办法。这样可以在定量的基础上作出定性的分析,通过一定的数理方法将两种数据结合起来考虑。

主成分分析( Principal components analysis),简称PCA,是最主要的数据降维方法之一。本文从PCA的思想开始,一步一步推导PCA。

对于 , 。我们希望 从 维降到 维,同时希望信息损失最少。比如,从 维降到 :

我们既可以降维到第一主成分轴,也可以降维到第二主成分轴。那么如何找到这这些主成分轴并且选择最优成分轴呢?

直观上,第一主成分轴 优于 第二主成分轴,即具有最大可分性。

下面解决一些基本概念。

欲获得原始数据新的表示空间,最简单的方法是对原始数据进行线性变换(基变换):

其中 是原始样本, 是基向量, 是新表达。

数学表达:

其中 是行向量,表示第 个基, 是一个列向量,表示第 个原始数据记录

当 时即 基的维度 < 数据维度时,可达到降维的目的。即:

以直角坐标系下的点(3,2)为例,欲将点(3,2)变换为新基上的坐标,就是用(3,2)与第一个基做内积运算,作为第一个新的坐标分量,然后用(3,2)与第二个基做内积运算,作为第二个新坐标的分量。

可以稍微推广一下,如果我们有m个二维向量,只要将二维向量按列排成一个两行m列矩阵,然后用“基矩阵”乘以这个矩阵,就得到了所有这些向量在新基下的值。例如(1,1),(2,2),(3,3),想变换到刚才那组基上,则可以这样表示:

回顾一下,我们的目的是希望在降维过程中损失最少,换言之,我们希望投影后的数据尽可能分散开。这种分散程度可以用方差来表达, 方差 越大,数据越分散。

随机变量 表达了 的取值与其数学期望之间的偏离程度。若 较小,意味着 的取值主要集中在期望 也就是 的附近,反之,若 较大,意味着 的取值比较分散。

为了避免过于抽象,我们以一个具体的例子展开。假设我们5个样本数据,分别是 ,将它们表示成矩阵形式:

为了后续处理方便,我们首先将每个字段内所有值都减去字段均值,其结果是将每个字段都变为均值为0

我们看上面的数据,设第一个特征为 ,第二个特征为 , 此时某一个样本可以写作:

且特征 的均值为2, 特征 的均值为3,所以变换后:

协方差 (Covariance)在 概率论 和 统计学 中用于衡量两个变量的总体 误差 。

比如对于二维随机变量 ,特征 除了自身的数学期望和方差,还需要讨论 之间互相关系的数学特征。

当 时,变量 完全独立,这也是我们希望达到的优化目标。

方差 是协方差的一种特殊情况,即当两个变量是相同的情况:

对于 二维 随机变量 ,

对于 n维 随机变量 ,

可见,协方差矩阵是 行 列的对称矩阵,主对角线上是方差,而协对角线上是协方差。

依然我们以一个具体的例子展开,还是这5个样本数据, , ,将它们去中心化后表示成矩阵形式:

那如果有 个样本的话,

对 做一些变换,用 乘以 的转置,并乘上系数1/m:

这不正是协方差矩阵嘛!

现在我们可以说:

回顾一下:

设 的协方差矩阵为 , 的协方差矩阵为 ,且 。

我们要找的 不是别的,而是能让原始协方差矩阵对角化的 。

现在所有焦点都聚焦在了 协方差矩阵对角化 问题上。

由上文知道,协方差矩阵 是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:

1)实对称矩阵不同特征值对应的特征向量必然正交。

2)设特征向量 重数为 ,则必然存在 个线性无关的特征向量对应于 ,因此可以将这 个特征向量单位正交化。

由上面两条可知,一个 行 列的实对称矩阵一定可以找到 个单位正交特征向量,设这 个特征向量为 ,我们将其按列组成矩阵:

则对协方差矩阵 有如下结论:

其中 为对角矩阵,其对角元素为各特征向量对应的特征值(可能有重复)。

结合上面的公式:

其中, 为对角矩阵,我们可以得到:

是协方差矩阵 的特征向量单位化后按行排列出的矩阵,其中每一行都是 的一个特征向量。如果设 按照 中特征值的从大到小,将特征向量从上到下排列,则用 的前 行组成的矩阵乘以原始数据矩阵 ,就得到了我们需要的降维后的数据矩阵 。

总结一下PCA的算法步骤:

设有 条 维数据。

1)将原始数据按列组成 行 列矩阵X

2)将 的每一行(代表一个特征)进行零均值化,即减去这一行的均值

3)求出协方差矩阵

4)求出协方差矩阵 的特征值及对应的特征向量

5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前 行组成矩阵

6) 即为降维到 维后的数据

这里以上文提到的:

,将它们表示成矩阵形式:

我们用PCA方法将这组二维数据其降到一维。

为了后续处理方便,我们首先将每个特征内所有值都减去字段均值,其结果是将每个字段都变为均值为0

因为这个矩阵的每行已经是零均值,这里我们直接求协方差矩阵:

对于矩阵 :

和 分别是特征值和特征向量,

,则:

为了使这个方程式有非零解,矩阵 的行列式必须是 0

即:

则:

分解得:

找到2个特征值, , ,

when :

即:

则:

和 可以取任意值,我们取归一化的 和 ,即: ,

此时 和

when :

即:

则:

和 可以取任意值,我们取归一化的 和 ,即:

此时 和

所以:

可以验证协方差矩阵C的对角化:

最后我们用 的第一行乘以数据矩阵,就得到了降维后的表示:

降维投影结果如下图:

在前面我们学习了一种有监督的降维方法——线性判别分析(Linear Dscriminant Analysis,LDA)。LDA不仅是一种数据压缩方法还是一种分类算法,LDA将一个高维空间中的数据投影到一个低维空间中去,通过最小化投影后各个类别的类内方差和类间均值差来寻找最佳的投影空间。

本文介绍的主成分分析(Principe Component Analysis,PCA)也是一种降维技术,与LDA不同的是,PCA是一种无监督降维技术,因此PCA的主要思想也与LDA不同。LDA是一种有监督的分类兼降维技术,因此其最大化均值差最小化类内差的思想够保证在降维后各个类别依然能够很好地分开。但PCA只用来降维而无需分类,因此PCA需要考虑的是如何在降维压缩数据后尽可能的减少数据信息的损失。在PCA中使用协方差来表示信息量的多少,至于为什么能这么表示后面再进行介绍。下面我们从一些基本的线代知识开始。

在进行数据分析时我们的数据样本经常被抽象为矩阵中的一组向量,了解一些线代基础知识理解PCA非常重要,但在这里我们并不准备也不可能将所有的线代知识都罗列以便,因此这里我们仅会复习一些对理解PCA较为重要的东西。更多线代的内容可参考下面几个链接:

为了方便,我们这里以一个二维平面为例。

在前面我们说了,在数据处理时我们经常讲一个样本数据当作一个向量。在二维平面中,一个向量从不同的角度有不同的理解方式,例如对于向量 (-2, 3) T :

在我们描述任何东西的时候其实都是选择了一个参照系的,也即事物都是相对的,最简单的运动与静止(以静止的事物为参照),说一个有点意思的——人,人其实也是放在一个参考系中的,我们可以将其理解为生物种类系统,抛开这个大的系统去独立的定义人是很难让人理解的。向量也是这样的,虽然我们前面没有指明,但是上面的向量其实是在一个默认坐标系(或称为空间)中的,也即x,y轴,但是在线性代数中我们称其为基。在线代中任何空间都是由一组线性无关的(一维空间由一个基组成)基向量组成。这些基向量可以组成空间中的任何向量。

现在假设我们有如下一个矩阵相乘的式子:

因此,上面的例子可以有两种理解方式:

(1)如果我们将值全为1对角方阵视为标准坐标系,则它表示在 i=(1, -2) T 和 j=(3, 0) T 这组基底下的坐标 (-1, 2) T 在基底 (1, 0) T 、(0, 1) T 下的坐标,如下:

当我们讨论向量 (-1, 2) T 时,都隐含了一个默认的基向量假设:沿着x轴方向长度为1的 i,沿着y轴长度为1的j。

但是,(-1, 2) T 可以是任何一组基底下的向量。例如,他可能是i'=(2,1) T , j'=(-1, 1) T 这组基下的一个向量。此时他在我们默认坐标系 i=(1, 0) T ,j=(0, 1) T 下的计算过程如下:

我们可以从另一个角度理解基地变换的过程:我们先 误认为 (-1, 2) T 是坐标系i=(1, 0) T ,j=(0, 1) T 下的坐标,此时我们通过线性变换[[2, -1], [1, 1]](每个嵌套列表看做一行)把坐标轴i,j(基坐标)分别变换到了新的位置 i1=(2, 1) T , j1=(-1, 1) T (他们也是用默认坐标系表示的),即[2, -1], [1, 1]]。此时我们把“误解”转换成了真正的向量。如下:

在上面我们说了矩阵是一种变换,现在我们继续从这个角度来理解特征值和特征向量。为了方便理解,我们在这里做一个类比——将变换看作物理中的作用力。我们知道一个力必须有速度和方向,而矩阵对一个向量施加的变换也是一样的。考虑一下特征向量的定义:

上面介绍了一些基本的线性代数相关的知识,下面开始介绍PCA的原理。

上面我们讨论了选择不同的基可以对同样一组数据给出不同的表示,而且如果基的数量少于向量本身的维数,则可以达到降维的效果。但是我们还没有回答一个最最关键的问题:如何选择基才是最优的。或者说,如果我们有一组N维向量,现在要将其降到K维(K小于N),那么我们应该如何选择K个基才能最大程度保留原有的信息?

要完全数学化这个问题非常繁杂,这里我们用一种非形式化的直观方法来看这个问题。

为了避免过于抽象的讨论,我们仍以一个具体的例子展开。假设我们的数据由五条记录组成,将它们表示成矩阵形式:

其中每一列为一条数据记录,而一行为一个字段。为了后续处理方便,我们首先将每个字段内所有值都减去字段均值,其结果是将每个字段都变为均值为0(这样做的道理和好处后面会看到)。中心化的数据为:

通过上一节对基变换的讨论我们知道,这个问题实际上是要在二维平面中选择一个方向,将所有数据都投影到这个方向所在直线上,用投影值表示原始记录。这是一个实际的二维降到一维的问题。

那么如何选择这个方向(或者说基)才能尽量保留最多的原始信息呢?一种直观的看法是:希望投影后的投影值尽可能分散。

以上图为例,可以看出如果向x轴投影,那么最左边的两个点会重叠在一起,中间的两个点也会重叠在一起,于是本身四个各不相同的二维点投影后只剩下两个不同的值了,这是一种严重的信息丢失,同理,如果向y轴投影最上面的两个点和分布在x轴上的两个点也会重叠。所以看来x和y轴都不是最好的投影选择。我们直观目测,如果向通过第一象限和第三象限的斜线投影,则五个点在投影后还是可以区分的。

下面,我们用数学方法表述这个问题。

对于上面二维降成一维的问题来说,找到那个使得方差最大的方向就可以了。不过对于更高维,还有一个问题需要解决。考虑三维降到二维问题。与之前相同,首先我们希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择,继而我们选择第二个投影方向。

如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该是“几乎重合在一起”,显然这样的维度是没有用的,因此,应该有其他约束条件。 从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。

可以看到,在字段均值为0的情况下,两个字段的协方差简洁的表示为其内积除以元素数m。

当协方差为0时,表示两个字段完全独立。为了让协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。

至此,我们得到了降维问题的优化目标: 将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。

上面我们导出了优化目标,但是这个目标似乎不能直接作为操作指南(或者说算法),因为它只说要什么,但根本没有说怎么做。所以我们要继续在数学上研究计算方案。

我们看到,最终要达到的目的与字段内方差及字段间协方差有密切关系。因此我们希望能将两者统一表示,仔细观察发现,两者均可以表示为内积的形式,而内积又与矩阵相乘密切相关。于是我们来了灵感:

假设我们只有a和b两个字段,那么我们将它们按行组成矩阵X:

然后我们用X乘以X的转置,并乘上系数1/m:

根据矩阵相乘的运算法则,这个结论很容易被推广到一般情况:

设我们有m个n维数据记录,将其按列排成n乘m的矩阵X,设C=1/m(XX T ),则C是一个对称矩阵,其对角线分别个各个字段的方差,而第i行j列和j行i列元素相同,表示i和j两个字段的协方差。

根据上述推导,我们发现要达到优化目前,等价于将协方差矩阵对角化:即除对角线外的其它元素化为0,并且在对角线上将元素按大小从上到下排列,这样我们就达到了优化目的 。这样说可能还不是很明晰,我们进一步看下原矩阵与基变换后矩阵协方差矩阵的关系:

设原始数据矩阵X对应的协方差矩阵为C,而P是一组基按行组成的矩阵,设Y=PX,则Y为P对X做基变换后的数据。设Y的协方差矩阵为D,我们推导一下D与C的关系:

现在所有焦点都聚焦在了协方差矩阵对角化问题上,有时,我们真应该感谢数学家的先行,因为矩阵对角化在线性代数领域已经属于被玩烂了的东西,所以这在数学上根本不是问题。

由上文知道,协方差矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有一系列非常好的性质:

1)实对称矩阵不同特征值对应的特征向量必然正交。

2)设特征向量λ重数为r,则必然存在r个线性无关的特征向量对应于λ,因此可以将这r个特征向量单位正交化。

则对协方差矩阵C有如下结论:

以上结论不再给出严格的数学证明,对证明感兴趣的朋友可以参考线性代数书籍关于“实对称矩阵对角化”的内容。

到这里,我们发现我们已经找到了需要的矩阵P:P = E T

P是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是C的一个特征向量。如果设P按照Λ中特征值的从大到小,将特征向量从上到下排列,则用P的前K行组成的矩阵乘以原始数据矩阵X,就得到了我们需要的降维后的数据矩阵Y。

PCA的特征向量的求解除了使用上述最大化方差的矩阵分解方法,还可以使用最小化损失法,具体可参见: 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA) 。

总结一下PCA的算法步骤:

设有m条n维数据。

LDA和PCA都用于降维,两者有很多相同,也有很多不同的地方,因此值得好好的比较一下两者的降维异同点。

首先我们看看相同点:

我们接着看看不同点:

参考:

PCA的数学原理

线性代数的直觉

线性判别分析LDA原理总结

西瓜书 第10章讲解的是 降维 和 度量学习 的相关内容

对于数组和 Series 而言,维度就是 shape 返回的数值。 shape 中 返回了几个数字,就是几维。

索引以外的数据,不分行列的称之为一维,有行列之分的称之为二维,也称之为表。一张表最多是二维的。

数组中的每张表可以是一个特征矩阵或者一个 DataFrame 。 行是样本,列是特征。

对于图像而言,维度就是图像中特征向量的数量。特征向量可以理解成坐标轴。

降维算法中降维指的是:降低特征矩阵中特征的数量。

sklearn 中的降维算法在 decomposition 中。 模块的本质是矩阵分解模块。 代表是 SVD 奇异值分解。

主成分分析中的常见的模块:

高级矩阵分解

在降维的过程中,会减少特征的数量,则意味着需要删除数据: 减少特征数量、保留大部分有效信息

如果一个特征的方差

为了得到样本方差的无偏估计。 为什么样本方差的分母是n-1

通过一个 二维降低到一维 的栗子来说明降维的实现过程

上面原始数据中,两个特征的均值都是 2 ,方差都是​;总方差都是 2

逆时针旋转 45 度之后变成了

的均值和方差都是 0 ; 的均值是 ;方差是 2 。总方差也是 2

将二维矩阵和 n 维矩阵进行类比,掌握降维算法的基本过程:

参考文章 PCA数学原理

两个 维度相同 向量(机器学习中一般是指列向量)的内积被定义成

内积将两个向量映射成为一个实数

, 为它们之前的夹角, 投影的矢量长度 是 表示模,也就是A线段的标量长度。内积的另一种表示形式为

也就是A到B的投影长度乘以B的模。 特殊情况下,如果B的模是1 ,那么内积结果就是 A到B的投影长度

一个二维向量可以对应二维笛卡尔直角坐标系中从原点出发的一个有向线段。代数中常用线段的终点坐标表示向量,例如下面的(3,2)。

实际上向量(3,2)表示的是在X轴上的投影是3,Y轴上的投影是2。

在二维坐标系中,向量(x,y)实际上表示为线性组合:

那么,(1,0)和(0,1)可以看做是二维空间中的 一组基

例如,(1,1)和(-1,1)也可以成为一组基。一般来说,我们希望基的模是1,因为从内积的意义可以看到,如果基的模是1,那么就可以方便的用向量点乘基而直接获得其在新基上的坐标了。上面的基变成了 ,即除以了各自的模 。

那么(3,2)在这组基下的新坐标为

矩阵的两行表示两个基,乘以原来的向量,得到新基下的坐标。

一般的,如果我们有 M 个 N 维向量,想将其变换为由 R 个 N 维向量表示的新空间中

两个矩阵相乘的意义是:将 右边矩阵中的每列列向量 变换到 左边矩阵中的每一行行向量作为基 所表示的空间中去。

将所有的字段减去字段均值 ,结果变成了每个字段都变成了均值为 0

一个字段的方差 可以看做是每个元素与字段均值 的差的平方和的均值

由于每个字段的 均值变成了0 ,那么 总的方差 可以简写成

数学上可以用两个字段的协方差表示其 相关性

当均值为0,上面的协方差公式可以表示为

当样本数较大时,不必在意其是 m 还是 m-1,为了方便计算,我们分母取 m。

当协方差为0,表示两个字段完全独立;为了让协方差为0,第二个基应当在和第一个基正交的方向上( 垂直方向

协方差矩阵是

原始的协方差矩阵是C,P是一组基按行组成的矩阵,设Y=PX,Y对应的协方差矩阵是D

由于 C是一个对称矩阵 ,满足:

e 代表的是单位向量,对于协方差矩阵 C 的结论如下:

那么P是协方差矩阵的特征向量单位化后按行排列出的矩阵,

解决方法:希望投影后的投影值尽量地分散。满足的条件是:

比较大,所以使用 作为基

重要的参数是 n_components ,降维之后需要保留的特征数量,取值在 [0, min(Xshape)] 。如果不填写,默认是 min(Xshape)

如何取出每种鸢尾花的两个特征中的数据

主要是两个属性

当 n_components 中不填写任何值,默认是min(Xshape)个特征。通过累计可解释性方差贡献率曲线来选择最好的 n_components 。曲线横纵坐标分别是:

n_components 中不仅可以填写数字,还可以通过极大似然估计 MLE 来自选超参数

输入 0-1 之间的浮点数,并且配合参数 svd_solver="full" ,表示希望降维后的可解释方差占原始数据的信息比例。

PCA在机器学习中很常用,是一种无参数的数据降维方法。PCA步骤:

将原始数据按列组成n行m列矩阵X将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值求出协方差矩阵求出协方差矩阵的特征值及对应的特征向量将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵PY=PX即为降维到k维后的数据1 PCA的推导

PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

我们知道PCA是一种数据降维的方法,在降低维度的过程中,我们当然想要保留更多的特征,PCA就是经过数学推导,保留最多特征同时降维的方法。

在推导之前要先知道几个基础知识:

内积与投影

两个维数相同的向量的内积被定义为:

假设A和B是两个n维向量,我们知道n维向量可以等价表示为n维空间中的一条从原点发射的有向线段,为了简单起见我们假设A和B均为二维向量,则A=(x1,y1),B=(x2,y2)。则在二维平面上A和B可以用两条发自原点的有向线段表示,见下图:

现在我们从A点向B所在直线引一条垂线。我们知道垂线与B的交点叫做A在B上的投影,再设A与B的夹角是a,则投影的矢量长度为|A|cos(a),其中|A|是向量A的模,也就是A线段的标量长度。

到这里还是看不出内积和这东西有什么关系,不过如果我们将内积表示为另一种我们熟悉的形式:

现在事情似乎是有点眉目了:A与B的内积等于A到B的投影长度乘以B的模。再进一步,如果我们假设B的模为1,即让|B|=1,那么就变成了:

也就是说,设向量B的模为1,则A与B的内积值等于A向B所在直线投影的矢量长度!这就是内积的一种几何解释,也是我们得到的第一个重要结论。在后面的推导中,将反复使用这个结论。

下面我们继续在二维空间内讨论向量。上文说过,一个二维向量可以对应二维笛卡尔直角坐标系中从原点出发的一个有向线段。例如下面这个向量:

在代数表示方面,我们经常用线段终点的点坐标表示向量,例如上面的向量可以表示为(3,2),这是我们再熟悉不过的向量表示。

我们列举的例子中基是正交的(即内积为0,或直观说相互垂直),但可以成为一组基的唯一要求就是线性无关,非正交的基也是可以的。不过因为正交基有较好的性质,所以一般使用的基都是正交的。

3 基变换的矩阵表示

一般的,如果我们有M个N维向量,想将其变换为由R个N维向量表示的新空间中,那么首先将R个基按行组成矩阵A,然后将向量按列组成矩阵B,那么两矩阵的乘积AB就是变换结果,其中AB的第m列为A中第m列变换后的结果。(新基按行,向量按列)

特别要注意的是,这里R可以小于N,而R决定了变换后数据的维数。也就是说,我们可以将一N维数据变换到更低维度的空间中去,变换后的维度取决于基的数量。因此这种矩阵相乘的表示也可以表示降维变换。

最后,上述分析同时给矩阵相乘找到了一种物理解释:两个矩阵相乘的意义是将右边矩阵中的每一列列向量变换到左边矩阵中每一行行向量为基所表示的空间中去。更抽象的说,一个矩阵可以表示一种线性变换。很多同学在学线性代数时对矩阵相乘的方法感到奇怪,但是如果明白了矩阵相乘的物理意义,其合理性就一目了然了。

4 协方差矩阵与优化目标

我们从上面的矩阵乘法与基变换可以看出,当新基的维数小于原来的维数时可以做到数据的降维,但是究竟如何选择新基就是我们现在面临的问题,我们想要选择一个维数更小的新基,同时新基保留有更多的信息。我们知道矩阵向新基投影的形式,也就是PCA是将一组N维的特征投影到K维(K<n)同时保留更多的特征。 p=""></n)同时保留更多的特征。>

那么怎么衡量更多的特征,也就是投影后尽量少的重叠,投影值尽可能分散。

协方差

从二维到一维的降维,只需要找到一个一维基使得方差最大,但是三维降到二维呢?我们需要找到两个基让这个三维数据投影到两个基上,如果我们找方差最大的两个基,会发现他们完全一样或者线性相关,这和一个基没什么区别,不能表达更多的信息,所以我们需要添加限制条件,我们希望这两个基彼此线性无关,扩展到K个基也是一样。

当协方差为0时,表示两个字段完全独立。为了让协方差为0,我们选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。

至此,我们得到了降维问题的优化目标:将一组N维向量降为K维(K大于0,小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的K个方差)。

关于PCA的贡献率与K的选择

在我的文章特征值和特征向量中说过,特征值反映了矩阵对于特征向量的拉伸程度,只有拉伸而没有旋转,也就是在特征向量方向上的作用程度,所以在PCA中我们选取前K个特征向量组成新基进行投影,就是因为原特征在前K个特征向量有最大的作用程度。

投影过后可以保留更多的信息,作用程度是用特征值表示的,所以我们可以使用下面的式子表示贡献率,贡献率是表示投影后信息的保留程度的变量,也就是特征值的总和比上前K个特征值,一般来说贡献率要大于85%。

3221 技术原理

主成分分析方法(PCA)是常用的数据降维方法,应用于多变量大样本的统计分析当中,大量的统计数据能够提供丰富的信息,利于进行规律探索,但同时增加了其他非主要因素的干扰和问题分析的复杂性,增加了工作量,影响分析结果的精确程度,因此利用主成分分析的降维方法,对所收集的资料作全面的分析,减少分析指标的同时,尽量减少原指标包含信息的损失,把多个变量(指标)化为少数几个可以反映原来多个变量的大部分信息的综合指标。

主成分分析法的建立,假设xi1,xi2,…,xim是i个样品的m个原有变量,是均值为零、标准差为1的标准化变量,概化为p个综合指标F1,F2,…,Fp,则主成分可由原始变量线性表示:

地下水型饮用水水源地保护与管理:以吴忠市金积水源地为例

计算主成分模型中的各个成分载荷。通过对主成分和成分载荷的数据处理产生主成分分析结论。

3222 方法流程

1)首先对数据进行标准化,消除不同量纲对数据的影响,标准化可采用极值法 及标准差标准化法 ,其中s= (图33);

图33 方法流程图

2)根据标准化数据求出方差矩阵;

3)求出共变量矩阵的特征根和特征变量,根据特征根,确定主成分;

4)结合专业知识和各主成分所蕴藏的信息给予恰当的解释,并充分运用其来判断样品的特性。

3223 适用范围

主成分分析不能作为一个模型来描述,它只是通常的变量变换,主成分分析中主成分的个数和变量个数p相同,是将主成分表示为原始变量的线性组合,它是将一组具有相关关系的变量变换为一组互不相关的变量。适用于对具有相关性的多指标进行降维,寻求主要影响因素的统计问题。

维基百科介绍:主成分分析(英语:Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。

说了和没说一样……我们还是通过一个简单的案例引出PCA的作用吧。

如果我们在6个小鼠样本中检测一个基因 Gene1 的表达

我们很容易看出来,基因 Gene1 在小鼠1-3中表达比较相似,而在小鼠4-6中表达比较相似

如果同时检测两个基因

我们可以将不同小鼠样本标记在二维坐标轴中,并且看出小鼠1-3的整体表达比较相似,而小鼠4-6的整体表达比较相似

将基因数目扩增到3个时候,我们依然可以通过三维坐标轴标记出不同样本的分布

但是如果将基因数目增加到4个或4个以上时候,很难继续增加坐标轴的维度来绘图(思维空间已经超出一般人的认知了)。

所以 我们可以通过PCA的降维方法来处理这种4维或者多维数据,将其绘制为二维图像来比较不同样本之间的关系

PCA是如果进行降维的呢?

首先我们只检测6个不同小鼠的2个基因,那么我们可以分别计算出所有小鼠 Gene1 和 Gene2 的平均值(红色叉号)。根据这些均值,可以获得所有数据的中心(蓝色叉号)。

然后我们将数据整体移动,数据的中心于原点重合。虽然所有的数据点都移动了,但是每个数据点的相对距离没有改变,只是数据的中心变为原点 (0,0) 。

接下来,我们会绘制一条通过原点的直线。这条直线可以360°旋转,直至同数据匹配最佳。

那么如何判断 最佳匹配 呢?这个标准是——

PCA将所有的数据点投射到这条直线上,并且计算这些数据点投射到直线上的距离(使这些距离最小)和投射点到原点的距离(使这些距离最大)

实际上计算c会简单一些,所以PCA一般是通过计算所有数据点到原点距离平方和sum( )最大值来寻找最优解。

如下图所示,分别将这6个样本的投射点到原点距离标记为d1,d2,,d6,然后计算这些点的平方和,这些平方和也被称为SS距离,即 。

获得SS最大值时的这条线,被称为 PC1 。假设PC1这条线的斜率为025,这意味着每当我们在 Gene1 前进4个单位时,PC1上的数据点在 Gene2 上就增加1个单位。

这也意味着这几个样本在 Gene1 上更加分散,而在 Gene2 上分散程度较小。

根据鸡尾酒配方来思考PC1,为生成PC1,我们加入了4份 Gene1 和1份 Gene2 ,这也说明在描述数据的分散程度方面, Gene1 更加重要。

在数学上,这种鸡尾酒配方被称为 Gene1 和 Gene2 的线性组合,或也可以说“PC1是几个变量的线性组合”。

在PCA中,将SS称为PC1的 特征值 (Eigenvalue);PC1特征值的平方被称为PC1的 奇异值 (Singular Value)。

根据上面的假设,PC1的斜率为025,如果下图的红色箭头是一个长度单位,那么它是有097个Gene1和0242个Gene2构成,所以 被称为 特征向量 (Eigenvector)或奇异向量(Singular vector)。

而每个基因的比例,被称为PC1的 载荷分数 (loading score)

在二维坐标中,PC2是一条通过原点,并且与PC1 垂直 的直线。

很容易计算出PC2的斜率为-4,那么PC2就是由-0242个Gene1和097个Gene2构成了。

同时,我们也可以计算出PC2的特征值。

旋转坐标轴,将PC1水平,PC2垂直。黑色叉表示原始的样本6,那么在新的坐标系中,Sample6的分布如下图所示。

各个主成分的变异度(Variation)计算,方法是SS除以样本减1。

假如上面那个案例中PC1变异度为15,PC2的变异度为3,那么总变异度为18

因此PC1在总变异中所占的比值为83%,PC2占的总变异为17%。

如果我们有3个基因,根据前面描述的步骤,分别找出PC1、PC2(垂直于PC1)和PC3(同时垂直于PC1和PC2),

同时也可以计算出各个主成分的变异度。

在上面的案例中,只使用PC1和PC2可以解释94%的变异度,所以我们只保留PC1和PC2最终绘图

这样,我们就获得了最终降维之后的结果。

在进行PCA降维之前,需要确保所有数据处于同一标准下。

例如下面这组数据,Math分数是按照百分制统计,而Reading分数是按照十分制统计。

那么我们在计算PC1时可能会得到PC1由099个Math和01个Reading组成,但是这仅仅是由于Math分数本身就是Reading分数的10倍。

所以我们需要 首先将每一个变量除以其所在组的标准差进行标准化处理

上面的那个案例中,我们只有两组观测数据。

绘制完PC1和PC2后,还可以绘制出PC3吗?

根据之前的讲述,PC3是同时垂直于PC1和PC2的。

那么绘制PC3时,基于已有的数据,先去寻找垂直于PC1的直线,只会得到PC2。

寻找垂直于PC2的直线,也只会得到PC1。

所以无法绘制出PC3。

如果上面的案例中,Math和Reading是100%相关的

绘制完PC1后,绘制一条垂直于PC1的PC2时发现,所有的数据投射在PC2的点都是原点,即特征值为0。

这时,PC1能够100%解释所有的变异。所以此时仅有PC1一个主成分。

如果学生数目减少为2,那么数据的分布在二维平面只有2个点,

2个点仅可以构成一条直线,所以PC2的特征值必然为0。

即使增加一个观测指标Gym,如果只有两个学生的话,最终数据在三维空间只有两个点,所以也只会有一个主成分PC1。

扩展一下,如果数据变为3个学生和3个观测指标,最终会有几个主成分呢?

3个学生会产生3个数据点,3点构成一个平面(平面是二维的),所以PC3的特征值必然为0。

因此会产生2个主成分PC1和PC2。

所以, 一组数据进行降维分析时,主成分数最终等于变量数目或样本数目(二者较小的那个),但是上限是特征值大于0的PC数

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/meirong/1048720.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-25
下一篇2023-08-25

随机推荐

  • 妮维雅止汗露 喷雾与走珠 哪个效果更好?

    我觉得两种应该都是差不多的效果,仅仅是在使用方法上有所不同。如果你光用在腋下可以只用走珠,如果你既要用在腋下,又要用在其他部位就可以用喷雾!!!妮维雅的我觉得持续的时间都是比较短的,需要每天都用。止汗露我觉得还是不要天天用哦!!推荐我最近买

    2024-04-15
    62700
  • 精华液一般怎么用 精华液的使用方法

    1、精华液的正确使用方法弄清楚了精华液的使用顺序后,美眉们应正确使用精华液来护理皮肤。首先需要清洁干净面部皮肤,然后取适量的精华液,涂抹的时候尽量避开眼睛,而后用手掌轻轻按压面部的T区和U区部位,由下往上的方式轻柔按压,以确保精华液充分被皮

    2024-04-15
    61900
  • 精华露和精华液的区别

    精华露和精华液是我们常见的美容护肤产品,它们都是一种高浓度的保养品,含有多种活性成分,能够深层滋养肌肤。虽然两者名称相似,但其实它们有着不同的特点和使用方法。从质地上来看,精华露通常是半透明的液体状质地,较为清爽易吸收;而精华液则比较浓稠,

    2024-04-15
    59500
  • 真的黑绷带在哪里买,多少钱能买到

    在挪里买真的黑绷带的价格不一定。因为它的价格需要根据具体购买地点和供需关系等因素综合考虑。一些商家在官方网站或其他平台上进行售卖,提供多样尺寸和价格以供选择。建议您在购买时多询问多比较,在确认质量的前提下寻找更优惠的价格。也可以建议您淘宝等

    2024-04-15
    56300
  • 25岁抗初老护肤品套装推荐

    欧莱雅复颜视黄醇精粹抗皱紧致水乳、资生堂悦薇珀翡紧颜亮肤水乳、兰蔻小黑瓶全新肌底精华液1、欧莱雅复颜视黄醇精粹抗皱紧致水乳:补水,保湿,提拉紧致,抗皱。适用任何肤质,柔肤水是乳白色液体质地,带有一点点粘稠感,保湿效果好;乳液是乳白色液体质地

    2024-04-15
    47500
  • 哪个牌子的防晒霜效果最好

    哪个牌子的防晒霜效果最好  哪个牌子的防晒霜效果最好,被天气摧残的脸是可以通过护肤改善的,改变皮肤状况也会让我们更加健康,简简单单就能完成,轻轻松松就可以打造完美妆容,学会哪个牌子的防晒霜效果最好,技巧

    2024-04-15
    46400
  • 雪露紫活悦光采眼霜和雅斯兰黛眼霜哪个好

    眼霜是保养眼部肌肤的必备品,很多人常常会感到眼部干燥、细纹增多等问题。在市场上有很多种不同的产品,如雪露紫活悦光采眼霜和雅斯兰黛眼霜。这两款产品哪个更好呢?我们来看看它们的功效成分。雪露紫活悦光采眼霜中包含的紫金盏精华能够深层滋润肌肤,并有

    2024-04-15
    46400

发表评论

登录后才能评论
保存