一种基于二进制蜜蜂觅食算法的特征选择方法技术

技术编号:31707897 阅读:62 留言:0更新日期:2022-01-01 11:10
本发明专利技术公开了一种基于二进制蜜蜂觅食算法的特征选择方法,涉及数据挖掘技术领域。针对现有的对高维数据进行特征选择的需求,该方法将蜜蜂种群分为侦察蜂、采蜜蜂和待工蜂,不同的子种群采用不同的策略进行更新,并将搜索空间限制在[0,1]之间。其中,侦察蜂采用随机搜索的方式,采蜜蜂采用V形传递函数进行二进制位置更新,待工蜂位置更新采用单一维度位置取反的策略。该方法具有特征选择准确性高,鲁棒性强,搜索效率高等特点,实现了对高维数据集进行特征选择的高效求解。进行特征选择的高效求解。进行特征选择的高效求解。

【技术实现步骤摘要】
一种基于二进制蜜蜂觅食算法的特征选择方法


[0001]本专利技术涉及数据挖掘
,具体为一种基于二进制蜜蜂觅食算法的特征选择方法。

技术介绍

[0002]现有技术中,蜜蜂觅食算法是近年来新提出的连续优化算法,该算法是一种有效的求解包裹式特征选择问题的方法,算法将蜜蜂种群分为侦察蜂、采蜜蜂和待工蜂,利用侦察蜂进行全局搜索,利用采蜜蜂的全维度搜索来对食物源位置进行更新,利用待工蜂的随机单维度搜索让食物源位置更新更加高效。蜜蜂觅食算法效率高,需要调节的参数少,具有很强的搜索能力,这些性质说明该算法可以应用于解决特征选择问题。
[0003]现有的蜜蜂觅食算法其实并不是专门用来处理特征选择任务,而是为了处理连续优化问题,因此将蜜蜂觅食算法直接用于解决特征选择问题时存在一些缺点,比如分类精度低、选取的特征数目偏大、鲁棒性较差、搜索速度较慢等问题,这大大影响了蜜蜂觅食算法在对高维数据进行特征选择时的实际应用效果。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供了一种基于二进制蜜蜂觅食算法的特征选择方法,解决了上述
技术介绍
中提出的原始的蜜蜂觅食算法直接用来解决特征选择问题时存在的一些缺点,比如分类精度低、选取的特征数目偏大、鲁棒性较差、搜索速度较慢等问题。
[0005]为实现以上目的,本专利技术通过以下技术方案予以实现:一种基于二进制蜜蜂觅食算法的特征选择方法,包括下述操作步骤:
[0006]S1、从公共数据集中提取特征数据;
[0007]S2、进行参数初始化,设置最大迭代次数Max_iteration,独立运行次数runtime,种群规模pop,整个蜂群包含侦察蜂、采蜜蜂和待工蜂;
[0008]S3、N个侦察蜂随机搜索空间,其搜索空间被限制在[0,1]之间,其位置如式:
[0009][0010]其中,P
s
是侦察蜂的位置,rand是大小在[0,1]之间的随机数,如果这个随机数小于0.5,则侦察蜂的位置取0,反之取1。
[0011]S4、计算适应度函数值,根据适应度函数值对食物源进行排序,选择适应度函数值较小的0.5N个食物源作为选定食物源,适应度函数的计算过程如式所示:
[0012][0013]其中,γ
R
D是通过将错误分类的实例数除以实例总数得出的分类错误率。R是所选特征子集的长度,M是特征的总数,参数α与β是权系数,其中β=1

