特征转换方法比较(PCA、ICA、LDA)
随着机器学习和数据科学的发展,大数据的分析与处理在许多领域得到了应用。这通常需要收集很大的数据,并对多维数据进行观测,然而特征越多不仅仅会增加研究者的分析工作量和难度,同时随着特征的增加,为了不引发维度灾难,对数据的需求也会以指数速度增长。为此很多的学者对此进行研究发现特征之间存在相关性,做了很多降维的工作,并提出了许多优秀的特征转换方法,如主成分分析(PCA),独立成分分析(ICA),线性判别分析(LDA)等,本文主要对目前应用的较多的PCA、ICA、LDA的方法原理进行总结,并比较其方法的异同点。
一、主成分分析(PCA)
1、概念
PCA(Principal Component Analysis),即主成分分析方法,是一种使用最广泛的数据降维算法。PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的,依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。
图一 PCA坐标轴转换示例(二维)
2、计算步骤
PCA的主要计算步骤分为以下5步(假设有m条n维特征的数据):
(1)、去平均值,即每一位特征减去各自的平均值;
(2)、计算协方差矩阵;
(3)、计算协方差矩阵的特征值与特征向量;
(4)、对特征值从大到小排序,并保留最大的个特征向量;
(5)、将数据转换到个特征向量构建的新空间中;
而为何PCA可以找到k维理想特征呢?其来自于两种解释:最大方差理论及最小化降维造成的损失,由于非本文介绍重点,详细可见参考文献[1]。
二、独立成分分析(ICA)
1、概念
独立成分分析在很多的领域都得到了应用,其本质在于认为采集到的信号是由多个原独立的成分根据不同的权重加权求和得到的结果,如:
可以变换得到:
由上式可得,ICA需要通过X去计算S和W两个未知量,用求解未知量的方法无法获得两个解,为此作者做了个约束,通过对W迭代求解的方法,获得一组S和W,使其生成的X在这组样本中出现的概率最大,则是最优的迭代效果,这样的方法有很多,而且不同求取最优化的方法和不同的初始化可能会收敛得到不同解,原文中作者用了极大似然估计法,所以下文主要介绍的是这个方法。
设记录随机变量X的值m次,则形成的数据集:
极大似然估计去估计的是一个概率,为此我们需要将x的概率转换为对s的概率问题,即:
要对整个数据集进行预测,则数据集出现概率式为:
由于要进行迭代,直接对L计算偏导比较复杂,对两端取自然对数:
对lnL求偏导的过程比较复杂,详细可见原文推导,之后获得偏导数的简化式为:
其中Z与选取的ps(wx)方法有关。
W的更新公式为:
2、计算步骤
在实际使用的过程中,ICA虽然简洁但是很难收敛到一个合理的结果,为此在实际应用中应用的比较多的是FastICA,其计算步骤与如下:
(1)、对采集样本去均值和白化处理;
(2)、设置迭代次数,初始化权重W;
(3)、正交化,这是避免提取出重复的源信号s;
(4)、迭代权重,对迭代权重归一化;
(5)、判断是否收敛,没有的话返回(3)继续,直到收敛为止;
三、线性判别分析(LDA)
1、概念
线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD),是模式识别的经典算法,它是在1996年由Belhumeur引入模式识别和人工智能领域的。线性鉴别分析的基本思想是将高维的模式样本投影到最佳鉴别矢量空间,以达到抽取分类信息和压缩特征空间维数的效果,投影后保证模式样本在新的子空间有最大的类间距离和最小的类内距离,即模式在该空间中有最佳的可分离性。因此,它是一种有效的特征抽取方法。使用这种方法能够使投影后模式样本的类间散布矩阵最大,并且同时类内散布矩阵最小。就是说,它能够保证投影后模式样本在新的空间中有最小的类内距离和最大的类间距离,即模式在该空间中有最佳的可分离性。
其通过Fisher鉴别准则表达式来判别最佳分离性,其式子为:
2、计算步骤
LDA和PCA的计算步骤存在了相似性,与其不同的是LDA是有监督过程,其计算步骤如下(假设有m条n维特征的数据):
(1)、对数据进行标准化处理;
(2)、对每一个类别计算n维均值向量及总体样本的均值向量;
(3)、计算类间离散度矩阵Sb和类内离散度矩阵Sw,即:
以上只是一种类间离散度矩阵Sb和类内离散度矩阵Sw的计算方法,也可以通过加入先验概率来构建矩阵。
(4)、计算矩阵Sw^(-1)Sb的特征值以及对应的特征向量;
(5)、对特征值从大到小排序,并保留k最大的个特征向量;
(6)、将数据转换到k个特征向量构建的新空间中;
四、异同点比较
在实际应用中,通常很难用一个实验去比较三种方法的优越性,而且PCA做为一种稳定的无监督方法,在使用中也经常会和其他两种方法放在一起应用。如何在不同的数据中有效的应用这些方法,也一直是研究者在总结研究的工作。
1、通用性比较:
相比于其他的两种方法,PCA具有较强的通用性。与ICA相比,PCA没有权重初始化和优化方法不同易收敛到不同的值的独立成分的问题,容易获得稳定的主成分。同时与LDA相比,PCA不需要去太过在意数据本身的类别信息,在预测问题中,可以加入测试数据一起进行降维,减少训练和测试数据间的分布差异。同时对于小样本的数据预测上,PCA比LDA具有更强的鲁棒性,不会过拟合训练数据。
PCA、LDA的假设上都假设了数据的分布为高斯分布,为此在一些非高斯数据上,这两种方法的降维效果不一定好,而ICA假设的是非高斯分布,反而在高斯分布的数据上取得较差的效果。
2、降维后数据比较:
PCA与LDA在后面的几个步骤基本上是相同的,可以获得1~n维有排序关系的特征,一般情况下,排序越前的特征所包含的信息量越高。PCA旨在于去除原始数据中的冗余特征,是的投影在各个维度的方差尽可能大,而且是相互正交的。而LDA使得数据的类内距离小,类间距离大,较为关注的是样本的分类问题,其不保证投影到的新坐标系是正交的,也就是不同的数据之间可能还存在一定的相关性。与前者不同的是,ICA并不认为随机信号最有用的信息体现在类间或是最大方差里,而是构成样本集的独立成分,实际应用中ICA并不能起到降维的效果,也不单独使用,通常会和PCA或者白化处理结合使用。ICA的输出维数和输入相同,相互独立,没有排序关系,在某种意义上更具有区分度。其是一种数据预处理方式,在因果关系分析问题中应用广泛。
综上,如何在不同的应用场景去应用上述方法,是一个经验性的问题,通常情况下,除了以工程的需求,工程中所提供的数据为出发点进行分析选择外,根据原理去做尝试,并多种方法结合使用也可以获得较好的数据预处理方法。
参考文献:
[1] Microstrong. 主成分分析(PCA)原理详解[N]. 知乎, 2018-06-08.
[2] JerryLead.主成分分析(Principal components analysis)-最大方差解释[N]. 博客园, 2011-04-18.
[3] 未济2019.史上最直白的ICA教程之一[N]. CSDN, 2015-12-11.
[4] warmyellow.线性判别分析(Linear Discriminant Analysis, LDA)算法分析[N]. CSDN, 2010-04-06.