基于最大相关最小冗余和排序的特征选择方法与流程

文档序号:15385407发布日期:2018-09-08 00:30阅读:2258来源:国知局

本发明属于机器学习、数据挖掘技术领域,涉及一种基于最大相关最小冗余和排序思想的特征选择算法。具体讲,涉及基于最大相关最小冗余和排序的特征选择方法。



背景技术:

作为维数约简的一种重要方式,特征选择是利用不同的度量标准对特征进行度量,从原始特征中选取效果显著的特征作为最终特征。依据不同的度量标准,特征选择算法包括基于互信息的算法、基于一致性的算法和基于距离的算法等,由于互信息具有空间变换不变性和可以描述线性相关、非线性相关等优点,很多基于互信息的特征选择算法被提出。

基于最大相关最小冗余思想的算法是基于互信息算法中的一类典型算法,该类算法能够取得较好的特征选择效果。针对基于最大相关最小冗余思想的算法,人们主要从以下两个方面展开研究:一种是先构造出基于最大相关最小冗余思想的目标函数,然后基于所提的目标函数,提出基于互信息的特征选择算法;另一种是将基于最大相关最小冗余思想的算法与其他思想进行结合,提出基于互信息的特征选择算法。本发明对第二种情况的特征选择进行研究,将基于最大相关最小冗余思想的算法与排序思想进行结合,提出一种基于最大相关最小冗余和排序思想的特征选择算法。



技术实现要素:

为克服现有技术的不足,本发明旨在提出新的基于互信息的特征选择方法。为此,本发明采用的技术方案是,基于最大相关最小冗余和排序的特征选择方法,首先利用类标签与候选特征的互信息值来表述相关,利用候选特征与已选特征间互信息值的平均值来表述冗余;然后,利用排序思想分别对相关部分和冗余部分进行处理,实现基于最大相关最小冗余和排序的特征选择。

具体地:x为一离散随机变量,p(x)为该变量的概率密度函数,信息熵被用来表述所获信息量的大小,信息熵h(x)表示为:

对于服从联合分布为p(x,y)的变量x和变量y,其联合熵h(x,y)表示为:

x和y的互信息i(x;y)表示为:

i(x;y)=i(y;x)(4)

其中,p(x)、p(y)分别为变量x、y的概率密度函数,p(x,y)为变量x和y的联合概率密度函数,i(y;x)为y和x的互信息,x和y的互信息i(x;y)与x的熵h(x)、y的熵h(y)和联合熵h(x,y)有如下关系:

i(x;y)=h(x)+h(y)-h(x,y)(5)

候选特征fi与类标签的互信息i(fi;c),表明该特征fi与类标签c的相关程度,其值越大,表明特征与类标签越相关;候选特征fi与已选特征间互信息值的平均值,表明该特征fi与已选特征间的冗余程度,其值越大,表明候选特征与已选特征越冗余,与类标签互信息值越大而与已选特征间互信息值的平均值越小的候选特征,其特征选择效果越显著。

特征选择过程如下:首先,对候选特征集和已选特征集进行初始化,并计算候选特征集中特征与类标签的互信息值,选取具有最大互信息值的特征;然后,验证已选特征数是否大于特征设定个数n,如果已选特征数小于n,先计算候选特征与已选特征间互信息值的平均值,然后计算式(6),

j(fi)=cmi(fi;c)-fmi(fi;fs)(7)

如果式(6)的最大值和次最大值的差值大于某一确定值p值,选取使式(6)取得最大值所对应的特征;否则,先分别对候选特征与类标签的互信息值和候选特征与已选特征间互信息值的平均值进行排序,得到这两部分值的序值,cmi(fi;c)为式(6)第一部分经排序而得到的序值,fmi(fi;fs)为式(6)第二部分经排序而得到的序值;接着计算式(7),验证使式(7)取得最大值的特征数,如果存在多个特征,从这些具有最大序值差的特征中选取与类标签具有最大互信息值的特征;否则,选取具有最大序值差的特征。按照上述过程循环选取特征,直至选取特征数为n,结束循环。

一个实例中具体步骤如下:

步骤1:调用weka软件,使用最小描述长度离散方法对数据特征进行离散化;

步骤2:初始化s和x,令s为空集,x为数据集的所有特征,p值设为0.02;

步骤3:令式(3)中的x=fi,y=c,利用式(3)计算x中所有特征与类标签c的互信息i(fi;c);

步骤4:从x中取出与类标签具有最大互信息值的特征fi,并放入s中;

步骤5:令式(3)中的x=fi,y=fs,利用式(3),先计算x中的特征与s中所有特征的互信息值,然后计算其平均值

步骤6:计算式(6),如果式(6)的最大值和次最大值的差值大于p值,选取使式(6)取得最大值所对应的特征fi;否则,进行步骤7、步骤8和步骤9;

