【特征工程】重要特征识别理论(特征筛选)

文章目录

  • 前言
  • 一、特征选择过程
  • 二、特征选择方法
    • 1.过滤式选择
    • 2.包裹式选择
    • 3.嵌入式选择
  • 三、特征重要性


前言

  从众多影响因素中识别出重要因素的过程可以视为一个特征选择过程。在建立机器学习模型进行预测时,输入的特征集会直接影响模型效果,特征太少容易不能全面刻画数据潜在关联,造成模型欠拟合;特征太多时会存在不相关的特征或者特征冗余的情况,甚至出现“维度灾难”,会造成模型精确度无法提升、运行速度慢、过拟合等情况。特征选择是为了从全部特征中找到最优的特征子集,剔除其中不相关或冗余的特征,从而提高模型拟合程度,加快运行速度,同时选取出真正相关的特征简化模型,协助理解数据决策的过程。因此特征选择是机器学习预测中非常重要的一项工作。寻找高质量特征集的过程可以应用到重要因素挖掘的工作中,通过多种特征选择方法选出共同的高相关特征作为重要的影响因素。

一、特征选择过程

  特征选择有非常多的可能性,如果有一个任务包含n个特征,那么会产生 2 n 2^n 2n个特征子集,特征选择的过程就是选出对该任务效果最好的特征子集。特征选择过程可以划分为4个主要步骤:

  1. 生成一个候选的特征子集,以准备进行评价特征子集的效果;
  2. 使用选择的评价函数,评价特征子集的效果好坏,在迭代中,如果当前特征子集优于此前最优的特征子集,则更新,以保证时刻保留最好的特征子集;
  3. 通过设置停止条件参数,决定特征子集的迭代什么时候停止,通常是预定义的最大迭代次数最大特征数评价函数达到最优等参数或条件;
  4. 最后,为了保证选出的特征子集的有效性,使用这些特征在不同学习器上训练验证。

  在迭代过程中,特征子集的选择有3种策略,分别是完全搜索启发式搜索随机搜索。完全搜索分为穷举搜索非穷举搜索,前者即枚举所有特征子集的可能,后者是在前者基础上加入了分支限界,剪掉某些不可能搜索出比当前最优解更优的分支;启发式搜索是在迭代时加入一些规则如每次增加多个特征、若评价函数不再提升则提前终止、双向搜索等,以加速选择过程,这种方法会大大缩短搜索时间,它的搜索空间为O(n^2);随机搜索的思想是则根据设置的参数每次随机选出特征子集,如模拟退火算法遗传算法等。

二、特征选择方法

1.过滤式选择

  与其他两种策略相比,过滤式策略的不同之处在于,进行特征选择的过程与学习器相脱离,即先在初始特征中进行特征过滤,然后使用过滤后的特征进行训练,特征过滤与模型训练完全脱离。这种策略包括很多被普遍使用的方法,如Pearson相关系数距离相关系数卡方检验F 检验互信息等等。其思想是设计一种“相关统计量”,基于样本间的距离计算每一个特征对应的相关统计量分量之和,将其作为该特征的重要性度量。比如使用Pearson相关系数过滤特征,特征 j j j的相关统计量即通过估算特征 j j j与因变量在样本上的协方差和各自的标准差得到的相关系数 j j j,其大小代表了和因变量之间的线性相关程度,值越大说明越重要,筛选时可以按阈值或个数过滤出重要特征。但这种方法只能计算出线性相关度,容易过滤掉具有非线性相关关系的特征。在这一选择过程中,完全不考虑即将用到的训练器类型,直接依据相关统计量进行重要特征的选择。

2.包裹式选择

  包裹式策略的特征选择包裹在学习器的训练过程中,把最终使用的学习器的性能作为特征子集的评价标准,因而这一策略的特征选择是选出最有利于学习器性能的特征子集。优势是学习器的效果最好,不足之处也非常明显,要反复迭代训练学习器,计算开销很大。典型的一个包裹式方法是LVW(Las Vegas Wrapper),使用随机策略进行子集搜索,为了避免计算开销过大设置了停止条件控制参数,以最终学习器的误差评价特征子集。由于基于Las Vegas method框架,这一框架在时间限制内如果找不到满足要求的特征子集,就不返回解。所以当特征数非常多又存在参数限制计算时间时,LVM可能无法选择出特征。

3.嵌入式选择

  嵌入式的策略在训练过程中自动进行特征选择,即在学习器优化过程中,特征的重要性自动进行调整。基于距离计算的如线性回归支持向量机可以通过添加惩罚项进行特征选择,最常用的是使用L1范数正则化和L2范数正则化来选择特征,如岭回归,在线性回归的目标函数中增加L1范数作为正则化惩罚项,惩罚项越大,模型系数越小,当惩罚项大到一定程度时,部分特征系数会变成0,这部分系数意味着对应的特征对模型的作用较小,可以剔除,即选择特征系数较大的特征。基于树的模型包括决策树以及随机森林XGBoost等集成学习,则可以通过计算特征的分裂次数和、特征分裂前后的信息增益和等标准进行特征排序,称为特征重要性,刻画了树结构中每个特征的使用情况和效益。下面详细解释树模型中的特征重要性。

三、特征重要性

  嵌入式的策略在训练过程中自动进行特征选择,即在学习器优化过程中,特征的重要性自动进行调整。基于距离计算的如线性回归、支持向量机可以通过添加惩罚项进行特征选择,最常用的是使用L1范数正则化和L2范数正则化来选择特征,如岭回归,在线性回归的目标函数中增加L1范数作为正则化惩罚项,惩罚项越大,模型系数越小,当惩罚项大到一定程度时,部分特征系数会变成0,这部分系数意味着对应的特征对模型的作用较小,可以剔除,即选择特征系数较大的特征。基于树的模型包括决策树以及随机森林、XGBoost等集成学习,则可以通过计算特征的分裂次数和、特征分裂前后的信息增益和等标准进行特征排序,称为特征重要性,刻画了树结构中每个特征的使用情况和效益。下面详细解释树模型中的特征重要性。

  1. 第一种方式是通过树模型在节点分裂过程中特征的表现衡量特征重要性(feature importance):有3种评估值的选择,第一种是特征被用作分裂属性的次数,即某特征在树的全部节点中划分的次数,出现越多,表明对树的建设贡献越大,价值越高;第二种是特征在作为分裂属性时平均loss的降低量,具体计算公式为特征在整个树群作为分裂节点的信息增益之和除以特征出现的频次,即特征作为分裂属性时带来的信息增益的平均值,信息增益越大,对预测越重要;最后一种是特征作为分裂属性时对样本的覆盖度,计算公式为特征节点样本的二阶导数和除以特征出现总频次。
  2. 第二种方式称为排列重要性(permutation importance),其思想是,先保持标签列以及其它特征列的数据不变,然后随机打乱某一特征列的值,如果用随机打乱值的特征列进行拟合得到的模型效果相对原数据列的拟合效果衰减很多,那说明模型预测对这一特征的依赖程度很高,该特征就是重要的。原因是用于训练的特征通常都是有现实意义的,当该特征重要时,特征的值与标签值关联性也大,但特征值被打乱后,就与标签值切断了关联,模型效果就会变差。

除以上两种特征重要性计算方式之外,还有Shapley Value可以计算基于树的模型以及更加复杂的模型。

你可能感兴趣的:(特征工程,python,人工智能,数据挖掘)