(1) 什么是特征选择
特征选择 ( Feature SelecTIon )也称特征子集选择( Feature Subset SelecTIon , FSS ) ,或属性选择( Attribute SelecTIon ) ,是指从全部特征中选取一个特征子集,使构造出来的模型更好。
(2) 为什么要做特征选择
在机器学习的实际应用中,特征数量往往较多,其中可能存在不相关的特征,特征之间也可能存在相互依赖,容易导致如下的后果:
特征个数越多,分析特征、训练模型所需的时间就越长。
特征个数越多,容易引起“维度灾难”,模型也会越复杂,其推广能力会下降。
特征选择能剔除不相关(irrelevant)或亢余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。另一方面,选取出真正相关的特征简化了模型,使研究人员易于理解数据产生的过程。
2. 特征选择过程
2.1 特征选择的一般过程
特征选择的一般过程可用图1表示。首先从特征全集中产生出一个特征子集,然后用评价函数对该特征子集进行评价,评价的结果与停止准则进行比较,若评价结果比停止准则好就停止,否则就继续产生下一组特征子集,继续进行特征选择。选出来的特征子集一般还要验证其有效性。
综上所述,特征选择过程一般包括产生过程,评价函数,停止准则,验证过程,这4个部分。
(1) 产生过程( GeneraTIon Procedure )
产生过程是搜索特征子集的过程,负责为评价函数提供特征子集。搜索特征子集的过程有多种,将在2.2小节展开介绍。
(2) 评价函数( Evaluation Function )
评价函数是评价一个特征子集好坏程度的一个准则。评价函数将在2.3小节展开介绍。
(3) 停止准则( Stopping Criterion )
停止准则是与评价函数相关的,一般是一个阈值,当评价函数值达到这个阈值后就可停止搜索。
(4) 验证过程( Validation Procedure )
在验证数据集上验证选出来的特征子集的有效性。
图1. 特征选择的过程 ( M. Dash and H. Liu 1997 )
2.2 产生过程
产生过程是搜索特征子空间的过程。搜索的算法分为完全搜索(Complete),启发式搜索(Heuristic),随机搜索(Random) 3大类,如图2所示。
图2. 产生过程算法分类 ( M. Dash and H. Liu 1997 )
下面对常见的搜索算法进行简单介绍。
2.2.1完全搜索
完全搜索分为穷举搜索(Exhaustive)与非穷举搜索(Non-Exhaustive)两类。
(1) 广度优先搜索( Breadth First Search )
算法描述:广度优先遍历特征子空间。
算法评价:枚举了所有的特征组合,属于穷举搜索,时间复杂度是O(2n),实用性不高。
(2)分支限界搜索( Branch and Bound )
算法描述:在穷举搜索的基础上加入分支限界。例如:若断定某些分支不可能搜索出比当前找到的最优解更优的解,则可以剪掉这些分支。
(3) 定向搜索 (Beam Search )
算法描述:首先选择N个得分最高的特征作为特征子集,将其加入一个限制最大长度的优先队列,每次从队列中取出得分最高的子集,然后穷举向该子集加入1个特征后产生的所有特征集,将这些特征集加入队列。
(4) 最优优先搜索 ( Best First Search )
算法描述:与定向搜索类似,唯一的不同点是不限制优先队列的长度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)