基于信息论和特征排序的滤波器特征选择的差分进化

Differential evolution for filter feature selection based on information theory and feature ranking

       这篇论文是由Emrah Hancer,Bing Xue,Mengjie Zhang三个学者在2016年发表的,其主要研究成果是提出了两种新的基于差分进化的滤波方法。在这里我主要和大家分享一下,关于这篇论文我的学习笔记,即对Matlab代码实现的解析。

首先这篇文章有如下五个关键字:

Mutual information
Relief
Fisher Score
Feature selection
Differential evolution

提出问题:

       分类通常被称为机器学习中的监督学习任务,它用来推断特征和类标签之间的关系。然而大量的特征往往会给分类带来挑战,如过度拟合,计算复杂度高,以及最终模型的预估能力低等,其中一个原因是维数诅咒,我们必须使用特征构造或者特征选择来减少正在考虑的特征数量,特征选择就是从数据集可用的原始特征中选择一个特征子集来帮助我们完成分类任务。基于不同的评估标准,特征选择方法又分为包装器、嵌入式和过滤器。
       包装器使用学习算法(分类器或者回归)作为评估的一部分来度量所选特征子集的优劣,虽然包装器优先级比较高,但是包装器还是有如下缺点:
1、计算复杂度高
2、这个学习者的最优特征子集可能并不是另一个学习者的最优特征子集
3、在确定学习者的参数的时候回耗费大量时间
4、具有局限性(一些学习者不能处理多层次分类)
       而嵌入式选择特征子集依赖学习算法,虽然比包装器简单点但是计算复杂度还是很高。所以在这篇文章中,作者更加关注过滤器算法
       过滤器根据一些预定义的度量标准或者信息来评估特性子集,而不是使用学习者,更加通用。
       在文献中,有大量的指标和度量标准来评价特征子集的不一致率、推理相关性、分形维数、距离测量和互信息等.然而互信息有两个主要的性质:
1、可以测量随机变量之间的各种关系
2、在特征空间是可逆可微的情况下任然能保持稳定
       在此之前已经有一种常见的过滤器算法是使用互信息来估计每个特性和类标签之间的关系(互相关性),以及每一对特征之间的关系(互冗余性)。

那么什么是互信息呢?

       互信息在百度百科上的定义为:互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。
       在详细介绍互信息之前,这里再介绍一下的概念:对随机变量不确定性的度量。熵的值越大表示每个事件发生的概率相同,值越低表示每一个事件发生的概率都是不同的。

互信息的定义

       正式地,两个离散随机变量 X 和 Y 的互信息可以定义为:

在这里插入图片描述
       其中 p(x,y) 是 X 和 Y 的联合概率分布函数,而p(x)和p(y)分别是 X 和 Y 的边缘概率分布函数。

       互信息量I(xi;yj)是在联合概率空间P(XY)中的统计平均值。 平均互信息I(X;Y)克服了互信息量I(xi;yj)的随机性,成为一个确定的量。如果对数以 2 为基底,互信息的单位是bit,当对数以e为底时,熵的单位是nat;而当对数以10为底时,熵的单位是 Hart。

       互信息度量 X 和 Y 共享的信息:它度量知道这两个变量其中一个,对另一个不确定度减少的程度。例如,如果 X 和 Y 相互独立,则知道 X 不对 Y 提供任何信息,反之亦然,所以它们的互信息为零。在另一个极端,如果 X 是 Y 的一个确定性函数,且 Y 也是 X 的一个确定性函数,那么传递的所有信息被 X 和 Y 共享:知道 X 决定 Y 的值,反之亦然。因此,在此情形互信息与 Y(或 X)单独包含的不确定度相同,称作 Y(或 X)的熵。而且,这个互信息与 X 的熵和 Y 的熵相同。(这种情形的一个非常特殊的情况是当 X 和 Y 为相同随机变量时。)

       互信息是 X 和 Y 联合分布相对于假定 X 和 Y 独立情况下的联合分布之间的内在依赖性。于是互信息以下面方式度量依赖性:I(X; Y) = 0 当且仅当 X 和 Y 为独立随机变量。

共有信息

表示一种在自由变量中的共有依赖程度,如果 (X, Y) ~ p(x, y), X, Y 之间的互信息 I(X; Y)定义为: :
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190422184523150.png
共有信息的的性质

