特征选择(feature selection)作为一种常见的降维方法是模式识别的研究热点之一。 它是指从原始特征集中选择使某种评估标准最优的特征子集。 其目的是使选出的最优特征子集所构建的分类或回归模型达到和特征选择前近似甚至更
好的预测精度,这不但提高了模型的泛化能力、可理解性和计算效率,同时可降低“维度灾难”的发生频率。

在机器学习领域中,特征选择被认为是跟学习算法紧密联系的一个问题,可表述为:给定一个学习算法 L、一个数据集 S,S 来自一个特征 X1,X2,X3, …,Xn 的具有类别标记 Y 的符合分布的样本空间, 则一个最优特征子集 Xopt 是使得某个评价准则 J=J(L,S)最优的特征子集。 因此,该领域的学者认为特征选择的结果应该用学习算法来评价。
特征选择作为统计学领域的经典问题, 自上个世纪 60 年代起就有学者对此进行了研究;同时,它也是机器学习领域的重要问题:自 90 年代以来,特征选择的研究引起了机器学习领域众多学者前所未有的重视, 主要原因有以下三方面:
1)许多学习算法的性能受到不相关或冗余特征的负面影响。 大多数学习算法所需训练样本的数目随不相关特征的增多而急剧增加。 因此,选择好的特征不仅可以减小计算复杂度 ,提高预测精度 ,而且有助于寻找更精简的算法模型 。
。 所谓大规模,一方面指样本数目的庞大,另一方面指描述样本的特征维数高。
3)随着应用领域的不断扩大,所遇到的数据类型也将不断变化。 因此,特征选择算法的设计需要适应新的数据类型。 正是由于上述原因,特征选择的研究成为模式识别和机器学习领域的重要课题,它具有重要的学术意义和实用价值。

1 特征选择作为搜索问题的 4 个要素
一般而言,特征选择可以看作一个搜索寻优问题。 对大小为 n 的特征集合, 搜索空间由 2n-1 种可能的状态构成 。 Davies 等证明最小特征子集的搜索是一个 NP 问题[5],即除了穷举式搜索,不能保证找到最优解。 但实际应用中,当特征数目较多的时候, 穷举式搜索因为计算量太大而无法应用,因此人们致力于用启发式搜索算法寻找次优解。 一般特征选择算法必须确定以下 4 个要素:1)搜索起点和方向;2)搜索策略;3)特征评估函数;4)停止准则。
1.1 搜索起点和方向
搜索起点是算法开始搜索的状态点,搜索方向是指评价的特征子集产生的次序。 搜索的起点和搜索方向是相关的,它们共同决定搜索策略。 一般的,根据不同的搜索起点和方向,有以下 4 种情况:
1)前向搜索 搜索起点是空集 S,依据某种评价标准,随着搜索的进行,从未被包含在 S 里的特征集中选择最佳的特征不断加入 S。
2)后向搜索 搜索起点是全集 S,依据某种评价标准不断从 S 中剔除最不重要的特征,直到达到某种停止标准。
3)双向搜索 双向搜索同时从前后两个方向开始搜索。一般搜索到特征子集空间的中部时,需要评价的子集将会急剧增加。 当使用单向搜索时,如果搜索要通过子集空间的中部就会消耗掉大量的搜索时间,所以双向搜索是比较常用的搜索方法。
4)随机搜索 随机搜索从任意的起点开始,对特征的增加和删除也有一定的随机性。
1.2 搜索策略
假设原始特征集中有 n 个特征(也称输入变量),那么存在 2n-1 个可能的非空特征子集。 搜索策略就是为了从包含2n-1 个候选解的搜索空间中寻找最优特征子集而采取的搜索方法。 搜索策略可大致分为以下 3 类:
1)穷举式搜索 它可以搜索到每个特征子集。 缺点是它会带来巨大的计算开销,尤其当特征数较大时,计算时间很长。 分支定界法(Branch and Bound, BB)[6]通过剪枝处理缩短搜索时间。
2)序列搜索 它避免了简单的穷举式搜索,在搜索过程中依据某种次序不断向当前特征子集中添加或剔除特征,从而获得优化特征子集。 比较典型的序列搜索算法如:前向后向搜索[7]、浮动搜索[8]、双向搜索[7]、序列向前和序列向后算法等。 序列搜索算法较容易实现,计算复杂度相对较小,但容易陷入局部最优。
3)随机搜索 由随机产生的某个候选特征子集开始,依照一定的启发式信息和规则逐步逼近全局最优解。 例如:遗传算法 (Genetic Algorithm, GA)、 模拟退火算法(Simulated Annealing, SA)、 粒 子 群 算 法 (Particl Swarm Optimization, PSO)和免疫算法(Immune Algorithm, IA)等。
1.3 特征评估函数
评价标准在特征选择过程中扮演着重要的角色,它是特征选择的依据。 评价标准可以分为两种:一种是用于单独地衡量每个特征的预测能力的评价标准;另一种是用于评价某个特征子集整体预测性能的评价标准。
在 Filter[24-27]方法中,一般不依赖具体的学习算法来评价特征子集,而是借鉴统计学、信息论等多门学科的思想,根据数据集的内在特性来评价每个特征的预测能力,从而找出排序较优的若干个特征组成特征子集。 通常,此类方法认为最优特征子集是由若干个预测能力较强的特征组成的[9]。
相反,在 Wrapper 方法中,用后续的学习算法嵌入到特征选择过程中,通过测试特征子集在此算法上的预测性能来决定它的优劣,而极少关注特征子集中每个特征的预测性能如何。 因此,第二种评价标准并不要求最优特征子集中的每个特征都是优秀的[10]。
1.4 停止准则
停止标准决定什么时候停止搜索, 即结束算法的执行。
它与评价准则或搜索算法的选择以及具体应用需求均有关
联。 常见的停止准则一般有:
1)执行时间 即事先规定了算法执行的时间,当到达所制定的时间就强制终止算法运行,并输出结果。
2)评价次数 即制定算法需要运算多少次,通常用于规定随机搜索的次数, 尤其当算法运行的结果不稳定的情况下,通过若干次的运行结果找出其中稳定的因素。3) 设置阈值 一般是给算法的目标值设置一个评价阈值,通过目标与该阈值的比较决定算法停止与否。 不过,要设置一个合适的阈值并不容易,需要对算法的性能有十分清晰的了解。 否则,设置阈值过高会使得算法陷入死循环,阈值过小则达不到预定的性能指标。

参考文献
[1] Langley P. Seleetion of relevant features in machine learning [J]. In:Proe. AAAI Fall Symposium on Relevanee,1994:
140- 144.
[2] Langley P,Iba W. Average-case analysis of a nearest neigh-bour algorithm[C]// Proceedings of the Thirteenth Internation-al Joint Con-Ferenee on Artifieial Intelligence, 1993:889 -894.
[3] Jain A,Zongker D. Feature seleetion: evaluation,application, and Sniall sample perfortnanee[J]. IEEE transactions on pat-tern analysis and rnachine intelligence,1997,19 (2):153 -158
[4] Xing E,Jordan M,Karp R. Feature seleetion for high-dimen-sional genomic microarray data [C]// Intl. conf. on Machine Learning, 2001:601-608.
[5] Davies S, Russl S. Np-completeness of searehes for smallest Pos Sible feature sets [C]// In:Proc. Of the AAAI Fall 94 Symposium on Relevanee, 1994:37-39.