特征选择方法

时间:2022-11-11 19:00:18 振濠 选择方法 我要投稿
  • 相关推荐

特征选择方法

  特征选择法,相信只有少部分人听说过,究竟是什么呢?下面是小编给大家整理的关于特征选择方法,欢迎阅读!

  特征选择方法 1

  特征选择之所以要引起重视的原因,那就是随着科技发展,很多领域能采集到的特征变量数以万计,而能作为训练集的样本量却往往远小于特征数量(如基因测序、文本分类)。特征选择的好处包括:便于理解和可视化数据,降低计算及存储压力,对抗维度灾难以提高模型预测准确率等等。特征选择的三类主流方法为:过滤式、包裹式、嵌入式。

  一、过滤式

  变量排序就是一种典型的过滤式方法,该方法独立于后续要使用的模型。这种方法的关键就是找到一种能度量特征重要性的方法,比如pearson相关系数,信息论理论中的互信息等。

  二、包裹式

  这类方法的核心思想在于,给定了某种模型,及预测效果评价的方法,然后针对特征空间中的不同子集,计算每个子集的预测效果,效果最好的,即作为最终被挑选出来的特征子集。注意集合的子集是一个指数的.量级,故此类方法计算量较大。故而针对如何高效搜索特征空间子集,就产生了不同的算法。其中有一种简单有效的方法叫贪婪搜索策略,包括前向选择与后向删除。在前向选择方法中,初始化一个空的特征集合,逐步向其中添加新的特征,如果该特征能提高预测效果,即得以保留,否则就扔掉。后向删除即是说从所有特征构成的集合开始,逐步删除特征,只要删除后模型预测效果提升,即说明删除动作有效,否则就还是保留原特征。要注意到,包裹式方法要求针对每一个特征子集重新训练模型,因此计算量还是较大的。

  三、嵌入式

  嵌入式方法将特征选择融合在模型训练的过程中,比如决策树在分枝的过程中,就是使用的嵌入式特征选择方法,其内在还是根据某个度量指标对特征进行排序。

  除了直接从原始特征中进行选择,我们还可以对特征进行变换、组合,这种思路称为特征构造。其中主要的方法总结如下。

  一、聚类

  可以使用kmeas、层次聚类后的聚类中心点来代替相应簇中的一组特征。

  二、线性组合

  SVD(singular value decomposition) 、PCA均可视为此类方法,核心思想就是对原有特征进行线性组合,使用组合后的特征作为新的特征输入到训练模型中。这类方法的好处是,考虑到了变量之间可能存在的互补作用,进行组合后,有可能生成了一个更有效的新特征。

  总体上,笔者今日所阅读的文章或书本仍偏于理论,较少介绍在某个实践项目中具体是如何开展的。希望市面上再多一些工程师写的书,少一些大学教授的书。

  特征选择方法 2

  搜索策略

  一、完全搜索

  1、BestFirst(最佳优先)

  最佳优先搜索时宽度优先搜索的扩展,基本思想是将节点表按据目标的距离进行排序,再以节点的估计距离为标准选择待扩展的节点。

  算法步骤:

  1. 用N表示已经排序的初始结点表(从小到大)

  2. 如果N为空集,则退出并给出失败信号

  3. n取为N的首结点,并在N中删除结点n,放入已访问结点列表

  4. 如果n为目标结点,则退出并给出成功信号

  5. 否则,将n的后继结点加到N中,记为N’,对N’中的结点按距目标的估计距离排序,并返回2步

  在搜索的过程中一般会用到评估函数f(n),表示从初始节点S经过n到达目的节点t的最佳路径代价f*(n)的估计:

  从S到n的最佳代价g*(n)的估计g(n),g(n) ≥ g*(n),即局部最小≥ 全局最小

  从n到t 的最佳代价h*(n)的估计h(n),若对所有结点n,都有h(n)≤h*(n),则算法A一定能找到一条到达目标结点的最佳路径,此时算法A 称为算法A*。

  f(n) = g(n) + h(n)作为f*(n) = g*(n) + h*(n)的估计,估计值越小的点希望越高,应该优先扩展。

  2,ExhaustiveSearch(穷举搜索);

  枚举了所有的特征组合,属于穷举搜索,时间复杂度是O(2n),实用性不高。

  二、随机搜索方法。

  1、RandomSearch(随机搜索):

  算法描述:随机产生一个特征子集,然后在该子集上执行SFS与SBS算法。

  算法评价:可作为SFS与SBS的补充,用于跳出局部最优值。

  2、ScatterSearchV1(离散搜索):

  三、序列搜索方法

  a.单独最优组合:RankSearch(评估器计算属性判据值并排序),Ranker(属性判据值排序);

  b.向前搜索:LinearForwardSelection(线性向前搜索);

  算法描述:特征子集X从空集开始,每次选择一个特征x加入特征子集X,使得特征函数J( X)最优。简单说就是,每次都选择一个使得评价函数的取值达到最优的特征加入,其实就是一种简单的贪心算法。

  算法评价:缺点是只能加入特征而不能去除特征。例如:特征A完全依赖于特征B与C,可以认为如果加入了特征B与C则A就是多余的。假设序列前向选择算法首先将A加入特征集,然后又将B与C加入,那么特征子集中就包含了多余的特征A。

  c.向后搜索:FCBFSearch(基于相关性分析的特征选择方法);

  算法描述:从特征全集O开始,每次从特征集O中剔除一个特征x,使得剔除特征x后评价函数值达到最优。

  算法评价:序列后向选择与序列前向选择正好相反,它的缺点是特征只能去除不能加入。另外,SFS与SBS都属于贪心算法,容易陷入局部最优值。

  d. 增l去r选择方法:RaceSearch(比较特征子集的交叉验证错误情况),GreedyStepwise(向前或向后的单步搜索);

  该算法有两种形式:

  <1>算法从空集开始,每轮先加入L个特征,然后从中去除R个特征,使得评价函数值最优。( L > R )

  <2>算法从全集开始,每轮先去除R个特征,然后加入L个特征,使得评价函数值最优。( L < R )

  算法评价:增L去R选择算法结合了序列前向选择与序列后向选择思想, L与R的选择是算法的'关键。

  e. 浮动搜索方法:SubsetSizeForwardSelection(按照特征子集大小向前线性搜索,这是线性搜索的扩展);

  f.启发式搜索:GeneticSearch(基于Goldberg提出的简单遗传算法),TabuSearch(禁忌搜索)。

  按照评价策略的两大方法,这两大方法基于是否使用后续的分类方法来区别,且Filter方法注重对单个属性进行评价,Wrapper方法侧重对特征子集进行评价。

  这里列举各个分类的几种方法:

  1)Filter方法:

  ChiSquaredAttributeEval——根据与分类有关的每一个属性的卡方值(统计学词汇)进行评估;

  FilteresAttributeEval——运行在任意过滤器之后的数据上的任意属性评估;

  GainRatioAttributeEva——根据与分类有关的每一个属性的增益比进行评估;

  InfoGainAttributeEval——根据与分类有关的每一个属性的信息增益进行评估;

  SignificanceAttributeEva——计算双向功能的概率意义评估属性值。

  2)Wrapper方法:

  CfsSubsetEval——根据属性子集中每一个特征的预测能力以及它们之间的关联性进行评估;

  ClassifierSubsetEval——根据训练集或测试集之外的数据评估属性子集;

  WrapperSubsetEval——使用一种学习模式对属性集进行评估;

  ConsistencySubsetEval——根据利用属性子集进行分类时得到的分类值的一致性进行评价。

  3)Filter与Wrapper结合:

  OneRAttributeEval——根据OneR分类器评估属性。

  特征选择方法 3

  01高相关变量

  高相关变量给模型提供了相同的信息,因此在我们的分析中没有必要包括所有的变量。例如:如果一个数据集包含一个特征“浏览时间”,另一个特征称为“浏览时使用的数据”,那么你可以想象这两个变量在某种程度上是相关的,即使我们选取一个无偏的数据样本,我们也会看到这种高度的相关性。在这种情况下,我们只需要这两个变量中的一个在此模型中作为预测因子,因为如果我们同时使用这两个变量,那么模型将会过拟合并偏向于这个特定的特征。

  02P值

  在像线性回归这样的算法中,初始统计模型总是个不错的选择,因为它通过使用该模型获得的P值,有助于可视化特征的重要性。在设置显著性水平时,我们检查得到的P值,如果P值小于显著性水平,说明特征显著,即该值的变化很可能表示目标值的变化。

  03正向选择

  正向选择是一种使用逐步回归的技术。因此,模型从零起点开始构建,即一个空模型,然后每次迭代都添加一个变量,以便在构建的模型中有一个改进。在每次迭代中加入的变量是通过其显著水平与设置的显著阈值进行比较来确定的,小于则加入,否则不加入。它可以通过各种度量来计算。一个共同的度量是通过所有变量建立的初始统计模型得到的P值。有时,正向选择会导致过拟合,因为它会向模型中添加高相关变量,即使它们向模型提供了相同的数据(但模型显示出了改进)。

  04逆向消除

  逆向消除也包括逐步回归的特征选择,其方式类似于正向选择的逆过程。在这种情况下,初始模型从所有的自变量开始,如果这些变量不能在每次迭代中为新形成的回归模型提供价值,那么这些变量将被一个接一个地消除(每次迭代一次)。这也是利用初始统计模型获得的P值,并基于这些P值,从模型中消除特征。同时,使用这种方法,在去除高相关变量方面存在不确定性。

  05递归式特征消除

  RFE是一种广泛使用的技术/算法——给每一个特征指定一个权重,接着采用预测模型在这些原始的特征上进行训练。在获取到特征的权重值后,对这些权重值取绝对值,把最小绝对值剔除掉。按照这样做,不断循环递归,直至剩余的特征数量达到所需的特征数量。

  这个过程中特征被消除的次序就是特征的排序。基于它们之间的共线性,这些排序用来在递归循环中消除特征,当然,还有这些特征在模型中的重要性。除了对特征进行排序外,RFE还可以显示这些特征是否重要,即使是选定的特征数量(因为我们选择的指定数量很可能不代表重要特征的最佳数量,并且,最佳特征数量可以大于或小于用户选择的这个数量)。

  06图表化特征重要度

  当我们讨论机器学习算法的可解释性时,通常讨论线性回归(可以使用P值分析功能重要性)和决策树(这实际上显示了树形式的特征重要度,同时也显示了重要度的层次结构),但另一方面,在随机森林分类器、LGBM、XG Boost等算法中,我们常常使用变量重要度图表绘制变量。当需要向正做分析的业务展示构建好的特征重要度时,这个方法特别有用。

  07正则化

  正则化是为了监测偏差和方差之间的'权衡。偏差告诉我们模型在多大程度上对训练数据集过拟合。方差告诉我们在训练数据集和测试数据集上做出的预测是否稳定。理想情况下,偏差和方差都需要减少。正则化技术主要有两种:

  01 L1正则化 lasso回归

  Lasso回归又称为套索回归,是Robert Tibshirani于1996年提出的一种新的变量选择技术。Lasso是一种收缩估计方法,其基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,进一步得到可以解释的模型。Lasso会惩罚模型的β系数,以改变它们在模型中的重要性,甚至可能会将其固定(将它们变成0,即基本上从最终模型中删除这些变量)。通常,当你观察到你的数据集有大量变量时,使用lasso,你需要删除其中一些变量,以便更好地了解重要特征如何影响模型(即最终由lasso选择的特征,并分配其重要性)。

  02 L2 正则化 ridge回归

  Ridge回归是一种专用于共线性数据分析的有偏估计回归方法。Ridge的作用是保持所有变量,例如使用所有变量来建立模型,同时赋予它们重要度,从而提高模型的性能。当数据集中变量数量较少时,岭是一个很好的选择,因此需要所有这些变量来解释得到的“洞察力”和预测目标结果。

  由于Ridge保持了所有变量的完整性,并且lasso在分配变量的重要度方面做得更好,因此,结合Ridge和Lasso的最佳特性,组合出了“弹性网络”,作为开发算法。弹性网络是更理想的选择。

【特征选择方法】相关文章:

调查方法的选择03-25

供应商选择方法03-23

教学方法的选择(通用6篇)04-16

高三数学选择填空解题技巧方法11-02

职业素养的特征10-31

图形特征教案04-06

《生物的特征》教案11-03

小雪节气的气温特征10-29

《信息及其特征》教案02-21