Feature Selection详解(附带Relief、Relief-F、LVM详解)(一)

Feature Selection详解

第二十五次写博客,本人数学基础不是太好,如果有幸能得到读者指正,感激不尽,希望能借此机会向大家学习。这一篇主要是针对特征选择问题的几种常见方法进行阐述,并介绍其中几种比较经典的特征选择算法(Relief、Relief-F、LVM)。

特征选择

  “特征选择”(Feature Selection)是一种数据预处理(Data Preprocessing)手段,一般是在明确机器学习任务并且获得数据后,就对数据进行特征选择,然后再使用这一批数据训练学习器。
  为什么需要特征选择呢?在现实任务中,我们常常会遇到维度很高(属性很多)的数据集,在这种情况下常常会在训练学习器的过程中遇到“维度灾难”(Dimension Disaster)问题,这时对数据集的重要特征提取就变得十分重要。因此,特征选择作为另一种处理高维数据的技术,与之前讲过的降维有相似的目的,都可以大大减轻学习过程中的维数灾难问题。由于原始样本空间中存在一些“无关属性”(即与学习任务无关的属性),或是一些“冗余属性”(即可以通过其他属性推演出来的属性,例如房屋价格可以通过房屋面积和每平方米的价格推演出来)。
  特征选择的最终目标是从原始特征集合中选取一个包含了所有重要信息的特征子集,基本的方法是首先产生一个“候选子集”,然后评价他的好坏,并基于评价结果产生下一个候选子集,再对其进行评价,循环往复直到无法找到更好的候选子集为止。这其中涉及到了两个重要的步骤,一是子集搜索,二是子集评价。

子集搜索

  “前向搜索”(Forward Search)首先从数据集的全部属性中选择一个最优的特征作为初始候选子集,然后每次都在上一轮得到的候选子集中加入一个属性,使该候选子集成为当前最优的,如果该轮得到的最优候选子集与上一轮得到的候选子集相比评价比较差,那么选择上一轮的候选子集作为这个数据集的最优特征子集。
  “后向搜索”(Backward Search)与前向搜索的过程正好相反,他首先将数据集的全部属性的集合作为初始候选子集,然后从该集合中剔除一个属性以得到该轮的最优候选子集,重复这一步骤直到无法找到更好的候选子集为止,同样,如果该轮得到的最优候选子集与上一轮得到的候选子集相比评价比较差,那么选择上一轮的候选子集作为这个数据集的最优特征子集。
  “双向搜索”(Bidirectional Search)则是上述两种搜索方法的综合,在每一轮迭代中增加一个相关属性,而且这些增加的属性在和后续迭代中不会被剔除,同时剔除无关或者冗余的属性。
  上述方法都是“贪心”的,如果不使用上述方法就不得不对整个特征空间进行穷举。

子集评价

  给定数据集 D D D,假定 D D D中第 i i i类样本所占的比例为 p i ( i = 1 , 2 , . . . , ∣ y ∣ ) p_{i}\left(i=1,2,...,|y|\right) pi(i=1,2,...,y),假设样本属性均为离散型,对于特征子集 A A A,假定根据其取值将 D D D分成了个 V V V子集 { D 1 , D 2 , . . . , D V } \{D^1,D^2,...,D^V\} { D1,D2,...,DV},每个子集中的样本在 A A A上的取值相同,于是特征子集 A A A的信息增益可以通过下式计算
Gain ( A ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) \text{Gain}\left(A\right)=Ent\left(D\right)-\sum^{V}_{v=1}\frac{|D^{v}|}{|D|}Ent\left(D^{v}\right) Gain(A)=Ent(D)v=1VDDvEnt(Dv)
其中,信息熵定义为
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k Ent\left(D\right)=-\sum^{|y|}_{k=1}p_k\log^{p_k}_2 Ent(D)=k=1ypklog2pk
信息增益越大,那么特征子集 A A A中有助于分类的信息越多,因此可以使用信息增益作为特征子集的评价标准。其他“多样性度量”例如不合度量、相关系数等,稍加调整都可以用于特征子集的评价。

特征选择方法

  将特征子集搜索域特征子集评价相结合就可以得到特征选择方法,例如将前向搜索与信息熵相结合,这显然与决策树算法非常类似,事实上,决策树也可以应用于特征选择,树结点的划分属性所组成的集合就是选择出的特征子集。其他的特征选择方法未必像决策树特征选择这么明显,但他们实质上都是显式或隐式的结合了某种(或多种)子集搜索和子集评价机制。常见的特征选择方法大致可以分为三大类:过滤式(filter)、包裹式(wrapper)和嵌入式(embedding)。

“过滤式”特征选择

  “过滤式”方法首先对数据集进行特征选择,然后在训练学习器,因此特征选择过程与后续学习器的训练无关。其中最著名的方法是Kira和Rendell在1992年提出来的Relief(Relevant Features),以及由Kononenko于1994年提出的上述算法的改进版Relief-F,这两种方法通过设计出一个“相关统计量”来度量某个特征对于学习任务的重要性,下面分别介绍这两种算法。
1. Relief(Relevant Features)
  该算法是一种基于特征权重(feature weight)的算法,灵感来源于1991年提出的“基于实例的学习”(Instance-based Learning),目的是为了解决现实任务中的概念学习问题,由于原始数据集中过多的特征会对要学习到的“目标概念”(target concept)产生不良的影响,例如,维度过高会导致计算效率的降低,过多的无关信息会造成预测精确度的下降,因此特征选择对于提高算法效率和精度十分重要。原文通过对之前提出的特征选择算法进行分析,提出了一种非启发式的、鲁棒性高、即使特征之间有相关性也同样适用的特征选择方法。
  给定数据集 S S S,每个样本点 x ( x 1 , x 1 , . . . , x p ) \mathbf{x}\left(\mathbf{x}_1,\mathbf{x}_1,...,\mathbf{x}_p\right) x(x1,x1,...,xp)是一个 p p p维向量,即原始数据集的特征个数为 p p p,采样个数为 m m m和一个合适的阈值 τ ( 0 ≤ τ ≤ 1 ) \tau\left(0\leq{\tau\leq{1}}\right) τ(0

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值