1 特征选择问题的概念
我们能用很多属性描述一个客观世界中的对象,例如对于描述一个人来说,可以获取到身高、体重、年龄、性别、学历、收入等等,但对于评判一个人的信用级别来说,往往只需要获取他的年龄、学历、收入这些信息。换言之,对一个学习任务来说,给定属性集,其中有些属性可能很关键、很有用,另一些属性则可能没什么用。我们将属性称为“特征” (feature),对当前学习任务有用的属性称为“相关特征” (relevant feature)、没什么用的属性称为“无关特征” (irrelevant feature)。从给定的特征集合中选择出相关特征子集的过程,称为“特征选择” (feature selection)。
特征选择是一个重要的“数据预处理” (data preprocessing) 过程,在现实机器学习任务中,获得数据之后通常先进行特征选择,此后再训练学习器。那么,为什么要进行特征选择呢?
有两个很重要的原因:
我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多造成的,若能从中选择出重要的特征,使得后续学习过程仅需在一部分特征上构建模型,则维数灾难问题会大为减轻。
去除不相关特征往往会降低学习任务的难度,这就像侦探破案一样,若将纷繁复杂的因素抽丝剥茧,只留下关键因素,则真相往往更易看清。
需要注意的是,特征选择过程必须确保不丢失重要特征,否则后续学习过程会因为重要信息的缺失而无法获得更好的性能。给定数据集,若学习任务不同,则相关特征很可能不同,因此,特征选择中所谓的“无关特征”是指与当前学习任务无关。有一类特征称为“冗余特征” (redundant feature),它们所包含的信息能从其他特征中推演出来。例如,考虑立方体对象,若已有特征“底面长”和“底面宽”,则“底面积”是冗余特征,因为它能从前二者得到。冗余特征在很多时候不起作用,去除它们会减轻学习过程的负担。但有时冗余特征会降低学习任务的难度,例如若学习目标是估算立方体的体积,则“底面积”这个冗余特征的存在将使得体积的估算更容易;更确切地说,若某个冗余特征恰好对应了完成学习任务所需的“中间概念”,则该冗余特征是有益的。
2 子集搜索与评价
欲从初始的特征集合中选取一个包含了所有重要信息的特征子集,若没有任何领域知识作为先验假设,那就只好遍历所有可能的子集了;然而这在计算上却是不可行的,因为这样做会遭遇组合爆炸,特征个数稍多就无法进行。可行的做法是产生一个“候选子集”,评价出它的好坏,基于评价结果产生下一个候选子集,在对其进行评价,…… 这个过程持续进行下去,直至无法找到更好的候选子集为止。显然,这里涉及两个关键环节:如何根据评价结果获取下一个候选特征子集?如何评价候选特征子集的好坏?
第一个环节是“子集搜索” (subset search) 问题。给定特征集合{a1,a2,…,ad},我们可将每个特征看作一个候选子集,对这d个候选单特征子集进行评价,假定{a2}最优,于是将{a2}作为第一轮的选定集;然后,在上一轮的选定集中加入一个特征,构成包含两个特征的候选子集,假定在这d−1个候选两特征子集中{a2,a4}最优,且优于{a2},于是将{a2,a4}作为本轮的选定集;…… 假定在第k+1轮时,最优的候选(k+1)特征子集不如上一轮的选定集,则停止生成候选子集,并将上一轮选定的k特征集合作为特征选择结果。这样逐渐增加相关特征的策略称为“前向” (forward) 搜索。类似的,若我们从完整的特征集合开始,每次尝试去掉一个无关特征,这样逐渐减少特征的策略称为“后向” (backward) 搜索。还可将前向与后向搜索结合起来,每一轮逐渐增加选定相关特征 (这些特征在后续轮中将确定不会被去除)、同时减少无关特征,这样的策略称为“双向” (bidirectional) 搜索。
显然,上述策略都是贪心的,因为它们仅考虑了使本轮选定集最优,例如在第三轮假定选择a5优于a6,于是选定集为{a2,a4,a5},然而在第四轮中却可能是{a2,a4,a6,a8}比所有的{a2,a4,a5,ai}都更优。遗憾的是,若不进行穷举搜索,则这样的问题无法避免。
第二个环节是“子集评价” (subset evaluation) 问题。给定数据集DD,假定D中第i类样本所占的比例为pi(i=1,2,…,∣Y∣)。为便于讨论,假定样本属性均为离散型。对于属性子集A,假定根据其取值将D分成了V个子集{D1,D1,…,DV},每个子集中的样本在A上取值相同,于是我们可计算属性子集A的信息增益:
其中信息熵定义为:
信息增益越大,意味着特征子集A包含的有助于分类的信息越多。于是,对每个候选特征子集,我们可基于训练数据集D来计算其信息增益,以此作为评价准则。
更一般的,特征子集A实际上确定了对数据集D的一个划分,每个划分区域对应着A上的一个取值,而样本标记信息Y则对应着对D的真是划分,通过估算这两个划分的差异,就能对A进行评价。与Y对应的划分的差异越小,则说明A越好。信息熵仅是判断这个差异的一种途径,其他能判断两个划分差异的机制都能用于特征子集评价。
将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法。例如将前向搜索与信息熵结合,这显然与决策树算法非常相似。事实上,决策树可用于特征选择,树节点的划分属性所组成的集合就是选择出的特征子集。其他的特征选择方法未必像决策树特征选择这么明显,但它们在本质上都是显式或隐式地结合了某种 (或多种) 子集搜索机制和子集评价机制。
常见的特征选择方法大致可分为三类:过滤式 (filter)、包裹式 (wrapper) 和嵌入式 (embedding)。
3 过滤式选择
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型。
Relief (Relevant Features) [Kira and Rendell, 1992] 是一种著名的过滤式特征选择方法,该方法设计了一个“相关统计量”来度量特征的重要性。该统计量是一个 向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分量之和来决定。于是,最终只需指定一个阈值ττ,然后选择比ττ大的相关统计量分量所对应的特征即可;也可以指定欲选取的特征个数k,然后选择相关统计量分量最大的k个特征。
显然,Relief 的关键是如何确定相关统计量。给定训练集{(x1,y1),(x2,y2),…,(xm,ym)},对每个示例xi,Relief 先在xi的同类样本中寻找其最邻近xi,nh,称为“猜中邻近” (near-hit),在从xi的异类样本中寻找其最近邻xi,nm,称为“猜错邻近” (near-miss),然后,想干统计量对应于属性j的分量为:
从上式可看出,若样本与其猜中近邻在某一属性上的距离小于该样本与其猜错近邻的距离,则说明这一属性对区分同类与异类样本是有益的,于是增大该属性对应的统计量分量;反之,则说明该属性起负面作用,于是减小其对应的统计量分量。最后,对基于不同样本得到的估计结果进行平均,就得到各属性的相关统计量分量,分量值越大,则对应属性的分类能力就越强。
4 包裹式选择
与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价准则。换言之,包裹式特征选择的目的就是为给定学习器选择最有利于其性能、“量身定做”的特征子集。
一般而言,由于包裹式特征选择方法直接针对给定学习器进行优化,因此从最终学习器性能来看,包裹式特征选择比过滤式特征选择更好,但另一方面,由于在特征选择过程中需多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大得多。
LVM (Las Vegas Wrapper) [Liu and Setiono, 1996] 是一个典型的包裹式特征选择方法。它在拉斯维加斯方法 (Las Vegas method) 框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则。该算法是通过在数据集D上,使用交叉验证法来估计学习器L的误差,注意这个误差是在仅考虑特征子集A′时得到的,即特征子集A′中包含的特征数更少,则将A′保留下来。
需注意的是,由于 LVW 算法中特征子集搜索采用了随机策略,而每次特征子集评价都需要训练学习器,计算开销很大,因此算法设置了停止条件控制参数T。然而,整个 LVM 算法是基于拉斯维加斯方法框架,若初始特征数很多(即∣A∣很大) 、T设置较大,则算法可能运行很长时间都达不到停止条件。换言之,若有运行时间限制,则有可能给不出解。
5 嵌入式选择与L1正则化
在过滤式和包裹式特征选择方法中,特征选择过程与学习器训练过程有明显的分别;与此不同,嵌入式特征选择是特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。
给定数据集D={(x1,y1),(x2,y2),…,(xm,ym)},其中x∈R,y∈R。考虑最简单的线性模型回归模型,以平方误差为损失函数,则优化目标为:
当样本特征很多,而样本数相对较少时,上式很容易陷入过拟合。为了缓解过拟合问题,可对上式引入正则化想。若使用L2L2范数正则化,则有:
其中正则化参数λ>0。上式也称为“岭回归” (ridge regression) [Tikhonov and Arsenin, 1977],通过引入L2范数正则化,确能显著降低过拟合的风险。
那么,能否将正则化项中的L2范数替换为Lp范数呢?答案是肯定的。若令p=1,即采用L1范数,则有:
其中正则化参数λ>0。上式称为 LASSO (Least Absolute Shrinkage and Selection Operator) [Tibshirani, 1996]。
L1范数和L2范数正则化都有助于降低过拟合风险,但L1范数还会带来一个额外的好处:它比L2范数更易于获得“稀疏” (sparse) 解,即它求得的w会有更少的非零分量。
注意到w取得稀疏解意味着初始的d个特征中仅有对应着w的非零分量的特征才会出现在最终模型中,于是,求解L1范数正则化的结果是得到了仅采用一部分初始特征的模型;换言之,基于L1正则化的学习方法就是一种嵌入式特征选择方法,其特征选择过程与学习器训练过程融为一体,同时完成。
-
嵌入式
+关注
关注
5068文章
19008浏览量
302974 -
机器学习
+关注
关注
66文章
8373浏览量
132391 -
特征选择
+关注
关注
0文章
12浏览量
7170
原文标题:机器学习中的特征选择
文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论