特征选择

我们能用很多属性描述一个西瓜,例如色泽、根蒂、敲声、纹理等,但有经验的恶人往往只看根蒂、听听敲声就知道是否好瓜。换言之,对一个学习任务来说,给定属性集,其中有些属性可能很关键、很有用,另一些属性则可能没什么用。我们将属性称为“特征”,对当前学习任务有用的属性称为“相关特征”、没什么用的属性称为“无关特征”。从给定的特征集合中选择出相关特征子集的过程,称为“特征选择”。

进行“特征选择”有两个重要原因:

(1)我们在现实任务中经常会遇到维数灾难问题,这是由于属性过多而造成的,若能从中选择出重要的特征,使得后续学习过程仅需一部分特征上构建模型,则维数灾难问题会大为减轻。

(2)去除不相关特征往往会降低学习任务的难度,这就像侦探破案一样,若将纷繁复杂的因素抽丝剥茧,只留下关键因素,则真相往往更易看清。

子集搜索与评价

特征选择过程必须确保不丢失重要特征,否则后续学习过程会因为重要信息的缺失而无法获得好的性能。欲从初始的特征集合中选取一个包含了所有重要信息的特征子集,若没有任何领域知识作为先验假设,那就只好遍历所有可能的子集了;然而这在计算上却是不可行的,因为这样会遭遇组合爆炸,特征个数稍微多就无法进行了。可行的做法是产生一个“候选子集”,评价出它的好坏,基于评价结果产生下一个候选子集,再对其进行评价。这个过程持续下去,直至无法找到更好的候选子集为止。这里涉及两个关键环节:(1)如何根据评价结果获取下一个候选特征子集 (2)如何评价候选子集的好坏

子集搜索

子集评价

其中信息熵定义为

将特征子集搜索机制与子集评价机制相结合,即可得到特征选择方法。例如将前向搜索与信息熵相结合,这显然与决策树算法非常相似。事实上,决策树可用于特征选择,树结点的划分属性所组成的集合就是选择出的特征子集。其他的特征选择方法未必像决策树特征选择这么明显,但它们在本质上都是显式或隐式地结合了某种(或多种)子集搜索机制和子集评价机制。

常见的特征选择方法大致可分为三类:过滤式(Filter)、包裹式(Wrapper)和嵌入式(Embedding)

过滤式选择

过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习器无关。这相当于先用特征选择过程对初始特征进行“过滤”,再用过滤后的特征来训练模型。

包裹式选择

与过滤式特征选择不考虑后续学习器不同,包裹式特征选择直接把最终将要适用的学习器的性能作为特征子集的评价标准。换言之,包裹式特征选择的目的就是为给定学习器学者最有利于性能、“量身定做”的特征子集。

LVW(Las Vegas Wrapper)是一个典型的包裹式特征选择方法。它在拉斯维加斯方法(Las Vegas method)框架下使用随机策略来进行子集搜索,并以最终分类器的误差为特征子集评价准则。算法描述:

过程:

  • else:

嵌入式选择与正则化

在过滤式和包裹式特征选择方法中,特征选择过程与学习器训练过程有明显的分别;与此不同,嵌入式特征选择是将特征选择过程与学习器过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择。

Source

Last updated