一种基于改进蝙蝠算法的大数据特征选择方法与流程

文档序号:17589713发布日期:2019-05-03 21:40阅读:516来源:国知局
一种基于改进蝙蝠算法的大数据特征选择方法与流程
本发明涉及一种蝙蝠算法和特征选择方法,属于人工智能与机器学习领域。
背景技术
:随着国家整体信息化水平快速提升,智慧民生服务信息技术广泛采用,智慧民生服务信息资源大幅增加,公共文化信息保障能力明显增长,智慧民生服务开始进入全方位覆盖、多层次推进和专业化发展的信息化时代。智慧民生服务体系支撑技术,是在新的信息技术的支持下,对传统智慧民生服务进行改造和变革,全面提升服务品质的技术手段、服务平台和管理方式。是不断满足群众需求,使政府提供的智慧民生服务变得更经济、更有效率、效能和效益,更好地保障人民群众公共文化权益的技术载体是基础设施,是提高智慧民生服务“文化力”的重要手段和途径。随着多媒体内容在网络环境中的广泛传播,各类不同类型、不同粒度、不同格式的音视频内容冲击着传统的广电媒体传播途径,造成了海量数据存储、管理、查询、分析、挖掘等的混乱与困境。在此环境下,研究三屏融合下多应用端口数据的集成与融合技术成为基于三屏融合的智慧民生综合服务平台技术支撑的一项紧迫任务。研究三屏融合下多应用端口数据的集成与融合技术,重点是解决异构数据在语法、语义、以及大数据交换过程中高效的数据分类、集成问题。主要的研究内容包括:分布存储环境下数据源的抽取、数据变换、数据集成以及最终的数据融合等内容,目标是建立一个相对静态、统一的数据集成、数据管理和数据分析环境。大数据规约是在海量数据分析过程中,不直接使用待分析的原始数据集,而使用原始数据集的子集作为分析对象,以期获得近似分析效果的方法。其中,特征选择就是大数据规约的一种方法。在实际应用场景中,特征数量往往较多,其中可能存在不相关的特征,特征之间也可能存在相互依赖,容易导训练模型所需的时间较长,模型过于复杂,引起维度灾难等。特征选择能剔除不相关或亢余特征,从而达到减少特征个数,提高分类学习效率和模型精确度,减少运行时间的目的。另一方面,选取出真正相关的特征简化了模型,使研究人员易于理解数据产生的过程。目前已经有很多算法用来进行特征的选择,有些基于评价函数对特征重要性进行排序,通过分析特征子集内部的特点来衡量其好坏,常见的评价指标有基于信息增益、基于距离、基于相关性等;除此之外,还有一些算法用选取的特征子集对样本集进行分类,将分类的精度作为衡量特征子集好坏的标准。但是这些算法单一地评价某个特征的好坏,没有考虑不同特征组合的不同表现以及特征之间的相互影响。群体智能算法在特征选择问题上取得了良好的结果。喻春萍等人使用遗传算法(geneticalgorithm,ga)和基于关联的特征选择(correlation-basedfeatureselection,cfs)相结合的方式实现中文网页自动分类的特征选择。缺点是操作比较繁琐,变异机制导致稳定性变差,计算量增大,训练时间较长。n.cleetus等使用改进的pso算法选取入侵检测的优化特征组合,与ga相比,pso算法没有ga中较为复杂的变异、变异等操作,仅利用个体经验和种群特征进行自适应调整,规则较为简单,收敛速度较快。但同时容易陷入局部最优解,导致收敛精度低和不易收敛等缺陷。t.mehmood等用蚁群算法(antcolonyoptimization,aco)进行特征选取并用支持向量机(supportvectormachine,svm)进行流量分类进行网络异常检测,也取得了良好的实验结果。然而这些算法仍存在参数较多、收敛速度慢、实现复杂等缺点,需要对算法进行进一步改进。蝙蝠算法(batalgorithm,ba)是xin-sheyang于2010年提出一种获取全局最优解的启发式搜索算法。它的灵感来源于大自然蝙蝠的仿生学行为,主要思想是模拟蝙蝠在捕食中的回声定位行为。种群中各不相同的蝙蝠随机飞行,利用回声定位感知周围环境,寻找目标猎物。蝙蝠的位置就是这类优化问题的解。对于特征选择问题,通常利用蝙蝠算法的改进版本—二进制蝙蝠算法。本发明将特征选择的过程看做是种群中个体迭代地进行位置移动和目标搜索的过程。通常,可使用适应度函数衡量问题解的优劣。蝙蝠算法具有模型简单、鲁棒性强、并行程度高等优点。自问世就收到广大学者的热切关注,其理论和应用经过近几年的发展也得到了很大的进步,已经被广大研究者普遍用于自然科学和工程实践中,如工程优化,模式识别、k均值聚类、特征选择和数据挖掘等领域中。蝙蝠算法拥有群体智能算法的长处,例如强大的全局搜索范围和较短的收敛时间,但同时也存在一些群体智能算法共同的缺点,比如容易发生算法的早熟现象,易陷入局部最优解的缺点。因为每个蝙蝠单纯受到全局最优个体的影响,很难高效地和邻居进行信息交换。同时,算法本身缺乏变异机制,使得群体内部个体位置缺乏多样性。技术实现要素:本发明所要解决的技术问题是:提供一种基于改进蝙蝠算法的大数据特征选择方法,以增强种群间相互学习和信息的高效传递,提升个体的差异性和搜索能力,避免过早收敛。本发明的发明构思是:通过改进一种智能优化算法—蝙蝠算法来选择三屏融合背景下智慧民生大数据的较优特征组合。本发明是一种基于改进蝙蝠算法的大数据特征选择方法,针对蝙蝠算法易陷入局部最优的缺点,提出引入基于k-means算法的子种群划分机制和二进制差分变异机制。改进后的算法增强了种群间相互学习和信息的高效传递,提升了个体的差异性和搜索能力,避免过早收敛。为解决本发明的技术问题,本发明采取的技术方案如下:本发明一种基于改进蝙蝠算法的大数据特征选择方法包括如下步骤:(1)初始化蝙蝠算法的相关参数,所述相关参数包括:蝙蝠群体个体数n,最大脉冲音量a0,最大脉冲率r0,搜索脉冲频率范围[fmin,fmax],音量的衰减系数α,搜索频率的增强系数γ,最大迭代次数nt;按以下方法随机初始化蝙蝠的位置,产生n个候选特征组合:对于第i个蝙蝠,根据蝙蝠的空间位置xi=(xi,1,xi,2,...,xi,d)和速度vi=(vi,1,vi,2,...,vi,d),将蝙蝠的空间位置抽象成一个d维空间的二进制字符串,该d维空间的二进制字符串为一个候选的特征组合,其中,d为候选特征数目;所述二进制字符串的值为1的位表示当前位置的特征被选中,所述二进制字符串的值为0表示当前位置的特征未被选中;(2)根据公式(1)的适应度函数计算每个蝙蝠的适应度值f(xi),并从所有蝙蝠中找出当前最优蝙蝠的位置g0;f=0.6×r+0.4×e-f×a(1)公式(1)中,r、f和a分别表示利用当前迭代所选特征组合作为输入进行分类的召回率、f分数和准确率;根据公式(2)和公式(3)更新本轮迭代的惯性系数和自学习因子;公式(2)和公式(3)中,wt表示每个蝙蝠迭代t次时的惯性系数,ct表示每个蝙蝠迭代t次时的自学习因子,wmax是惯性系数的最大值、wmin是惯性系数的最小值,cmax是自学习因子的最大值,cmin是自学习因子的最小值,nt是最大迭代次数;按照公式(4)计算控制蝙蝠是否执行变异操作的变异的概率pt:公式(4)中,nt是最大迭代次数,t表示迭代次数;按照公式(5)计算0、1之间随机产生的收缩因子ft:公式(5)中,fmax是收缩因子的最大值,fmin是收缩因子的最小值,nt是最大迭代次数;(3)利用k-means算法根据蝙蝠之间的距离把蝙蝠群体分成子种群;(4)按照如公式(6)-(9)所示的方法相应更新每个子种群中的每个蝙蝠的内部变量搜索脉冲频率fi、飞行速度vi、空间位置xi;对于每个子种群内部的非局部最优个体和局部最优个体分别按照公式(7)和(8)更新飞行速度:fi=fmin+(fmax-fmin)·β(6)vit=wt·vit-1+(xit-1-mnt-1)·fi+(xit-1-pit-1)·ct(7)vit=wt·vit-1+(xit-1-gt-1)·fi+(xit-1-pit-1)·ct(8)公式(6)中,fmax和fmin分别是脉冲频率的最大值和脉冲频率的最小值,β是一个均匀分布的随机变量,且β∈[0,1];公式(7)和(8)中,vit和vit-1分别表示蝙蝠个体i在t和t-1时刻的飞行速度公式;xit和xit-1分别表示蝙蝠个体i在t和t-1时刻所处的位置;mnt-1为子种群n在t-1时刻局部较优个体的位置;gt-1为整个群体在t-1时刻全局最佳蝙蝠位置;pit-1为每个蝙蝠i在t-1时刻保留的历史最佳位置;wt和ct表示迭代t次时蝙蝠的惯性系数和自学习因子;公式(9)δ是一个随机变量,δ∈[0,1],s是sigmoid函数;(5)产生一个随机数rand1,如果rand1>ri,则根据公式(10)对蝙蝠群体的当前最佳蝙蝠位置进行随机扰动得到该蝙蝠的新的位置xnew,然后执行步骤(6);如果rand1≤ri,则执行步骤(7);ri是当前迭代第i个蝙蝠的脉冲频率:xnew=xold+δ·at*(10)其中xold是蝙蝠的原位置,δ是介于-1和1之间的随机数。at*是第t轮迭代所有蝙蝠的平均响度;(6)产生一个随机数rand2,如果rand2<ai且f(xi)<f(xnew),则用新的位置xnew替换该蝙蝠的原位置,并根据公式(11)、(12)相应更新该蝙蝠在当前迭代次数t的音量ait和脉冲频率rit;否则,执行步骤(7);其中,f(xi)表示该蝙蝠原位置的适应度值,f(xnew)表示该蝙蝠新位置的适应度值;ait=α·ait-1(11)其中ait-1表示蝙蝠个体i在t-1时刻的音量,α是常数,α∈(0,1);ri0表示蝙蝠个体i在初始时的脉冲频率,γ是常数,γ>0;(7)对每个蝙蝠产生一个随机数rand3,根据公式(13)对其中满足rand3<pt蝙蝠的当前速度执行突变;其中r1,r2,r5是在和目标蝙蝠在同一子种群中随机选择的个体,r3,r4是不同子种群中随机选取的蝙蝠;“+”是逻辑异或操作是逻辑或操作。rand是0到1之间生成的随机数。“·”表示若条件rand<ft满足,括号中的操作将执行;(8)对所有蝙蝠的适应度值进行排序,以适应度值最高的蝙蝠的位置作为当前候选特征组合;判断当前候选特征组合是否满足预先设定的最优条件,若满足,则以当前候选特征组合作为选择的特征组合;若不满足,则返回执行步骤(2)。与现有技术相比,本发明的优点在于:本发明改进的蝙蝠算法,通过随时间变化的惯性系数和学习因子控制使个体的搜索和寻优能力自适应变化。通过引入子种群划分机制,使得个体对最优位置的学习和移动可以在子种群内部和种群之间展开,既保证了优化信息在个体之间的传递,又避免了局部最优个体的极端影响。二进制差分变异的引入增强了个体位置的多样性,在迭代过程中为趋于同化的种群引入新的活力。与常见模型相比,本发明改进的蝙蝠算法加快了收敛速度,提升了优化效果。利用该算法进行特征选择后,本发明选取特征对后续分类判断贡献巨大,提升了分类的精度和性能。附图说明图1是子种群划分机制示意图;图2是不同群体智能算法的性能比较图;图3是不同个体数目和迭代次数的算法性能比较图;图4是不同种群划分方法的性能比较图。具体实施方式本发明是在三屏融合背景下的一种基于改进蝙蝠算法的智慧民生大数据特征选择方法,它利用并改进群体智能优化算法—蝙蝠算法来选择较优特征。将候选特征组合视为蝙蝠算法中个体的位置,将特征选择的过程看作是种群中蝙蝠个体迭代地进行位置移动和目标搜索的过程,最终搜索到的全局最优位置即为选择的特征。针对原始蝙蝠算法,做如下改进:引入基于k-means算法的子种群划分机制,增强了子种群内部邻域个体间高效学习和子种群之间优化信息的传递;引入二进制差分变异机制;除此之外,在速度更新公式中引入线性时变的惯性因子和自学习系数,在变异时引入变异概率和收缩系数,使得蝙蝠个体的搜索能力随迭代次数自适应变化,避免过早陷入局部最优解,加快收敛速度。利用上述改进蝙蝠算法进行特征选择,减少了筛选特征的时间,选出的特征也更有利于后续分类,性能较好。具体而言,本发明包括如下步骤:(1)初始化蝙蝠算法的相关参数,所述相关参数包括:蝙蝠群体个体数n,最大脉冲音量a0,最大脉冲率r0,搜索脉冲频率范围[fmin,fmax],音量的衰减系数α,搜索频率的增强系数γ,最大迭代次数nt;按以下方法随机初始化蝙蝠的位置,产生n个候选特征组合:对于第i个蝙蝠,根据蝙蝠的空间位置xi=(xi,1,xi,2,...,xi,d)和速度vi=(vi,1,vi,2,...,vi,d),将蝙蝠的空间位置抽象成一个d维空间的二进制字符串,该d维空间的二进制字符串为一个候选的特征组合,其中,d为候选特征数目;所述二进制字符串的值为1的位表示当前位置的特征被选中,所述二进制字符串的值为0表示当前位置的特征未被选中。(2)根据公式(1)的适应度函数计算每个蝙蝠的适应度值f(xi),并从所有蝙蝠中找出当前最优蝙蝠的位置g0。f=0.6×r+0.4×e-f×a(1)公式(1)中,r、f和a分别表示利用当前迭代所选特征组合作为输入进行分类的召回率、f分数和准确率;由于选取的特征组合对最终分类结果具有重要影响,所以此处定义适应度函数由利用所选特征训练分类器后分类效果的评价指标决定。根据公式(2)和公式(3)更新本轮迭代的惯性系数和自学习因子;公式(2)和公式(3)中,wt表示每个蝙蝠迭代t次时的惯性系数,ct表示每个蝙蝠迭代t次时的自学习因子,wmax是惯性系数的最大值、wmin是惯性系数的最小值,cmax是自学习因子的最大值,cmin是自学习因子的最小值,nt是最大迭代次数。本发明通过引入随迭代次数增加而线性减小的惯性权重wt来改善算法的优化能力。在早期迭代时,蝙蝠具有较大的惯性系数和更高的速度,具有更强大的全局搜索能力。进入后期,较小的惯性权重有助于更准确的局部搜索,从而加速算法收敛速度。通过使用参数ct吸取蝙蝠历史位对位置学习的优势,提升速度更新效果。动态自适应变化的参数代表历史最优位置对当前速度的影响程度。刚开始具有较大ct的蝙蝠在自己当前位置附近飞行,具有较好的局部探索能力。后来ct逐渐减小,蝙蝠位置主要受到全局最优个体影响,提高了其开发能力。按照公式(4)计算控制蝙蝠是否执行变异操作的变异的概率pt:公式(4)中,nt是最大迭代次数,t表示迭代次数;在早期迭代,每只蝙蝠具有较小的变异概率,可以在较大的空间内充分利用其搜索能力寻优。随着迭代次数增加,蝙蝠更有可能变异,打破局部最优的约束,避免早熟。按照公式(5)计算0、1之间随机产生的收缩因子ft:公式(5)中,fmax是收缩因子的最大值,fmin是收缩因子的最小值,nt是最大迭代次数;收缩因子通过控制差分向量之间的影响来控制变异操作。较大的f值有助于维持种群个体的多样性,而较小的f可以使个体获得更好的局部搜索能力。(3)利用k-means算法根据蝙蝠之间的距离把蝙蝠群体分成子种群。具体地说,在每次迭代过程中,利用k-means算法根据个体之间的距离把种群分成固定个数的子种群。算法一共分为两个层次:第一个层次中,每个子种群内部的个体只向其当前局部最优个体学习和移动。个体速度的改变只受自己历史最优位置和局部最优解的影响;第二个层次中,每个子种群的局部最优个体也同样地向全局最优个体学习和移动,全局信息可以在种群之间扩散开来。通过这样的方式,蝙蝠个体分层的向更优个体移动并迭代地获得更好的位置,避免受到某一个体的极端影响。所有的蝙蝠都会在每次迭代后重新组合成子种群,直到算法终止。(4)按照如公式(6)-(9)所示的方法相应更新每个子种群中的每个蝙蝠的内部变量搜索脉冲频率fi、飞行速度vi、空间位置xi;对于每个子种群内部的非局部最优个体和局部最优个体分别按照公式(7)和(8)更新飞行速度:fi=fmin+(fmax-fmin)·β(6)vit=wt·vit-1+(xit-1-mnt-1)·fi+(xit-1-pit-1)·ct(7)vit=wt·vit-1+(xit-1-gt-1)·fi+(xit-1-pit-1)·ct(8)公式(6)中,fmax和fmin分别是脉冲频率的最大值和脉冲频率的最小值,β是一个均匀分布的随机变量,且β∈[0,1];公式(7)和(8)中,vit和vit-1分别表示蝙蝠个体i在t和t-1时刻的飞行速度公式;xit和xit-1分别表示蝙蝠个体i在t和t-1时刻所处的位置;mnt-1为子种群n在t-1时刻局部较优个体的位置;gt-1为整个群体在t-1时刻全局最佳蝙蝠位置;pit-1为每个蝙蝠i在t-1时刻保留的历史最佳位置;wt和ct表示迭代t次时蝙蝠的惯性系数和自学习因子;公式(9)δ是一个随机变量,δ∈[0,1],s是sigmoid函数。(5)产生一个随机数rand1,如果rand1>ri,则根据公式(10)对蝙蝠群体的当前最佳蝙蝠位置进行随机扰动得到该蝙蝠的新的位置xnew,然后执行步骤(6);如果rand1≤ri,则执行步骤(7);ri是当前迭代第i个蝙蝠的脉冲频率:xnew=xold+δ·at*(10)其中xold是蝙蝠的原位置,δ是介于-1和1之间的随机数。at*是第t轮迭代所有蝙蝠的平均响度。(6)产生一个随机数rand2,如果rand2<ai且f(xi)<f(xnew),则用新的位置xnew替换该蝙蝠的原位置,并根据公式(11)、(12)相应更新该蝙蝠在当前迭代次数t的音量ait和脉冲频率rit;否则,执行步骤(7);其中,f(xi)表示该蝙蝠原位置的适应度值,f(xnew)表示该蝙蝠新位置的适应度值。ait=α·ait-1(11)其中ait-1表示蝙蝠个体i在t-1时刻的音量,α是常数,α∈(0,1);ri0表示蝙蝠个体i在初始时的脉冲频率,γ是常数,γ>0;当蝙蝠个体接近目标时,它会按照如上方式减少ai并增加ri。(7)对每个蝙蝠产生一个随机数rand3,根据公式(13)对其中满足rand3<pt蝙蝠的当前速度执行突变。其中r1,r2,r5是在和目标蝙蝠在同一子种群中随机选择的个体,而r3,r4是不同子种群中随机选取的蝙蝠。由于空间中每个蝙蝠的位置和速度由二进制字符串表示,本发明可利用逻辑运算来实现变异过程。“+”是逻辑异或操作是逻辑或操作。rand是0到1之间生成的随机数。“·”表示若条件rand<ft满足,括号中的操作将执行。(8)对所有蝙蝠的适应度值进行排序,以适应度值最高的蝙蝠的位置作为当前候选特征组合;判断当前候选特征组合是否满足预先设定的最优条件,若满足,则以当前候选特征组合作为选择的特征组合;若不满足,则返回执行步骤(2)。本发明进一步引入差异进化的突变机制,可增强种群多样性,提高蝙蝠个体跳出局部最优的能力。通过在种群中随机选取个体,利用个体间的差异性给目标值带来一定扰动。这个扰动包含了同一种群内和不同种群间个体的差异性。这样操作的优点在于既保持了原个体自身位置的优异性,避免不必要的变异带来的性能降低。同时,又引入不同群体之间的差异性,促进整个种群进化。以下以具体的实施例进一步说明本发明的技术方案。本实施利用网络入侵检测kddcup1999数据集,将已选网络流量特征作为输入、随机森林(randomforest,rf)算法作为分类器对网络流量进行分类,通过分类效果的好坏验证特征选择的优劣。数据集详情特征如下:表1实验数据详情目前已经有一些针对蝙蝠算法的改进模型。a.c.enache等人提出利用levy飞行的方法增强候选解的随机性。t.kanungo等人提出利用当前候选解和较优解的欧氏距离生成增量随机生成一个新解,来防止算法陷入局部最优。本发明将提出的改进算法与一些已有的改进蝙蝠算法和常见的群体智能算法进行比较,将他们用于特征选择。分类的精确度和错误率可见表2。由表可知,本发明实现了分类精度96.03%,错误率1.18%,性能优于其他比较对象,可证明本发明提出的改进算法能够更有效的筛选特征,提高分类的准确率,降低误差率。表2不同特征选择算法的性能比较不同算法精确度(%)错误率(%)aco94.254.78pso94.523.99ba94.933.68a.c.enache提出算法95.352.74t.kanungo提出算法95.642.06提出改进ba算法96.031.18除此之外,本发明还验证了本发明在最优特征组合搜索过程中性能优化和收敛速度上的改进。由图2可知,改进ba算法在40轮迭代左右收敛,远早于其他算法,降低了时间复杂度。同时,从曲线的高低位置来看,算法在收敛时取得的最优解的适应度也高于其他算法。从仿真结果可以得出,子种群划分和二进制差分变异机制的引入使得算法更容易跳出局部最优获得更好的特征组合,线性时变的参数也增强了个体的动态搜索能力,满足了不同阶段搜索的需要。由于种群的大小和迭代搜索的次数是求解优化问题非常重要的两个参数,所以图3验证了不同参数取值对优化问题的影响。从图中可以看出,当种群中个体数目确定时,随着迭代次数的增加,分类精度也随之上升。可以推断,在一定迭代次数下,种群不断的进化搜寻更优解,但是最终会找到近似最优解并收敛域一定轮数。当固定种群迭代次数时,含有更多个体的较大种群比较小种群表现更好。这是由于较大的种群中个体之间具有更大的差异性,个体之间可以有效交流和互动,能够进行更大范围的搜索,避免收敛于局部最优值。在改进算法中,一个重要的优化在于引入了子种群划分机制。划分种群的方法多种多样。有些方法只是随机地将个体分配到不同的簇内,而其他方法则是根据各种评价指标进行聚类。所以,本发明利用不同划分方法的对ba算法的影响并给出最终收敛结果如图4。相较于其他折线,代表使用k-means聚类算法的折线以更陡峭的斜率最先收敛,并且收敛时达到的适应度最高。可以证明,使用k-means聚类算法划分子种群,能够实现更好的性能、更高的适应性和更快的收敛速度,因为邻近的个体基于距离被聚集到相同的子种群中。一方面,整个种群通过在每个子种群内部的学习以及种群间知识共享向当前最佳位置移动。另一方面,每个个体只受所在种群当前的局部最优解影响,缓慢移动,避免了其极大程度上的干扰。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1