一、学习目标
1.了解数据降维的目的和方法
2.学习特征选择的降维方法
3.学习特征提取的方法
二、数据降维
1.数据降维的原因
从机器学习的角度出发,机器学习算法的计算性和计算复杂度是依赖于数据的特征表达和维度的。就是说,数据维度越低、越准确,算法的效率就越高。
从数据的角度出发,数据的特征并不是全都有用的,总会存在没用的特征,消除这些特征是有必要的,是利于模型去训练的。
比如:
分辨男女性别并不需要出生日期、住址、籍贯等特征信息
压缩图片后,图片特征下降了,但依旧可以进行人脸识别。
2.数据降维的意义
总结一下,其意义就是:
3.数据降维的方法
(1)特征选择:(红色字有误,NLP确实在句法信息、语义信息上使用特征选择,但在词向量获取上,NLP还是用的特征提取)
(2)特征提取:
三、特征选择
特征选择的任务很简单,从D为特征中选出d维特征来作为结果。而难点就在于选取哪些特征是麻烦的。我们可以使用的评判标准有:
整体的流程如下:(三个关键步骤为左下红字部分)
1.特征子集生成
(1)穷举法。但是,我们不好穷举出所有的子集,当D相当大时,计算量会非常大。
于是有各种各样的生成方法:单独最优特征组合、SFS、GSFS、SBS、GSBS、L-R法、广义L-R法。
(2)单独最优特征组合:对每个特征单独进行评估,选择前d个最优的特征为结果。具体描述如下:(注,评估用J函数表示,其评估特征是否是好的特征,后面会细讲其怎么设计)
为了改进这个缺点,才有了后续的方法,后续的方法都是改进,而不能完全解决该问题。
(3)前向序贯(SFS):
(4)广义SFS(GSFS):相比于SFS,其每次是加入k个特征。
有前向和广义前向,就有后向和广义后向的算法。
(5)后向序贯(SBS):相比SFS,每次是减少一个特征:
(6)广义后向序贯(GSBS):
为了解决SFS和SBS的缺点(一旦增加/删除,无法再变),提出了L-R法,同理,也就有广义L-R法。
(7)L-R法:其实就是将SFS和SBS结合在一起:
(8)广义L-R法:
总结一下:(1)穷举法无法处理维度大的情况,于是提出(2)单独最优特征最优组合,但这种方法不考虑组合最优,为了改进,提出了(3)SFS和(5)SBS,而为了每次选取是更优的组合,提出(4)GSFS和(6)GSBS,而改进它们一旦决策就不修改的问题,提出了(7)L-R法和(8)广义L-R法。
2.特征评价标准
也就是如何设计上面使用J函数,有两种框架:
一般来说,我们使用(1)的框架,如果我们的模型很大,对精度要求高,我们可以使用(2)。
这里主讲可分析度量:
其有三种评价准则:距离准则、概率可分、熵可分准则。
(a)距离准则:距离涉及之前说过类内散度矩阵和类间散度矩阵:
于是我们的J函数就可以根据散度矩阵获得:(左下红字的‘重构’指的就是我们选择特征的工作)
(b)概率可分准则:之前也讲过概率相似性的知识,其依据两个概率分布的重叠程度。J的定义如下:
而用例子来展示,就是:
上定义的J函数还有一个g函数,在实际应用中,有许多涉及,这里重点的J函数有两个:
还有最后一个问题,如何获得概率分布,我们有以下方法:
(c)熵可分性准则:就是使用互信息来衡量特征之间的相互依存的强弱。
3.特征选择方法
特征选择方法包含三种方案:Filter、Wrapper、Embedded。这里主要讲Filter和Wrapper框架。
(1)Filter方法:
以一个例子来说明整个过程:
然后先降维:(这里相当于特征子集生成步骤,直接使用了穷举的方法)
然后评估每个特征子集,使用的评价准则都是基于距离准则。然后一维特征,使用针对一维二分类的J函数:
对于二维和三维特征,使用距离准则中的J2函数:(如红字所写,高维的J评分越高,所以需要同维度比较)
最后使用Relief算法来选择特征:
(2)Wraper框架:
一个基本的算法过程如下:
(3)Embedded方法:
四、特征提取
特征提取的方法有如下多种,主要讲解红色的两个:
特征提取的主要思想是使用特征矩阵来压缩输入变量,直观表示如下:(左边为更常见的形式,但右边更符合人的感觉,下面以右图来讲解)
1.两种降维表示途径
直观上看,上下两张图几乎一样,但实际上,原理上不同。在实验中,我们常用上图来进行应用(就是训练出W后,传入一个新的x时可以直接得到降维结果),而下图用于训练过程(如因为其好列目标函数,而且如果用于应用,需要将新的x与数据库一起再计算一次才能得到新的x的降维结果,这是离谱的)
于是,我们想,用矩阵分解的方法来训练,用投影法去应用。于是要考虑的时W与R的关系,而显然的,二者关系为:(W不一定能等于R^-1,因为W和R不一定是方阵)
2.主分量分析(PCA)
其中引入的约束条件就是为了保证得到的R可以转换为W,且可以转置得到,不用求逆。
通过一系列推导,可以得到最优的W是X*X^T的前n个特征向量,特征向量按对应特征值大小来排序,n是人为想要降到几维就几维。整体PCA算法过程如下:
3.线性鉴别分析(LDA)
4。核主成分分析(KPCA)
主要的思想就是,定义Φ,并构建出Φ*Φ^T,用核函数来代替Φ*Φ^T,再按照PCA的方法来一次:
写出特征方程,并转换为Φ的公式:
构建Φ*Φ^T并用核函数K来代替:
整体流程为:
五、总结