α,将α设置为0.99,β设置为0.01。
[0014]S5、根据以下公式设置停滞上限:
[0015][0016]其中Limit
st
表示食物源停滞的上限,如果停滞数大于Limit
st
,则相应的选定食物源将被抛弃,n
sc
是邻域收缩系数,被设为0.8。
[0017]S6、进行采蜜蜂局部搜索阶段,采蜜蜂更新食物源的步骤如下:
[0018](6

1)、根据下式给每个选定食物源平均分配采蜜蜂:
[0019][0020]其中N
i
是第i个选定食物源招募的采蜜蜂数量,n
f
表示采蜜蜂总数,n
s
表示选定食物源的数目;
[0021](6

2)、对于每个选定食物源,使用下式所示的V形传递函数更新采蜜蜂位置,公式如下:
[0022][0023]其中,T
v
代表所使用的V形传递函数;y
i
是新定义的一个随机变量,用于产生采蜜蜂位置改变的概率,此变量的取值在[0,1]之间;
[0024]采蜜蜂根据以下公式更新位置:
[0025][0026]其中,P
f
是采蜜蜂的位置,rand是大小在[0,1]之间的随机数;
[0027](6

3)、将当前采蜜蜂找到的食物源位置带入分类算法中计算分类准确率以及选择的特征数目,计算新的适应度值;如果新的食物源适应度值更小,则接受采蜜蜂找到的食物源,并将停滞次数设置为0;否则保留原有的食物源位置,停滞次数加一,并根据式对搜索范围进行收缩,公式如下:
[0028]S
nh
(n+1)=n
sc
·
S
nh
(n)
[0029]其中,S
nh
(n)是当前的搜索范围;S
nh
(n+1)是下一次迭代的搜索范围;n
sc
是收缩系数,设为0.8;
[0030](6

4)、在采蜜蜂局部搜索之后,所有选定食物源均根据适应度函数值进行排序和分类;
[0031]S7、进行待工蜂局部搜索阶段,具体步骤如下:
[0032](7

1)、根据下述公式所示给每个选定食物源分配待工蜂:
[0033][0034]其中N
j
是第j个选定食物源招募的待工蜂数量;fitness
j
是第j个选定食物源的适应度函数值;n0表示待工蜂总数;K是选定食物源的数量,等于侦察蜂数量的一半;fix表示取整;
[0035](7

2)、为了保证每次迭代的有效性,待工蜂从其所在的选定食物源中随机选取一个维度,根据下述公式进行位置更新:
[0036][0037]其中,d代表[1,M]之间随机选取的待更新的单一维度,代表待工蜂本次更新的位置,代表待工蜂所在选定食物源的位置;
[0038](7

3)、将当前待工蜂找到的食物源位置带入分类算法中计算分类准确率以及选择的特征数目,计算新的适应度值并与原来比较。如果新的适应度值更小,则接受待工蜂找到的食物源,并将停滞次数设置为0;否则保留原有的食物源位置,停滞次数加一;
[0039](7

4)、判断停滞次数是否大于停滞上限,如果停滞次数大于停滞上限,则相应的选定食物源将排在所有食物源的最后,并将在全局搜索阶段被抛弃,将停滞次数设为0,邻域范围恢复为原始大小;
[0040]S8、进入全局搜索阶段,N个侦察蜂随机搜索,寻找新的食物源;
[0041]S9、计算所有食物源的适应度函数值,包括由侦察蜂发现的新食物源与本轮迭代得到的选定食物源,根据适应度函数值给所有食物源排序,记录迄今为止最好的食物源;
[0042]S10、选择适应度函数值较小的0.5N个食物源作为下次迭代中的选定食物源;
[0043]S11、判断是否满足终止条件,如果不满足,返回S6步骤,若满足终止条件,输出全局最优解,得到最优特征子集。
[0044]可选的,所述S2步骤中,侦察蜂占整个蜂群的10%,采蜜蜂和待工蜂的数量各占整个蜂群的45%。
[0045]可选的,所述S3步骤中,P
s
是侦察蜂的位置,rand是大小在[0,1]之间的随机数,如果这个随机数小于0.5,则本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于二进制蜜蜂觅食算法的特征选择方法,其特征在于:包括下述操作步骤:S1、从公共数据集中提取特征数据;S2、进行参数初始化,设置最大迭代次数Max_iteration,独立运行次数runtime,种群规模pop,整个蜂群包含侦察蜂、采蜜蜂和待工蜂;S3、N个侦察蜂随机搜索空间,其搜索空间被限制在[0,1]之间,其位置如式:其中,P
s
是侦察蜂的位置;rand是大小在[0,1]之间的随机数,如果这个随机数小于0.5,则侦察蜂的位置取0,反之取1。S4、计算适应度函数值,根据适应度函数值对食物源进行排序,选择适应度函数值较小的0.5N个食物源作为选定食物源,适应度函数值的计算过程如式所示:其中,γ
R
(D)是通过将错误分类的实例数除以实例总数得出的分类错误率;R是所选特征子集的长度;M是特征的总数;参数α与β是权重系数,其中β=1

α,将α设置为0.99,β设置为0.01。S5、根据以下公式设置停滞上限:其中Limit
st
表示食物源停滞的上限,如果停滞数大于Limit
st
,则相应的选定食物源将被抛弃,n
sc
是邻域收缩系数,被设为0.8。S6、进行采蜜蜂局部搜索阶段,采蜜蜂更新食物源的步骤如下:(6

1)、根据下式给每个选定食物源平均分配采蜜蜂:其中N
i
是第i个选定食物源招募的采蜜蜂数量,n
f
表示采蜜蜂总数,n
s
表示选定食物源的数目;(6

2)、对于每个选定食物源,使用下式所示的V形传递函数更新采蜜蜂位置,公式如下:其中,T
v
代表所使用的V形传递函数;y
i
是新定义的一个随机变量,用于产生采蜜蜂位置改变的概率,此变量的取值在[0,1]之间;采蜜蜂根据以下公式更新位置:
其中,P
f
是采蜜蜂的位置,rand是大小在[0,1]之间的随机数;(6

3)、将当前采蜜蜂找到的食物源位置带入分类算法中计算分类准确率以及选择的特征数目,计算新的适应度值;如果新的食物源适应度值更小,则接受采蜜蜂找到的食物源,并将停滞次数设置为0;否则保留原有的食物源位置,停滞次数加一,并根据式对搜索范围进行收缩,公式如下:S
nh
(n+1)=n
sc
·
S
nh
(n)其中,S
nh
(n)是当前的搜索范围;S
nh
(n+1)是下一次迭代的搜索范围;n
sc
是收缩系数,设为0.8;(6

4)、在采蜜蜂局部搜索之后,所有选定食物源均根据适应度函数值进行排序和分类;S7、进行待工蜂局部搜索阶段,具体步骤如下:(7

1)...

【专利技术属性】
技术研发人员:张志成孙雪瑶
申请(专利权)人:北京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1