步骤7:对i(fi;c)进行排序,得到i(fi;c)的序值cmi(fi;c);

步骤8:对进行排序,得到序值fmi(fi;fs);

步骤9:计算式(7),并验证使式(7)取得最大序值差的特征数,如果特征数大于1,进行步骤10;否则,进行步骤11;

步骤10:从这些具有最大序值差的特征中选取与类标签具有最大互信息值的特征,将该特征从x中取出,并放入s中;

步骤11:从x中取出具有最大序值差的特征,并放入s中;

步骤12:多次进行步骤5、步骤6、步骤7、步骤8、步骤9、步骤10和步骤11,直到选取出n个特征。s为该算法选取的特征子集,|s|为特征子集的个数。当数据集的特征数大于50时,n取50;否则,n取数据集的特征数,特征放入s中的顺序即是该算法特征选择的顺序;

步骤13:令步骤2的p值分别设为0.03、0.04、0.05和0.06,进行步骤1、步骤2、步骤3、步骤4、步骤5、步骤6、步骤7、步骤8、步骤9、步骤10、步骤11和步骤12;

测试步骤:

步骤14:利用weka软件,对选取特征的性能进行测试;

步骤14.1:利用weka软件,选取s中的前1个、前2个、…、前n个特征;

步骤14.2:采用c4.5分类器和十折交叉验证方法对选取的特征进行实验;

步骤14.3:每组实验均进行10次,取其平均值作为最终结果;

步骤14.4:将步骤14.2中的c4.5分类器换为只基于一个最近邻实例(instancebase1,ib1)分类器和朴素贝叶斯(bayesian)分类器,进行步骤14.1、步骤14.2和步骤14.3。

本发明的特点及有益效果是:

1)本发明提出了一种基于最大相关最小冗余和排序思想的特征选择算法,与现有一些基于最大相关最小冗余的算法相比,本发明提出的算法在特征选择效果上有一定的提升;

2)本发明尝试了将最大相关最小冗余思想和排序思想进行结合,提出一种基于最大相关最小冗余和排序的特征选择算法;

3)本发明提出的特征选择算法有一定的应用价值,该算法可以被应用到如图像处理和计算机视觉等领域。

附图说明:

图1给出了本发明提出的基于最大相关最小冗余和排序思想特征选择算法的框图;

图2给出了p值为0.05,mfeat_fac数据集在三种分类器的特征选择结果。

其中,(a)为c4.5分类器的特征选择结果;(b)为ib1分类器的特征选择结果;(c)为bayesian分类器的特征选择结果;

具体实施方式

本发明首先利用类标签与候选特征的互信息值来表述相关,利用候选特征与已选特征间互信息值的平均值来表述冗余;然后,利用排序思想分别对相关部分和冗余部分进行处理,提出一种基于最大相关最小冗余和排序思想的特征选择算法;最后,利用所提算法对mfeat_fac数据集进行特征选择以及对选取的特征进行性能测试。mfeat_fac数据集是美国加州大学欧文分校(universityofcaliforniairvine,uci)数据集中的一个多视图数据集中的轮廓相关特征部分。

本发明利用排序思想对类标签与特征的互信息值和两个特征间互信息值的平均值这两个量进行处理,提出了一种基于最大相关最小冗余和排序的特征选择算法。具体技术方案详述如下:

1信息度量的背景知识

为表述方便,仅处理离散随机变量。假设x为一离散随机变量,p(x)为该变量的概率密度函数。信息熵常被用来表述所获信息量的大小,信息熵h(x)可以表示为:

对于服从联合分布为p(x,y)的变量x和变量y,其联合熵h(x,y)可以表示为:

互信息常被用来量化两变量所包含的共同信息。x和y的互信息i(x;y)可以表示为:

i(x;y)=i(y;x)(4)

其中,p(x)、p(y)分别为变量x、y的概率密度函数,p(x,y)为变量x和y的联合概率密度函数,i(y;x)为y和x的互信息。

x和y的互信息i(x;y)与x的熵h(x)、y的熵h(y)和联合熵h(x,y)有如下关系:

i(x;y)=h(x)+h(y)-h(x,y)(5)

2基于最大相关最小冗余和排序的特征选择算法

候选特征fi与类标签的互信息i(fi;c),表明该特征fi与类标签c的相关程度,其值越大,表明特征与类标签越相关;候选特征fi与已选特征间互信息值的平均值,表明该特征fi与已选特征间的冗余程度,其值越大,表明候选特征与已选特征越冗余。整体来说,与类标签互信息值越大而与已选特征间互信息值的平均值越小的候选特征,其特征选择效果越显著。

