本发明属于数据处理技术领域,具体涉及一种基于粒子群优化的酵母菌多标记特征选择方法及装置。
背景技术
在传统的监督学习框架中,每个学习对象有且仅有一个类别标记,且标记之间是相互排斥和独立的。例如,在性别分类预测问题中,只存在“性别”一个标记,并且标记值要么是“男”要么是“女”,不存在标记值重叠的情况。然而在现实生活中单独的一个标记无法准确的描述复杂的对象,一个对象可能与多个类别标记相关,标记之间也可能存在相关性。例如,在文本分类中,一篇题为“杨树安谈奥运筹备”的新闻报道可以被分类到“体育”、“交通”、“气候”、“经济”和“政治”的板块中;在图像分类中,一副图像,可能与“沙滩”、“大海”、“椰子树”等多个语义标记有关;此外,在音乐情感分析中,根据表达的情感的不同,一首歌可以同时具有“欢快”、“忧伤”、“乡愁”等标记。拥有多个标记的对象在生活中随处可见,因此近年来多标记分类引起了人们的广泛研究和关注。
生物信息学是多标记学习应用较广的领域。酵母啤酒细胞周期表达水平数据是一个常用的多标记学习数据,也是一个典型的生物信息学任务,其任务是预测这些酵母菌与14个功能目录中的标记是否相关。在该类应用中,标记之间往往存在一定的层次结构并且已经被领域专家发现,比如树状结构的功能目录以及有向无环图结构的基因拓扑结构等,因此,在应用多标记学习技术时需要很好的利用这些标记之间的关系。
酵母菌功能预测存在一系列的挑战:一方面每个酵母菌样本可能的类别标记很多,并且这些标记之间具有一定的相关性,因此在多标记学习中需要考虑标记之间的相关性;另一方面,由于酵母菌数据都是有高维的基因序列描述的,因此酵母菌样本具有数量大和向量维数高的两大特点,决定了酵母菌特征选择是一个运行时间和空间复杂度都很高的机器学习问题,这些数据过高的维度影响并制约着我们对数据的理解和建模。在现有技术中,已出现一些酵母菌数据的特征选择方法。例如,一些以预报风险的嵌入式特征选择方法为基础,通过对每个特征进行评价,最终获得最优特征子集。该方法与分类器和评价指标密切相关,很可能导致计算时间较长、降维效率低。
技术实现要素:
本发明的目的在于提供一种基于粒子群优化的酵母菌多标记特征选择方法及装置,用以解决现有技术中的特征选择方法的计算时间长、效率低的问题。
为解决上述技术问题,本发明的技术方案为:
本发明提供了一种基于粒子群优化的酵母菌多标记特征选择方法,包括如下步骤:
提取酵母菌样本数据集,所述酵母菌样本数据集包括多个酵母菌样本特征矩阵和样本标记矩阵;
提取酵母菌样本数据集的特征数据,初始化二进制编码的粒子群;并初始化粒子群的位置和速度;
通过度量特征与特征之间的冗余性、特征与标记之间的相关性、标记和标记之间的相关性,构造结合标记相关性的cfs评价准则函数;
根据所述结合标记相关性的cfs评价函数,计算每个粒子的适应值;
对每个粒子,将其计算的适应值与其经历过的最优位置pbest进行比较,若优于经历过的最优位置pbest,则将所述计算的适应值作为其经历过的最优位置pbest;
并将所有粒子的最优位置pbest作为群体的最优位置gbest;
更新粒子的位置和速度进行迭代,最终得到的群体的最优位置gbest中值为1所对应的特征,即为酵母菌数据集的最优特征子集。
进一步的,所述更新粒子的位置和速度包括:
判断是否满足t<γ·niter,其中,γ为[0,1]之间的随机数,niter为迭代总次数;
若t<γ·niter,则在第t次迭代中更新j维第i个粒子的位置为:
其中,
否则,在第t次迭代中更新j维第i个粒子的位置为:
其中,
在前期需要全局搜索能力,后期需要局部搜索能力,故针对不同的情况,采用不同的公式来更新粒子的位置和速度。
进一步的,所述结合标记相关性的cfs评价函数为:
其中,cfs(s)为包含k个特征的候选子集s的评价值;
进一步的,计算每个粒子的适应值前,还包括把位置为1的粒子数控制为n的步骤:
统计每个粒子中位置为1的位置数h:
若h>n,则随机将h-n个值为1的位置改为0;
若h<n,则随机将n-h个值为0的位置改为1。
本发明还提供了一种基于粒子群优化的酵母菌多标记特征选择装置,包括处理器,所述处理器用于执行指令实现如下方法:
提取酵母菌样本数据集,所述酵母菌样本数据集包括多个酵母菌样本特征矩阵和样本标记矩阵;
提取酵母菌样本数据集的特征数据,初始化二进制编码的粒子群,并初始化粒子群的位置和速度;
通过度量特征与特征之间的冗余性、特征与标记之间的相关性,标记和标记之间的相关性,构造结合标记相关性的cfs评价准则函数;
根据所述结合标记相关性的cfs评价函数,计算每个粒子的适应值;
对每个粒子,将其计算的适应值与其经历过的最优位置pbest进行比较,若优于最优位置pbest,则将所述计算的适应值作为其经历过的最优位置pbest;
并将所有粒子的最优位置pbest作为群体的最优位置gbest;
更新粒子的位置和速度进行迭代,最终得到的群体的最优位置gbest中值为1所对应的特征即为酵母菌数据集的最优特征子集。
进一步的,所述更新粒子的位置和速度包括:
判断是否满足t<γ·niter,其中,γ为[0,1]之间的随机数,niter为迭代总次数;
若t<γ·niter,则在第t次迭代中更新j维第i个粒子的位置为:
其中,
否则,在第t次迭代中更新j维第i个粒子的位置为:
其中,
进一步的,所述结合标记相关性的cfs评价函数为:
其中,cfs(s)为包含k个特征的候选子集s的评价值;
进一步的,计算每个粒子的适应值前,还包括把位置为1的粒子数控制为n的步骤:
统计每个粒子中位置为1的位置数h:
若h>n,则随机将h-n个值为1的位置改为0;
若h<n,则随机将n-h个值为0的位置改为1。
本发明的有益效果:
本发明的一种基于粒子群优化的酵母菌多标记特征选择方法及装置,通过特征和标记之间的相关性、特征和特征之间的冗余性、标记和标记之间的相关性,构造候选特征子集的评价准则函数,将其作为离散粒子群方法的适应度函数,从而从数据集中选择出最优的酵母菌特征子集。本发明不仅可以有效的选取特征子集,为后续工作提供了一个精简、准确的特征子集,而且,降低分类器的时间复杂度和计算复杂度,提高了分类性能。
附图说明
图1是本发明的方法流程图。
具体实施方式
为了能够从酵母菌数据集中选择与其相关性较高的特征,为后续的工作提供一个精简、准确的特征子集,本发明提供了一种基于粒子群优化的酵母菌多标记特征选择装置,该装置包括处理器,处理器用于执行存储在存储器中的代码指令,实现本发明的基于粒子群优化的酵母菌多标记特征选择方法。下面结合附图,对该方法做详细说明。
整体来讲,该方法基于相关性和离散粒子群方法,通过酵母菌特征和标记之间的相关性、特征和特征之间的冗余性、标记和标记之间的相关性,构造候选特征子集的评价准则函数,衡量特征与分类问题之间的相关度,并以此作为离散粒子群方法的适应度函数,随机的搜索特征空间,进而选择出最优的特征子集。
下面先对粒子群方法和基于相关性的特征选择方法进行介绍。
一、粒子群方法
粒子群(particleswarmoptimization,pso)方法是eberhart和kennedy博士在1995年提出的,来源于对鸟群捕食研究。与其他进化方法相比较,它最大的优势是实现简单和具有较强的全局优化能力。在该方法中,每个粒子通过对个体和群体的综合分析,调整自己的方向和速度,通过迭代找到最优解。
在pso方法中,每个粒子都有决定其方向和位置的速度。在每次迭代优化的过程中,每个粒子都跟踪其已找到的最优位置pbest,以及所有的粒子已找到的全局最优位置gbest,以此来决定下一步的运动。所有粒子都有一个被优化函数决定的适应度值。
对于d维的搜索空间,在第t次迭代中,假设第i个粒子当前的位置为xi=(xi1,xi2,…,xid),xij为j维第i个粒子的位置,j=1,2,…,d;速度为vi=(vi1,vi2,…,vid),vij为j维第i个粒子的速度,j=1,2,…,d;该粒子当前搜索到的最优位置pbest为pi=(pi1,pi2,…,pid),pij为j维第i个粒子的最优位置pbest,j=1,2,…,d;整个粒子群搜索到的最优位置gbest为pg=(g1,g2,…,gd),gj为j维整个粒子群搜索到的最优位置gbest,j=1,2,…,d;粒子群通过自身最优值和全局最优值更新自己。在第t+1次迭代中,在第j维的第i个粒子按照如下公式完成对速度和位置的更新:
其中,
pso还会制定一个最大速度vmax来决定粒子在一次迭代中的最大移动距离;每个粒子的速度都会被限制在vmax范围内;如果粒子的速度大于vmax,则速度会被设为vmax。
二、基于相关性的特征选择方法
基于相关性的特征选择方法(correlation-basedfeatureselection,cfs)是通过度量特征与特征之间的冗余性、特征与标记之间的相关性,进而构造特征的评价准则函数,作为启发式搜索的适应度函数,从而对特征的价值进行评估的一种特征选择方法。对于随机搜索策略中产生的候选特征子集,cfs采用信息增益或pearson线性相关系数来衡量特征子集的优劣,其原理相对简单、计算复杂度低、易于实现,能有效、高效地选择出最优的特征子集。
基于相关性的特征选择方法cfs是结合启发式的搜索策略对候选特征子集进行评估的特征选择方法。由于以特征与特征之间的冗余性、特征与标记之间的相关性作为启发式搜索策略的评价准则,cfs同时考虑了特征与特征之间的冗余性和特征与标记之间的相关性。单标记的cfs和多标记的cfs具有相同的评价准则为:
其中,cfs(s)包含k个特征的候选特征子集s的评价值,cfs(s)的值越大,候选特征子集s与分类问题的关系越密切,即候选特征子集s越好;
基于相关性的特征选择方法要实现两个目标:最大化候选特征子集s与标记l之间的平均相关性
特征集和标记集之间的平均相关性
其中,q为标记的个数。
再以相同的方式对所有的特征进行求和、取平均得出标记集l和特征集s之间的平均相关性
其中,k为特征的个数;q为标记的个数;rfl为单个特征和单个标记之间的相关性。
特征和特征之间的平均冗余性
其中,rfifj为单个特征和单个特征之间的冗余性;fi和fj为特征集f中两个不同的特征;fp为特征子集f中的特征对数。
在候选的特征子集中增加或减少某个特征时,基于相关性的特征选择方法都要通过计算平均相关性
信息增益衡量标准是所选的候选特征能为分类问题增加多少的信息,增加的信息越多,表明候选特征与分类问题越相关。对于单个特征,在选择该特征后增加或减少的信息量代表该特征对分类问题的贡献度。
对于酵母菌特征选择的问题,下式分别给出了标记集l的熵h(l)、标记集l在候选特征子集s下的条件熵h(l|s):
其中,p(l)为标记集l取值为l的概率;p(l|f)为特征集s已知情况下标记集l的条件概率分布。
因此,候选特征子集s和标记集l之间的相关性的信息增益的计算公式gain为:
gain=h(l)-h(l|s)=h(s)-h(s|l)=h(l)+h(s)-h(s,l)
其中,h(l)为标记集l的熵;h(s)为特征集s的熵;h(l|s)为标记集l在候选特征子集s下的条件熵;h(s,l)为特征子集s和标记集l之间的互信息。
然而信息增益面临着一个问题:无论是否提供更多的信息,值较大的变量总是比值较小的变量携带更多的信息,这会影响分类问题的求解结果。对称不确定性(symmetricaluncertainty,su)可以在程度长度上解决这个问题,并将结果归一化为[0,1]之间。对称不确定性公式为:
其中,h(l)为标记集l的熵;h(s)为特征集s的熵。
采用信息增益的方法时,候选特征子集s中特征和特征之间的冗余性为:
其中,fp为特征对数;h(fi)为特征fi的熵;h(fj)为特征fj的熵;h(fi|fj)为特征fi在特征fj下的条件熵。
候选特征子集s和标记集l之间的相关性为:
其中,k为特征的个数;q为标记的个数;h(l)为标记l的熵;h(f)为特征f的熵;h(f|l)为特征f在标记l下的条件熵。
因此,cfs准则函数为:
三、本发明的基于粒子群优化的酵母菌多标记特征选择方法
在多标记特征选择中,特征只存在选择和未选择两种情况,因此连续的粒子群方法无法直接处理特征选择问题,故这里需要采用离散粒子群方法。
在离散粒子群方法中,将粒子表示为0或1构成的二进制向量,向量长度是所有特征的数量,1表示相应特征被选中,0表示相应特征未被选中。速度定义为粒子每一位特征取0或1的概率。与粒子群方法相比,离散粒子群方法是以二元化的方式初始化和更新粒子的位置。
在离散粒子群方法中,初始化位置、速度的计算公式为:
其中,
而随后的每次迭代t中,离散粒子群粒子的速度更新公式不变,位置更新公式为:
其中,
当速度
采用离散粒子群方法作为随机搜索策略的高阶特征选择方法需要控制所选的特征子集的大小,因此需要对粒子的位置的值进行限制:
(1)当粒子中值为1的位置数大于所要选的特征子集的大小时,随机的将值为1的位置设为0;
(2)当粒子中值为1的位置数小于所要选的特征子集的大小时,随机的将值为0的位置设为1。
与传统的粒子群方法相比,离散粒子群只是把特征的位置信息换成以0或1形式表示的特征被选中与未选中信息。但是,离散粒子群方法是缺少局部探测性的随机搜索方法,粒子随着迭代运行,越来越具有随机性,缺乏方向性没有收敛。为了解决该问题,可用下式来增强局部搜索能力:
其中,
根据一般的启发式搜索方法原理,则算法前期需要全局搜索能力,后期需要局部搜索能力,因此对该方法再做如下修改:
若t<γ·niter,采用公式
其中,γ为[0,1]之间的随机数;niter为迭代总次数;在方法前期采用的是原始离散粒子群,后期则是新的变换公式。
cfs评价函数最大化特征与标记的相关性,以提高预测的准确率;最小化特征之间的冗余性,避免特征子集中出现冗余特性,降低分类的性能和效率,并用信息增益或pearson相关系数衡量特征子集的优劣。但是该函数并未考虑到标记与标记之间的关系,这使得计算并不精确,从而影响分类的精度。标记与标记之间是相互关联的,标记间的相关性可以提供额外的有效信息。充分利用这些信息,有利于建立更好的分类模型。假设酵母菌样本拥有的类标记对其的贡献值是相等的,将标记与标记之间的相关性加入cfs评价函数中,改进cfs评价函数。本发明按照范数归一化思想,将样本的所有标记与标记之间相关性和特征与标记之间的相关性之和设为1,在原有评价函数的基础上,引入了标记之间的相关性,提出一种综合标记相关性的cfs评价函数,则新的适应度函数定义如下:
其中,cfs(s)包含k个特征的候选特征子集s的评价值,cfs(s)的值越大,候选特征子集s与分类问题的关系越密切,即候选特征子集s越好;
通过最大化特征与标记的相关性、标记与标记之间的相关性,两者的均值以提高预测的准确率;最小化特征之间的冗余性,避免特征子集中出现冗余特征,降低分类的性能和效率。
其具体过程如下:
step1数据预处理:提取酵母菌样本数据集,包括多个酵母菌样本特征矩阵和样本标记矩阵,酵母菌数据集的描述包括数据集的样本数、特征数以及标记数。特征矩阵中的每行为酵母菌数据集的样本,矩阵中列向量为特征;标记矩阵中每行为酵母菌数据集的样本,矩阵中列向量为标记。例如:原始待降维的酵母菌数据集x={x1,x2,…,xn},其中,n为样本数,每个样本有若干个特征。
step2根据特征提取得到的特征训练样本集x的特征数据,初始化二进制编码的粒子群:包括粒子群的位置和初始速度,随机产生一组初始值。初始化速度、位置公式如下:
其中,
step3位置为1的粒子数控制为n,分别统计每个粒子中位置为1的位置数h。若h>n,则随机将h-n个位置的值1的位置改为0;否则,则随机将n-h个值为0的位置改为1。
step4根据cfs评价准则函数,计算粒子群中每个粒子的适应值(fitness),以在进行特征选择时,在保证甚至提高分类器性能的前提下降低特征子集的规模,即一个粒子能够使分类器产生的分类精度越高,同时选出的特征数目越少,那么它的适应值就越高。适应度公式如下:
其中,cfs(s)包含k个特征的候选特征子集s的评价值,cfs(s)的值越大,候选特征子集s与分类问题的关系越密切,即候选特征子集s越好;
step5将当前粒子的适应度pi与局部最优解pbest以及种群的全局最优解gbest进行比较,若粒子的适应度pi大于局部最优解pbest,则令粒子的局部最优解pbest等于适应度pi;若粒子的适应度pi大于全局最优解gbest,则令种群的全局最优解gbest等于适应度pi。
粒子初始化后,粒子的速度和位置为一群随机解,然后通过迭代找到最优解,在每次迭代中,粒子通过两个最优解来更新自己:一个是粒子本身所找到的最优解,即局部最优解pbest;另一个是种群目前找到的最优解,称之为全局最优解gbest。
step6根据step4所更新的局部最优解pbest以及种群的全局最优解gbest,计算粒子的移动速度和新的位置。
粒子通过种群中每个个体不停的运动来搜索最优解。每个粒子由自己当前的局部最优解和全部粒子的全局最优解两个部分决定它的运动方向。每个粒子代表j维空间中的一个点,其下一个位置由自己的当前位置和速度所决定。算法前期粒子速度、位置更新公式如下:
其中,
在算法运行后期粒子位置更新公式如下:
其中,
与传统的pso相比,bpso只是把特征的位置信息换成以0或1形式表示的特征被选中与未选中信息。但是bpso算法是缺少局部探测性的随机搜索算法。粒子随着迭代运行,越来越具有随机性,缺乏方向性没有收敛。根据一般的启发式随机搜索算法原理,因此算法前期需要全局搜索能力,后期则需要局部搜索能力。
step7判断是否符合终止条件,若符合,则结束并输出最优特征集,否则迭代次数加1,并返回step3。
下面针对酵母菌数据集进行仿真测试和实验,以便对本发明的方法所能达到的效果做进一步的说明。该次实验提取酵母菌样本数据集,包括多个酵母菌样本特征矩阵和样本标记矩阵,酵母菌数据集的描述包括数据集的样本数、特征数、以及标记数。特征矩阵中的每行为酵母菌数据集的样本,矩阵中列向量为特征。标记矩阵中每行为酵母菌数据集的样本,矩阵中列向量为标记。酵母菌数据集具体的描述信息如表1所示。
表1酵母菌样本数据集的具体描述
根据王晨曦等撰写的《融合特征排序的多标记特征选择算法》(计算机工程与应用,2016,52(17):93-100.),选取ap(averageprecision)、cv(coverage)、hl(hammingloss)、rl(rankingloss)四种评价指标来分析和度量实验结果。
令测试集为
ap:用于考察所有样本的预测标记排序中,排在隶属于该样本标记前面的标记仍属于该样本标记的概率的平均,定义如下:
其中,ri={l|yil=+1}表示与样本xi相关的标记构成的集合,ri={l|yil=-1}表示与样本xi不相关的标记构成的集合。
cv:用于度量平均每个样本需要查找多少步才能遍历所有与该样本相关的标记,定义如下:
hl:用于度量样本在单个标记上的误分类情况,定义如下:
rl:用来考察所有样本的不相关标记的排序排在相关标记前面的概率的平均值,定义如下:
为了验证该方法的有效性,采用zhang和zhou撰写的《multilabeldimensionalityreductionviadependencemaximization》(acmtransactionsonknowledgediscoveryfromdata(tkdd),2010,4(3):14.)(mddmspc、mddmproj)、yu和wang撰写的《featureselectionformulti-labellearningusingmutualinformationandga》(internationalconferenceonroughsetsandknowledgetechnology,springer,cham,2014:454-463.)(mlfsie)算法作为对比实验,采用zhang和zhou撰写的《ml-knn:alazylearningapproachtomulti-labellearning》(patternrecognition,2007,40(7):2038-2048.)(ml-knn)对在选择后的数据集进行评估。其中,ml-knn的平滑参数s设置为1,近邻k设置为10。另外,mddmspc以及mddmproj算法得到的是一组特征排序。为了对比各方法得到的特征子集的分类性能,实验中将取特征排序的前k个特征作为特征子集。
下表2分别给出了这四个方法在酵母菌数据集上的实验结果。对于每一种评价指标,符号“↑”表示指标的值越大,分类性能越优;符号“↓”表示指标的值越小,分类性能越优,将对比方法中性能最优的实验结果使用加粗表示。
表2yeast分类性能比较
对比表2可以发现:对于ap、cv、hl和rl这4个评价指标:cfs-nbpso算法约简得到的特征数目达到原始数据的10%,起到了很好的降维目的,并且cfs-nbpso算法在所有的实验数据集上获得的分类性能都能优于mddmspc、mddmproj和mlfsie算法。mddmspc和mddmproj算法虽然得到了较少的特征数,但在去除冗余特征的过程中也剔除了与分类相关的一些特征,导致其分类效果下降很多,与我们进行降维的目的冲突。
综上,根据表中16个对比结果(4个评价指标和4个算法),本发明的方法有100%的情况能够获得最优值。以上实验结果分析,充分表明了本发明所提方法得到的特征子集诱导出来的分类性能是明显优于其他三种对比算法。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。