Contents
特征选择是一个重要的“数据预处理”(data preprocessing)过程,即从给定的特征集合中选择与当前学习任务相关的特征的过程。特征选择中所谓的“无关特征”是指与当前学习任务无关,有一类特征称为“冗余特征”(redundant feature),他们所包含的信息能从其他特征中推演出来。冗余特征很多时候是不起作用的,它们有时会增加学习过程的负担,有时会降低学习任务的难度。因此冗余特征的情况较为复杂,本文所讲述的内容中的数据集均不涉及冗余特征。
从初始的特征集合中选取包含重要信息的特征子集,若遍历所有可能的子集,会遭遇组合爆炸,可行的做法是产生一个“候选子集”,评价出它的好坏,基于评价结果产生下一个候选子集。。。循环往复。这里会涉及两个关键环节:如何根据评价产生下一候选子集?如何评价子集的好坏?
1.“子集搜索”(subset search)问题:有三种搜索方式:(1)将特征集中的每一个特征均看作一个候选子集,从中选出最优的候选子集,然后再在其中加入一个特征,若加入的特征优于原先的候选子集,则将后者作为本轮的选定集。。。假定在第k+1轮时,最优的候选(k+1)特征子集不如上一轮的选定集,则停止生产候选子集,并将上一轮选定的k特征集合作为特征选择结果。这样逐渐增加相关特征的策略称为“前向”搜索。类似的“后向搜索”是从完整的特征集合开始,每次尝试去掉一个无关特征,这样逐渐减少 特征。也可将二者结合起来,每一轮逐渐增加选定相关特征(这些特征在后续轮中将确定不会被去除)、同时减少无关特征,这样的策略称为“双向搜索”。这三种策略均是贪心的。
2.“子集评价”(subset evaluation)问题,假定样本属性均为离散型,对属性子集A,假定根据其取值将D分成了V个子集,每个子集中的样本在A上取值相同,于是可计算属性子集A的信息增益:
信息熵定义:
信息增益Gain(A)越大,意味着特征子集A包含的有助于分类的信息越多,于是,对每个候选特征子集,我们可基于训练数据集D来计算其信息增益。
将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法。例如将前向搜索与信息熵想结合与决策树算法非常相似,事实上,决策树可用于特征选择。常见的特征选择方法大致可分为三类:过滤式、包裹式和嵌入式。
特征选择方法
1. 过滤式选择
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。
Relief(Relevant Features)是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性。该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分量之和来决定。对每个实例x,在x的同类样本中寻找最近邻,称为“猜中近邻”(near-hit)。在x的异类样本中寻找其最近邻,称为“猜错近邻”(near-miss),相关统计量对应于属性j的分量为:
2. 包裹式选择
与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价标准。包裹式特征选择方法直接针对给定学习器进行优化,从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好。但是包裹式特征选择的计算开销通常比过滤式特征选择大得多。
LVM(Las Vegas Wrapper)是一个典型的包裹式特征选择方法。它在拉斯维加斯方法框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价标准。LVW的计算开销很大,需要设置停止条件控制参数。
3. 嵌入式选择与L1正则化
嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。
以最简单的线性回归模型为例,其以平方误差为损失函数,则优化目标为:
在样本数较少,样本特征很多的时候,容易陷入过拟合,因此可引入正则化来防止过拟合,
若使用L2范数正则化,则此时优化目标的公式即为岭回归(ridge regression),
若是L1范数正则化,则是LASSO回归(Least Absolute Shrinkage and Selection Operator)。
L1范数和L2范数正则化都有助于降低过拟合风险,但前者还会带来一个额外的好处,它比后者更易于获得“稀疏”(sparse)解,即它求得的w会有更少的非零分类。换言之,采用L1范数比L2范数更易于得到稀疏解。
注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是,求解L1范数正则化的结果是得到了仅采用一部分初始特征的模型;所以,基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时完成。
此外,L1正则化问题的求解可使用近端梯度下降(Proximal Gradient Descent,PGD),即在每一步对f(x)进行梯度下降迭代的同时考虑L1范数最小化。通过PGD能使LASSO和其它基于L1范数最小化的方法得以快速求解。