一个模式识别系统设计的好坏,首要取决于所选用的特征是否较好的反映了正在研究的问题。模式识别问题的第一步是获取特征,获取来的特征被称作原始特征,其中可能有很多特征与我们研究的问题没多大关系,它们在后续的分类中甚至还有可能影响分类性能;另外,就算这些特征都是与研究问题有联系的,但是太多的特征会导致计算量大、推广能力差,所以原始特征必须要进一步清洗得到二次特征,即在保证分类器效果的前提下应该使特征数尽可能的少,主要有两种办法,一种是特征选择,从D个特征中选出d(d小于D)个特征;另一种是特征提取或特征变换,通过把特征空间降维变换得到d个特征。
关于特征选择,需要回答两方面的问题:1)特征的评价准则:如何衡量一组特征对分类的有效性;2)特征的寻优算法:怎样更快地找到性能最优或较好的特征组合。
关于特征提取,通常采用线性变换:
;W是Dxd维变换矩阵;一般情况下的特征变换就是降维变换,即高维空间到低维空间的映射;本篇博客主要来围绕降维来展开介绍,首先当从大家一提到降维就会立马想到的PCA说起。
主成分分析(Principle Component Analysis)最早被提出是用于数据分析上的一种方法,其主要思想就是从一组特征中计算出一组按贡献程度从大到小排列的新特征,这组新特征是原始特征的线性组合,且相互之间不相关。
PCA
设有原始特征p个:
;
设变换后的新特征
是原始特征的线性组合:
(1)
特征标准化,归一化尺度:
(2)
式(1)可写为向量矩阵形式:
(3)
其中,A是变换矩阵;我们的目的就是要求取最优的正交变换矩阵A,使得新特征的方差达到最大。
另外为啥是正交变换,因为正交变换保证了新特征之间的不相关性,并且变换前后特征尺度保持不变;另外新特征的方差越大,样本在该维特征上的差异就越大,表明这一特征就越重要。
对第一个新特征(主成分):
其方差为:
(4)
其中∑是x的协方差矩阵
,可用样本来估计;现在要在公式(2)的约束下求上式方差的最大值,于是利用拉格朗日来求解,就是求下面拉格朗日函数的极值:
(5)
对上式求导并令其等于0,得到最优解
,满足:
(6)
明显的,解
是协方差矩阵∑的特征向量,
是对应的特征值;
将公式(6)代入公式(4):
(7)
由公式(6)和(7)得知,最优解
就是∑的最大的特征值对应的特征向量,而
就是第一主成分或第一主分量,它在原始特征的所有线性组合里是方差最大的。
继续求解第二个主分量,对于第二个主分量,它不仅要方差最大,模为1,而且不能跟第一个主成分相关,即:
(8)
把式(1)和(4)代入到上式有:
(9)
又因为公式(6),所以
与
不相关可以等价为两者正交,即:
(10)
同上,以公式(10)和(2)作为约束条件,最大化
的方差,可以得出∑的第二大特征值对应的特征向量就是
,被称作第二主成分。
x的协方差矩阵∑共有p个特征值
,其中包括相等的以及等于0的,将这些特征值从大到小排列,然后同上,就可以依次得出由相应特征值对应的特征向量构成的主成分
,这些主成分的方差和为:
(11)
等于原始特征的方差和;
对于变换矩阵A,它的每一列都是由∑的特征值对应的特征向量组成,所以A是正交矩阵。
因此,PCA是一种正交变换,它的逆变换是:
有一种更加妥当的方式,需要把主成分进行零均值化或中心化,于是特征变换与其逆变换也可写成如下形式:
其中u是x的均值向量,这样操作以后新特征(主成分)的均值为零,可以计算下主成分的协方差矩阵为:
下图是一个PCA的例子:
往往我们希望使用更少的主分量来描述数据对象,所以假设提取前k个主成分,那么这k个主成分所代表的数据方差和所占的比例为:
很多实际问题中,数据中的大部分信息都集中在较少的几个主成分上,如图所示,可以看出基本上集中在前三个主成分上,所以有时候我们可以根据这个特征值谱图来选择需要使用多少个主成分,即确定k的值,比如上述所占比例达到0.8以上,就可以以此计算出k的值。
PCA这种变换是一种非监督的,想要在模式识别中应用PCA,首先要利用样本估计协方差矩阵,然后求解特征方程,得到各个主分量方向,最后根据特征值谱图确定合适数量的主成分作为新特征,最后将样本投影到这些主成分方向上进行分类或是聚类。
种种迹象表明,选择较少的主成分,不但可以实现降维,而且可以降噪,因为那些排列比较靠后的主成分通常反映了数据中的随机噪声,所以如果想要实现数据的降噪往往可以这么做:把主成分中较小特征值对应的分量置为0,再逆变换回去,就实现了对原始数据的降噪。