一种基于特征可信度的高效特征选择方法与流程

文档序号:16883480发布日期:2019-02-15 22:24阅读:258来源:国知局
一种基于特征可信度的高效特征选择方法与流程

本发明涉及一种基于特征可信度的高效特征选择方法,属于机器学习和人工智能技术领域。



背景技术:

目前,特征选择被认为是机器学习系统工程中必不可少的一个环节,旨在特征全集(即所有特征)中选取少数特征能够使得系统性能达到最优化。在分类工程中,特征之间可能存在冗余,而这些冗余特征甚至会导致分类算法识别准确性降低。过高的特征维数增大了系统计算开销,降低了系统响应时间,导致系统和用户之间的交互性大大下降。

如果有n个特征,那么就可能存在2n种可能存在的特征子集,无疑搜索空间是巨大的,因此,利用进化计算的搜索能力从潜在巨大的搜索空间搜索出最优的特征子集是非常合适的。其中离散二进制粒子群优化方法(bpso)与遗传算法等其他进化计算方式相比,具有参数少,效率高,实现简单,收敛快等特点,bpso作为随机搜索策略被广泛应用到特征选择问题中。

在常规的bpso特征选择过程中,特征子集的分类准确率通常是首要考虑的指标。而粒子群的搜索效率也是需要考虑的,提升粒子群的搜索效率可以更快地找到最优的特征子集。



技术实现要素:

目的:为了克服现有技术中存在的不足,本发明提供一种基于特征可信度的高效特征选择方法,计算每个特征的权值表示特征与目标类别之间的相关度作为特征的可信度的来源之一,并结合在粒子群gbest更新n次的历史信息中每个特征的选择概率,在搜索时引入当前特征对目标类别进行分类时的可信度来引导搜索方向,以提高bpso在搜索空间的搜索效率。

技术方案:为解决上述技术问题,本发明采用的技术方案为:

一种基于特征可信度的高效特征选择方法,包括如下步骤:

步骤1:从数据集中随机挑选出样本,选取该随机样本的同类和不同类样本实例集,计算同类样本实例集中样本与随机样本之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本;计算不同类样本实例集中样本与随机样本之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本;对同类和不同类k个样本的每个特征的权值进行更新,作为特征可信度的一个来源;

步骤2:设定bpso各个参数,计算各个特征迭代历史信息的选择概率作为特征可信度的第二个来源,并结合特征集a中各个特征的权值计算特征的可信度;

步骤3:根据最终输出的gbestd,确定最终的特征选择。

作为优选方案,所述步骤1包括如下步骤:

步骤1-1:设训练数据集为d,迭代次数为m,样本特征集a=[a1,a2,a3,...,an],n为特征个数,an为该特征的取值;设特征集a中特征的权值集合w[a]=[w1,w2,w3,...,wn],置所有的特征的初始权值为0,则w[a]=0;

步骤1-2:循环执行以下2个步骤m次:

步骤1-2-1:从训练数据集d中随机选择一个样本r,选取该随机样本r的同类样本实例集,计算同类样本实例集中样本与随机样本r之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本hi,1<i≤k;

步骤1-2-2:选取该随机样本r的不同类样本实例集,计算不同类样本实例集中样本与随机样本r之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本mj(c),1<j≤k;

步骤1-3:根据前两个步骤选择的m个样本r和它对应的hi以及mj(c),更新特征集a中n个特征的权值集合w[a]:

其中,p(c)表示类别为c的分布概率,c≠class(r)表示与样本r不同类别,class(r)表示样本r所属的类别,diff函数定义为:

对于离散特征:

对于连续特征:

式中i1,i2为两个样本实例,value()表示当前样本实例中特征集a的取特征值。

作为优选方案,所述步骤2包括如下步骤:

步骤2-1:初始化粒子群中每个粒子的速度vid和位置xid,i表示第i个粒子,d表示第d维度;设定bpso的各个参数:种群大小swarmsize,惯性权值g,常量系数c1和c2,权重值α,速度取值区间[vmin,vmax],最大迭代次数t;