I(X;Y)的性质:
1)I(X;Y)⩾0
2)H(X)−H(X|Y)=I(X;Y)=I(Y;X)=H(Y)−H(Y|X)
3)当X,Y独立时,I(X;Y)=0,
4)当X,Y知道一个就能推断另一个时,I(X;Y)=H(X)=H(Y)

互信息、条件熵与联合熵的区别与联系
基于信息论和特征排序的滤波器特征选择的差分进化_第1张图片
       由于传统的筛选方法只依赖于特性和标签之间的关系(相关性),因此在存在依赖特性(特征之间重叠信息时),他们不能很好的工作。
       于是Batiti提出了MIFS(互信息特征选择算法)

       MIFS算法的三个基本要点:
       (1)特征分类为相关或冗余
       (2)采用启发式函数选择特征、控制关联和冗余之间的权衡
       (3)应用贪婪搜索
在这里插入图片描述
       Q是最初的特征集,x是在Q中且第i个尚未被S集选中的特征,S是x所选特征子集合,y是类标签,β是预定义的参数,用于满足平衡相关性和冗余性。

       虽然这个算法实现起来简单,并且可有有效减少特征子集的大小,但是由于他们的静态贪婪搜索机制导致被选中的特征不能再进行修改和删除。所以研究者们尝试利用进化计算技术,设计基于互信息的滤波算法。当时遇到的困难:EC技术在特征选择方面的潜力还没有得到充分的研究如:基于过滤器的方法在计算上很便宜,但是过滤器方面的工作任然比包装器少得多,因为基于过滤器的适应度函数更难设计。

       与大多数其他EC方法相比,DE实现起来更加简单和直观,DE只有几个参数需要控制,空间复杂度也低,这对特征选择很重要。

差分进化:

       DE算法的基本思想是从某一随机产生的初始群体开始,利用从种群中随机选取的两个个体的差向量作为第三个个体的随机变化源,将差向量加权后按照一定的规则与第三个个体求和而产生变异个体,该操作称为变异。然后,变异个体与某个预先决定的目标个体进行参数混合,生成试验个体,这一过程称之为交叉。如果试验个体的适应度值优于目标个体的适应度值,则在下一代中试验个体取代目标个体,否则目标个体仍保存下来,该操作称为选择。在每一代的进化过程中,每一个体矢量作为目标个体一次,算法通过不断地迭代计算,保留优良个体,淘汰劣质个体,引导搜索过程向全局最优解逼近。相比于其他进化算法,DE保留了基于种群的全局搜索策略,采用实数编码、基于差分的简单变异操作和一对一的竞争生存策略,降低了遗传操作的复杂性。

       还有其他著名的策略如根据最近邻距离(即ReliefF)以及基于类间方差和类内方差(即Fisher Score)对每个特性排序进行排序。
然而上诉的每种策略都有其优缺点,作者在这篇文章中就将上述几种策略集合,提出了一种基于互信息,ReliefF和Fisher Score评分概念的过滤准则。该准则不使用mutual redundancy(互冗余),而是选择由ReliefF和Fisher Score评分来确定最高等级的特征,同时提供特征与类标签之间的互相关性。

ReliefF

       Relief算法是一种特征权重算法(Feature weighting algorithms),根据各个特征和类别的相关性赋予特征不同的权重,权重小于某个阈值的特征将被移除。Relief算法中特征和类别的相关性是基于特征对近距离样本的区分能力。算法从训练集D中随机选择一个样本R,然后从和R同类的样本中寻找最近邻样本H,称为Near Hit,从和R不同类的样本中寻找最近邻样本M,称为NearMiss,然后根据以下规则更新每个特征的权重:如果R和Near Hit在某个特征上的距离小于R和Near Miss上的距离,则说明该特征对区分同类和不同类的最近邻是有益的,则增加该特征的权重;反之,如果R和Near Hit在某个特征的距离大于R和Near Miss上的距离,说明该特征对区分同类和不同类的最近邻起负面作用,则降低该特征的权重。以上过程重复m次,最后得到各特征的平均权重。特征的权重越大,表示该特征的分类能力越强,反之,表示该特征分类能力越弱。Relief算法的运行时间随着样本的抽样次数m和原始特征个数N的增加线性增加,因而运行效率非常高。
基于信息论和特征排序的滤波器特征选择的差分进化_第2张图片基于信息论和特征排序的滤波器特征选择的差分进化_第3张图片

Fisher score

在这里插入图片描述

在这里我把fisher score理解为Fisher分类器的适应度函数。

你可能感兴趣的:(学习经历,差分进化)