由于具有高维特征的数据集存在较小的区间内有多个特征的情况,利用排序思想分别对候选特征与类标签的互信息值和候选特征与已选特征间互信息值的平均值进行处理。最终,提出一种基于最大相关最小冗余和排序思想的特征选择算法。该算法的特征选择过程如下:首先,对候选特征集和已选特征集进行初始化,并计算候选特征集中特征与类标签的互信息值,选取具有最大互信息值的特征;然后,验证已选特征数是否大于特征设定个数n,如果已选特征数小于n,先计算候选特征与已选特征间互信息值的平均值,然后计算式(6),如果式(6)的最大值和次最大值的差值大于某一确定值p值,选取使式(6)取得最大值所对应的特征;否则,先分别对候选特征与类标签的互信息值和候选特征与已选特征间互信息值的平均值进行排序,得到这两部分值的序值,cmi(fi;c)为式(6)第一部分经排序而得到的序值,fmi(fi;fs)为式(6)第二部分经排序而得到的序值;接着计算式(7),验证使式(7)取得最大值的特征数,如果存在多个特征,从这些具有最大序值差的特征中选取与类标签具有最大互信息值的特征;否则,选取具有最大序值差的特征。按照上述过程循环选取特征,直至选取特征数为n,结束循环。

j(fi)=cmi(fi;c)-fmi(fi;fs)(7)

该算法的流程图如下:

输入:m:数据集的特征数。n:选取的特征数。

输出:s:选取的特征子集。

1:初始化令x={f1,f2,…,fm};

2:forfi∈x

3:计算i(fi;c);

4:endfor

5:从x中选取使i(fi;c)取得最大值的fi;

6:s=s∪{fi};

7:x=x-{fi};

8:while|s|<ndo

9:forfi∈x

10:forfs∈s

11:计算i(fi;fs);

12:endfor

13:计算

14:endfor

15:计算式(6);

16:if式(6)的最大值和次最大值的差值大于p值

17:选取使式(6)取得最大值所对应的特征fi;

18:else对i(fi;c)进行排序,得到cmi(fi;c);

19:对进行排序,得到fmi(fi;fs);

20:计算式(7),验证使式(7)取得最大值的特征数;

21:if满足上述条件的特征数大于1

22:从这些特征中选取与类标签具有最大互信息值的特征fi;

23:else选取使式(7)取得最大值的特征fi;

24:endif

25:endif

26:s=s∪{fi};

27:x=x-{fi};

28:endwhile

29:returns;

下面结合算法框图和算法流程图对本发明进行详细的描述。

如图1所示,本发明提供一种基于最大相关最小冗余和排序的特征选择算法,在matlab平台下运行。其包括以下步骤:

步骤1:调用weka软件,使用最小描述长度离散方法对mfeat_fac数据集的特征进行离散化。

步骤2:初始化s和x。令s为空集,x为数据集的所有特征,p值设为0.05。

步骤3:令式(3)中的x=fi,y=c,利用式(3)计算x中所有特征与类标签c的互信息i(fi;c)。

步骤4:从x中取出与类标签具有最大互信息值的特征fi,并放入s中。

步骤5:令式(3)中的x=fi,y=fs,利用式(3),先计算x中的特征与s中所有特征的互信息值,然后计算其平均值

步骤6:计算式(6),如果式(6)的最大值和次最大值的差值大于p值,选取使式(6)取得最大值所对应的特征fi;否则,进行步骤7、步骤8和步骤9。

步骤7:对i(fi;c)进行排序,得到i(fi;c)的序值cmi(fi;c)。

步骤8:对进行排序,得到序值fmi(fi;fs)。

步骤9:计算式(7),并验证使式(7)取得最大序值差的特征数,如果特征数大于1,进行步骤10;否则,进行步骤11。

步骤10:从这些具有最大序值差的特征中选取与类标签具有最大互信息值的特征,将该特征从x中取出,并放入s中。

步骤11:从x中取出具有最大序值差的特征,并放入s中。

步骤12:多次进行步骤5、步骤6、步骤7、步骤8、步骤9、步骤10和步骤11,直到选取出n个特征。s为该算法选取的特征子集,|s|为特征子集的个数。由于数据集的特征数大于50,n取50。特征放入s中的顺序即是该算法特征选择的顺序。

步骤13:利用weka软件,对选取特征的性能进行测试。

步骤13.1:利用weka软件,选取s中的前1个、前2个、…、前50个特征。

步骤13.2:采用c4.5分类器和十折交叉验证方法对选取的特征进行实验。

步骤13.3:每组实验均进行10次,取其平均值作为最终结果。

步骤13.4:将步骤13.2中的c4.5分类器换为ib1和bayesian分类器,进行步骤13.1、步骤13.2和步骤13.3。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1