步骤2-2:使用初始化的位置xid作为每个粒子历史最优点pbestid;

步骤2-3:使用初始化的位置xid作为更新全局最优点gbestd;

步骤2-4:更新每个粒子的速度vid:

vid(n+1)=g*vid(n)+c1*rand()*(pbestid-xid(n))+c2*rand()*(gbestd-xid(n))

其中,n表示为当前为第n次迭代,rand()代表在[0,1]之间取值的随机函数;

步骤2-5:计算基于迭代历史信息的第d个特征的选择概率:

其中,m代表记录粒子群gbestd的个数,g表示由m个gbestd组成历史信息矩阵,若当前历史信息记录里已有m个记录,当新更新的gbestd加入时应剔除历史信息记录中存留时间最久的记录,保证“先进先出”的特性;由于在bpso算法中位置向量是由“0”,“1”组成的字符串,sum方法则是将第d列相加则表示为粒子群在m次更新gbest过程中第d维被选中的总次数;

步骤2-6:计算第d个特征的可信度:

其中,wd[a]代表权值集合w[a]中第d个特征的权值,α为权重值;

步骤2-7:更新每个粒子的位置xid,根据引入的特征的可信度,bpso位置xid更新的公式变为:

其中sigmoid公式为:

步骤2-8:根据步骤2-7得到的每个粒子的位置xid,计算适应度函数:

fitnessfunction=errorrate

errorrate表示分类算法的错误率;

若当前每个粒子适应度函数的值小于之前每个粒子适应度函数的值,则用当前的位置代替之前的pbestid;

若当前全局最优点的适应度函数的值小于之前全局最优点的适应度函数的值,则用当前的位置代替之前全局最优点gbestd;

步骤2-9:基于标准bpso循环执行步骤2-4至2-8直到达到设定的最大迭代次数t。

作为优选方案,所述步骤3包括如下步骤:根据最终输出的gbestd,gbestd是由“0”,“1”组成的数列,该数列与样本特征集a中的特征一一对应,gbestd数列中“1”代表样本特征集a中对应位置的特征被选中,gbestd数列中“0”代表样本特征集a对应位置的特征未选中,选中的特征即为最终选择的特征。

有益效果:本发明提供的一种基于特征可信度的高效特征选择方法,其优点如下:

1、本发明计算特征集中各个特征的权值来度量特征与类别之间的关系,与类别相关性较高的特征提升了特征的可信度,引导粒子群向更快收敛的方向搜索。

2、本发明引入了迭代历史信息中各个特征的选择概率来引导搜索方向。如果在多次更新粒子群的全局最优位置的时候,第d维度多次被选中,这说明第d维度很大概率能够增加适应度函数的性能。本发明在下一次迭代过程中考虑了这种影响,提高了bpso在搜索特征子集时的搜索效率。

3、本发明选择的特征子集剔除了冗余特征,完全能够代替原来的特征全集,不仅提升了系统性能,而且大大降低了系统的计算开销。

附图说明

图1为特征选择的一般过程示意图。

图2为本发明的方案实施流程图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

如图1所示,特征选择的一般过程为:首先从特征全集中构造一个可能的特征子集(本发明基于标准bpso方法构造特征子集),然后利用某种子集评估准则(本发明的适应度函数)对当前的特征子集进行性能评估,然后将性能评估结果与停止准则(本发明设置的迭代终止条件)进行比较,如果满足停止准则,则当前的特征子集就是最优特征子集。若不满足,则继续产生新的可能存在的特征子集,重复之前的步骤直至满足停止准则。最后,为了确保特征子集是否为最优,需要将当前所选的最优特征子集进行结果验证。

如图2所示,一种基于特征可信度的高效特征选择方法,包括如下步骤:

步骤1:从数据集中随机挑选出样本,选取该随机样本的同类和不同类样本实例集,计算同类样本实例集中样本与随机样本之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本;计算不同类样本实例集中样本与随机样本之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本;对同类和不同类k个样本的每个特征的权值进行更新,作为特征可信度的一个来源。

