注:这里说的LDA实际上讲的是Fisher linear discriminant analysis

在machine learning领域,PCA和LDA都可以看成是数据降维的一种方式。但是PCA是unsupervised,也就是说不需要知道sample对应的label,而LDA是supervised,需要知道每一个数据点对应的label。下面分别解释PCA和LDA的基本原理

1.PCA

PCA被广泛用于数据降维处理,在PRML书上写道,PCA有两种定义的方式,其中一种是将PCA定义为一种正交投影,使得原始数据在投影子空间的各个维度的方差最大化。下面我们就以这个定义来推导PCA。

考虑一组观测数据{xn}, n=1,...,Nn=1,...,N,其中xn是 D 维向量,我们的目标就是把数据投影到一个更低的M维空间上,并且保证原始数据在这个子空间的各个方向上的方差最大化。

首先假设M=1,也就是把所有数据投影到D维空间上的一条直线上。我们可以利用一个D维单位向量u1来表示这条直线。原始数据集PCA与LDA的均值向量 可以表示成 

PCA与LDA

那么投影之后的均值向量可以表示成 PCA与LDA ,投影之后的方差可以表示成 

PCA与LDA
其中 S表示原始数据的协方差矩阵 
按照PCA的定义,下面我们需要最大化这个方差。这是一个典型的有约束优化问题,利用拉格朗日乘子法,假设乘子为 λ1,那么优化问题可以成为 

PCA与LDA

直接对 u1求导,令导数等于0,得到 

   PCA与LDA
也就是说,u1是S中 λ1特征值对应的特征向量。对于(1)式,等式两边同时乘上PCA与LDA,可以得到原始数据在子空间的投影方向上的方差为 

PCA与LDA
要是方差最大,我们知道 λ1就要是S的最大的特征值,同理,u1就要是SS的最大特征值对应的特征向量。

当我们把一维投影空间拓展到M维投影空间,原理都是一样的,比如如果是2维投影空间,那么在第二维投影方向上的方差就是第二大,同时要保证第二维投影向量u2和u1正交。

总的来说,如果要将原始D维数据投影到M维子空间当中,PCA的做法是计算原始数据的协方差矩阵SS,然后求其前MM大特征值对应的特征向量。当然,这里的MM目前都是人工设定的。其实我们也可以自动设定,因为协方差矩阵的特征值实际上表示了各个维度包含的信息量(能量),所以我们可以选择能量百分比为95%(这个值随意选择)所确定的特征值对应的特征向量组成投影子空间。

2. LDA

(这里指的是fisher’s linear discriminant)把线性分类看成是数据降维的一种应用。考虑一个二分类问题,假设输入D维向量x,我们通过线性变换将它投影到一维空间上:PCA与LDA

如果我们对y设定一个阈值,令PCA与LDA的时候,判定为class1,否则判定为class2.那么这其实就是标准的线性分类器。为了能让我们的判定尽可能准确,我们需要让投影之间的两个类之间的差距尽可能大。现在仍旧考虑二分类问题,假设有N1个C1类别的点,有N2个C2C2类别的点,则两个类别的数据的均值分别为 m1、m2。

最简单的分类方法,就是让投影之后的两个类别的均值相差越大越好。也就是说,我们需要选择一个投影方向(单位投影矢量ww),使得下式最大 

PCA与LDA

其中 

PCA与LDA


同时满足 

PCA与LDA

这么一个约束优化问题和上面的PCA类似,解得结果可以得到 

PCA与LDA

也就是说,w是和两类数据中心点构成的矢量平行。如下面左图所示:

 

PCA与LDA

红色和蓝色分别表示两类数据,可以看到,尽管在投影方向w上,两类数据确实有分开,但是还存在很大程度上的交叠。Fisher提出的观点就是在让投影之后的数据尽量分开的同时,也要让两个数据的方差最小,最后变成右图所示的结果。

投影之后数据的类内方差表达式为 

PCA与LDA

其中yn表示xn投影之后的值。我们可以定义总体的类内方差为 PCA与LDAFisher判别准则定义为类间方差和类内方差的比值,也就是 

PCA与LDA

把w的表达式代入得到 

PCA与LDA                             (1)
其中PCA与LDA表示类间协方差矩阵,PCA与LDA表示类内协方差矩阵,也就是 

PCA与LDA                 (2)

PCA与LDA             


对(1)式求导,令导数等于0(为了方便,可以对(1)式两边先取对数,然后求导),可以得到 

PCA与LDA                                             (3)

从(2)式我们可以看到PCA与LDA是始终和 PCA与LDA平行的,同时我们并不在意 w的大小,只在意它的方向,因此,我们可以把 PCA与LDA  和 PCA与LDA 直接去掉,然后再在(3)式两边同时乘上 PCA与LDA,就可以得到 

PCA与LDA   (4)

(4)式表示的就是Fisher线性判别器。找到和合理的投影方向之后,我们可以通过极大似然的方法来估计最优的分类阈值。

 

所以PCA和LDA虽然都用到数据降维的思想,但是监督方式不一样,目的也不一样。PCA是为了去除原始数据集中冗余的维度,让投影子空间的各个维度的方差尽可能大,也就是熵尽可能大。LDA是通过数据降维找到那些具有discriminative的维度,使得原始数据在这些维度上的投影,不同类别尽可能区分开来。下面这张图一定程度上表示了PCA和LDA之间投影选择的差别。

PCA与LDA

相关文章:

  • 2022-01-08
  • 2021-06-29
  • 2021-08-30
  • 2021-12-17
  • 2022-01-16
  • 2022-12-23
  • 2022-01-17
猜你喜欢
  • 2021-08-07
  • 2021-12-13
  • 2021-05-20
  • 2021-07-21
相关资源
相似解决方案