机器学习—PCA和LDA

本篇文章介绍一下机器学习中最为常见的数据降维技术PCA和LDA,随着深度学神经网络的发展PCA和LDA的应用几乎越来越少了,尤其是LDA,但是这两种降维的思想还是值得我们学习的。

PCA

主成分分析(PCA)是一种无监督学习的降维方法,其主要思想非常非常简单,即寻找一组正交基对原始数据进行线性变换,使变换后的数据在某一个正交基方向上方差最大,从而尽最大可能地将原始数据投影到该方向上,如下图。
机器学习—PCA和LDA

那么,我们如何找到这组正交基呢?

别急,在寻找正交基之前,我们还需要对数据进行中心化预处理,将所有数据搬移到坐标原点。然后假设在N维空间中的一个单位方向向量为w,我们只需要让所有数据样本在w上的投影方差最大即可。
机器学习—PCA和LDA
上式中中间的一大坨不就是协方差矩阵嘛!不过别忘了,我们还有一个约束条件,w的模是等于1的哦,所有优化问题变为如下:
机器学习—PCA和LDA
好了,到了我们最拿手的拉格朗日乘子法了,我们把约束问题转为无约束优化问题,即:
机器学习—PCA和LDA
呵呵,就这?
我们发现原来方差的最大值居然是协方差矩阵的最大特征值,那这个事就变简单了,我们只需要先求出协方差矩阵的所有特征值,然后对特征值进行降序排序,最后选出前K(假设我们想将数据降到K维)大的特征值所对应的特征向量即可。但是有的人可能会问,特征向量一定是正交的吗?别忘了,我们的协方差矩阵可是实对称矩阵,学过线性代数的都知道实对称阵是一定可以对角化并存在一组正交基。我们只需计算数据在前K大的特征值所对应的特征向量上的投影这个事情就搞定了。

嗯,PCA就完事了。

LDA

哦豁?LDA是啥?PCA不是已经可以降维了吗?
别忘了PCA是一种无监督降维方法,而LDA是一种有监督的降维方法,PCA只能通过数据之间的内在关系进行降维,而LDA则可以尽可能的利用标签的信息对数据进行降维。

线性判别分析(LDA)的思想也很简单,即数据的类间距离最大化,类内距离最小化,说白了,LDA就是想将同类数据紧凑的抱团。

首先根据标签,我们先计算每一类数据各个特征维度的中心,以二分类为例:
机器学习—PCA和LDA
然后计算其投影后的类间距离,
机器学习—PCA和LDA
其中
机器学习—PCA和LDA
然后计算类内方差:
机器学习—PCA和LDA
机器学习—PCA和LDA
我们希望的目标是,类间方差最大,类内方差最小,因此优化目标可以写为:
机器学习—PCA和LDA
令类间散度矩阵为:
机器学习—PCA和LDA
类内散度矩阵为:
机器学习—PCA和LDA
因此优化目标重新写为
机器学习—PCA和LDA
对w求偏导,并令其等于0即可。
机器学习—PCA和LDA
于是得出,
机器学习—PCA和LDA
令,
机器学习—PCA和LDA

机器学习—PCA和LDA
整理得,
机器学习—PCA和LDA
到这里我们发现,目标函数的最大值即为矩阵机器学习—PCA和LDA
的最大特征值,与PCA类似,我们只需要找出前K大的特征值所对应的特征向量即为我们所求的正交变换矩阵。