第十一章 特征选择和稀疏学习
11.1子集搜索与评价
1.为什么要进行特征选择?
有两个原因。a.在现实任务中经常会遇到 维数灾难问题,这是由于属性过多造成的,特征选择可以大大减轻这个问题;b.去除不相关特征会降低学习任务的难度。
需要注意的是,特征选择过程必须确保不丢失重要特征,否则后续学习过程会因为重要信息的确实而无法获得好的性能。给定数据集,若学习任务不同,则相关特征的选择也不同,因此,特征选择中的“无关特征”只是指该特征与当前任务无关。(无关特征与冗余特征)
2.如何评价候选特征子集的好坏?
第一个环节是“子集搜索”的问题。前向搜索:给定特定的特征集合,将每一个特征看作一个特征子集,依次选入最优特征,直至后面加入的特征子集都不能使得找到的特征子集更加优秀,停止算法。后向搜索:一个一个剔除无关属性,逐渐减少特征。将前向和后向搜索结合起来,每一轮逐渐增加选定相关特征(这些特征在后续论中将确定不会被剔除)、同时剔除无关特征,这种策略叫做“双向搜索”。注意:这样的策略都是贪心的,因为仅仅考虑了使得本轮选定集合最优,例如在某一轮选的1,2,5的特征,但是第四轮可能是1,2,4,6比所有的1,2,5,*都优秀,可是遗憾的是,若不进行琼剧搜索,则这样的问题无法避免。
第二个环节是”子集评价“的问题。如果是离散属性,可以考虑属性子集的信息增益,信息增益越大,意味着特征在积极A包含的有助于分类的信息越多,因此对于每个候选特征子集,我们可以基于训练数据集D来计算其信息增益,以此作为评价准测。更一般的是,特征子集A实际上确定了对数据集D的一个划分,每个划分区域对应着A上的一个取值,而样本标记信息Y则对应着D的真实划分,通过估算这两个划分的差异,就可以对A进行评价。与Y对应的划分的差异越小,则说明A越好。信息上仅仅是判断这个差异的一种途径,其他能判断两个划分差异的机制都能用于特征子集评价。常见的特征选择方法大致可以分为三类:过滤式、包裹式和嵌入式。
11.2 过滤式选择
过滤式方法先对数据集进行特征选择,然后再训练学习器,特征选择过程与后续学习期无关。这相当于先把特征选择过程对初始特征进行”过滤“,再用过滤后的特征来训练模型。
Relief式一种著名的过滤式特征选择方法,该方法设计了一个”相关统计量“来度量特征的重要性。该统计量是一个向量,其每个分量分别对应于一个初始特征,而特征子集的重要性则是由子集中每个特征所对应的相关统计量分类之和来决定。于是,最终只需要指定一个阈值,然后选择比该阈值大的相关统计量分量所对应的特征即可;也可以指定个预选取的特征的个数为K,然后选择统计量分量最大的K个特征。
11.3包裹式选择
包裹式特征选择直接把最终将要使用的学习器的性能作为特征子集的评价标准。换而言之,包裹式特征子集选择的目的是为了给学习器选择最有利于其性能、”量身定做”的特征子集。
从最终机器学习器性能来看,包裹式特征选择比过滤式特征选择更好,但是另一方面,由于特征选择过程中需要多次训练学习器,因此包裹式特征选择的计算开销通常比过滤式特征选择大得多
11.4嵌入式选择和L1正则化
再过滤式选择和包裹式特征选择方法中,特征选择过程与学习器与学习器训练过程有明显的不同;与此不同嵌入式特征选择是将特征选择过程与学习器训练过程融为一体,两者在同一个优化过程中完成,即在学习器训练过程特征选择中自动地进行特征选择。