机器学习——特征选择

一、特征选择方法分类

1、特征选择也是对数据进行预处理的一个步骤,在进行特征选择的时候我们有以下两个原则,即指导方向:

  • 特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。
  • 特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除移除低方差法外,本文介绍的其他方法均从相关性考虑。

2、特征选择主要有两个目的

  • 减少特征数量、降维,避免维度灾难,这样能使模型泛化能力更强,减少过拟合,缩短模型训练时间。
  • 增强对特征和特征值之间的理解

3、根据特征选择的形式又可以将特征选择方法分为3类:

1)Filter:过滤法,按照发散性或者相关性对各个特征进行评分,设定阈值或者待选择阈值的个数,选择特征。特征选择过程与后续学习器无关,先用特征选择过程对特征进行“过滤”,再用过滤后的特征来训练模型。根据相关性值排序

2)Wrapper:包装法,根据要使用的学习器性能评分,每次选择若干特征,或者排除若干特征。包装法特征选择的目的就是为给定的学习器“量身定做”的特征子集。贪心或者穷举搜索

3)Embedded:嵌入法,嵌入式特征选择是在学习器训练过程中自动进行了特征选择根据特征权重系数排序

其中1不需要训练,直接计算某些可以反映相关性值排序即可,2和3需要进行模型训练,且2需要多次进行模型训练;1和2是特征选择过程与学习器训练过程分开,3是合二为一,在学习器训练过程中自动进行了特征选择。

二、递归特征消除(Recursive feature elimination)

RFE递归特征消除法:递归特征消除是包装法的一种,它的主要思想是反复构建模型,然后选出最好的(或者最差的)特征(根据系数来选),把选出来的特征放到一边,然后在剩余的特征上重复这个过程(如果是选取最好的,本轮选出的特征是否基于选定集,这是一个问题),直到遍历了所有的特征。在这个过程中被消除的次序就是特征的排序。

RFECV 交叉验证的方式递归特征消除法:是通过交叉验证的方式执行RFE,以此来选择最佳数量的特征:

  • 穷举法:对于一个数量为d的feature的集合,他的所有的子集的个数是2的d次方减1(包含空集)。指定一个外部的学习算法,比如SVM之类的。通过该算法计算所有子集的validation error。选择error最小的那个子集作为所挑选的特征。——使用穷举法列举出属性子集的所有情况,使用指定算法求其得分,选择得分最高的子集。
  • 贪心法:对于给定的特征集合{a1,a2,a3,...ad},首先可以将每一个特征看作一个候选子集,利用学习器对这d个候选子集进行评价,假设{a2}最优,于是将{a2}作为第一轮的选定集;然后,在上一轮的选定集中加入一个特征。构成包含两个特征的候选集,假定在这d-1个候选两特征集中{a2,a4}最优,且优于{a2},则{a2,a4}作为本轮的选定集;...假设在第k+1轮时,最优候选(k+1)特征集不如上一轮的选定集,则停止生成候选子集,并将上一轮选定的k特征集作为特征选择的结果。这种叫向前(forward)搜索。  类似,若从完整的特征集开始,每次尝试去掉一个无关特征,这样主键减少特征的策略叫向后(backward)搜索。还可将向前和向后搜索结合起来,每轮逐渐增加选定集特征个数(这些特征在后续轮中确定不会被移除),同时减少无关特征,这种策略叫“双向”(bidirectional)搜索。
原文地址:https://www.cnblogs.com/simpleDi/p/9926053.html