步骤1-1:设训练数据集为d,迭代次数为m,样本特征集a=[a1,a2,a3,...,an](n为特征个数,an为该特征的取值)。设特征集a中特征的权值集合w[a]=[w1,w2,w3,...,wn],置所有的特征的初始权值为0,则w[a]=0。

步骤1-2:循环执行以下2个步骤m次:

步骤1-2-1:从训练数据集d中随机选择一个样本r,选取该随机样本r的同类样本实例集,计算同类样本实例集中样本与随机样本r之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本hi,1<j≤k。

步骤1-2-2:选取该随机样本r的不同类样本实例集,计算不同类样本实例集中样本与随机样本r之间的欧氏距离,并按欧氏距离大小排序,从序列中欧氏距离最小的样本开始选取,取k个样本mj(c),1<j≤k。

步骤1-3:根据前两个步骤选择的m个样本r和它对应的hi以及mj(c),更新特征集a中n个特征的权值集合w[a]:

其中,p(c)表示类别为c的分布概率,c≠class(r)表示与样本r不同类别,class(r)表示样本r所属的类别,diff函数定义为:

对于离散特征:

对于连续特征:

式中i1,i2为两个样本实例,value()表示当前样本实例中特征集a的取特征值。

步骤2:设定bpso各个参数,计算各个特征迭代历史信息的选择概率作为特征可信度的第二个来源,并结合特征集a中各个特征的权值计算特征的可信度。

步骤2-1:初始化粒子群中每个粒子的速度vid和位置xid(i表示第i个粒子,d表示第d维度)。设定bpso的各个参数:种群大小swarmsize,惯性权值g,常量系数c1和c2,权重值α,速度取值区间[vmin,vmax],最大迭代次数t。

步骤2-2:使用初始化的位置xid作为每个粒子历史最优点pbestid。

步骤2-3:使用初始化的位置xid作为更新全局最优点gbestd。

步骤2-4:更新每个粒子的速度vid:

vid(n+1)=g*vid(n)+c1*rand()*(pbestid-xid(n))+c2*rand()*(gbestd-xid(n))

其中,n表示为当前为第n次迭代,rand()代表在[0,1]之间取值的随机函数;

步骤2-5:计算基于迭代历史信息的第d个特征的选择概率:

其中,m代表记录粒子群gbestd的个数,g表示由m个gbestd组成历史信息矩阵,若当前历史信息记录里已有m个记录,当新更新的gbestd加入时应剔除历史信息记录中存留时间最久的记录,保证“先进先出”的特性。由于在bpso算法中位置向量是由“0”,“1”组成的字符串,sum方法则是将第d列相加则表示为粒子群在m次更新gbest过程中第d维被选中的总次数。

步骤2-6:计算第d个特征的可信度:

其中,wd[a]代表权值集合w[a]中第d个特征的权值,α为权重值。相对于标准bpso,这里对粒子维度的更新引入了特征的可信度的影响,特征的可信度结合了特征与分类类别的相关性和基于历史信息的选择比例。

步骤2-7:更新每个粒子的位置xid,根据引入的特征的可信度,bpso位置xid更新的公式变为:

其中sigmoid公式为:

步骤2-8:根据步骤2-7得到的每个粒子的位置xid,计算适应度函数:

fitnessfunction=errorrate

errorrate表示分类算法的错误率。

若当前每个粒子适应度函数的值小于之前每个粒子适应度函数的值,则用当前的位置代替之前的pbestid。

若当前全局最优点的适应度函数的值小于之前全局最优点的适应度函数的值,则用当前的位置代替之前全局最优点gbestd。

步骤2-9:基于标准bpso循环执行步骤2-4至2-8直到达到设定的最大迭代次数t。

步骤3:根据最终输出的gbestd,gbestd是由“0”,“1”组成的数列,该数列与样本特征集a中的特征一一对应,gbestd数列中“1”代表样本特征集a中对应位置的特征被选中,gbestd数列中“0”代表样本特征集a对应位置的特征未选中,选中的特征即为最终选择的特征。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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