机器学习面试之数据降维

PCA(主成分分析)和LDA(线性判别分析,Fisher Linear Discriminant Analysis)都是数据降维的一种方式。但是,PCA是无监督的,而LDA是有监督的。

一、PCA

在PRML书上有两种定义PCA的方式,其中一种将PCA定义为一种正交投影,使得原始数据在投影子空间的各个维度的方差最大化。

对于观测数据x(D维空间),我们的目标是把数据投影到一个更低的M维中。原始数据集的均值向量可以表示成:

投影之后的均值向量可以表示成:

投影之后的方差:

S是协方差矩阵:

PCA是为了最大化该方差,变成一个约束优化问题。引入拉格朗日乘子lambda1,该优化问题变为:

直接对u1求导,令导数为0,得到:

即u1是S中lambda1特征值对应的特征向量。对于上式,等号两边同乘以u1转置,则可得方差为:

因此,lambda1为S的最大的特征值。

此外,我们可以根据各维度的包含的信息量(能量)来选择投影空间的维度M。

二、LDA

LDA(这里指Fisher's Linear Discriminant Analysis)把线性分类看成是数据降维的一种应用。对于二分类问题,假设输入D维向量x,我们通过线性变换把他投影到一维空间:

我们需要让投影之间的两个类之间的差距尽可能的大。假设两类数据的均值为:

最简单的方法是让投影后的两个类的均值相差越大越好,即使得下式最大:

同时满足:

那么解该约束优化问题,得到:

即w是两类数据中心点连线构成的平行矢量,如左图:

但是两类点虽然有分开,但是中间有重叠。Fisher的观点认为,让两类点分开的同时,也要让两类数据的方差最小,最后变成右图。类内方差表示为:

yn为投影后的值

则总体类内方差为:

Fisher判别准则定义为类间方差和类内方差的比值:

把w带入表达式:

其中SB为类间协方差矩阵,Sw为类内协方差矩阵:

对(1)式求导,令导数为0(为了方便,可将该式取对数),得:

从(2)式看出,SBw是始终与m2-m1平行的,同时我们并不在意w的大小,只在意它的方向。因此,可以把(3)中括号中的两项去掉,在(3)式左乘Sw的逆矩阵,就得到:

即Fisher线性判别器。找到合理的投影方向后,可以通过极大似然估计求出最优的分类阈值。

三、PCA与LDA的区别

首先,PCA与LDA的监督方式不同。

第二,他们的目的也不同。PCA是为了去除原始数据中冗余的维度,让投影子空间的各维度的方差尽可能的大,即熵尽可能的大。LDA是通过数据降维找到那些具有判别性的维度,使得原始数据在这些维度上投影,不同类别尽可能的分隔开。下图展示其中的区别。

你可能感兴趣的:(机器学习面试之数据降维)