一种基于容错的基因选择方法与装置与流程

文档序号:18622434发布日期:2019-09-06 22:37阅读:356来源:国知局
一种基于容错的基因选择方法与装置与流程

本发明属于数据处理技术领域,具体涉及一种基于容错的基因选择方法与装置。



背景技术:

现有技术中,wangchangzhong等人在2016年的期刊《knowledge-basedsystems》第111卷173-179页上发表的《featuresubsetselectionbasedonfuzzyneighborhoodroughsets》中,将邻域粗糙集与模糊粗糙集结合,提出了模糊邻域粗糙集模型,并根据依赖度度量构造出了相应的属性约简算法。徐风等人在2017年的期刊《南京大学学报》第53卷926-936页上发表的《基于模糊邻域粗糙集的信息系统不确定性度量方法》,证明了模糊邻域粗糙集模型对信息系统具有更好的不确定性度量效果。因此,为了解决以传统启发式函数对评估属性的方法过于单一的问题,任晓霞等在2018年的期刊《计算机工程与应用》第9期发表的《基于模糊邻域粗糙集的启发式属性约简算法》中重新定义了依赖度,从近似逼近和知识粒度两个方面对属性重要度进行评估,从而提高属性约简子集的分类精度。然而,该约简算法并未考虑邻域粗糙集在属性约简过程中的零容错问题,使得到的基因子集的分类精度较低。

张哲等人在2016年的期刊《计算机工程》第42卷188-196页上发表了《基于离散粒子群优化和邻域约简的基因特征选择算法》,该算法结合邻域粗糙集模型中决策属性在条件属性子集上的分类能力与离散粒子群优化算法较好的全局搜索能力和收敛快的特点,以避免算法陷入局部最优。但是该算法并未考虑到邻域粗糙集在基因选择过程中的零容错问题,导致得到的基因子集的分类精度较低。

以上零容错问题出现的原因在于:在经典的邻域粗糙集中,图2中的4个标注对象:空心圆和实心圆分别表示对象的两种类别,用dw表示“空心圆”等价类,db表示“实心圆”等价类,虚线圆圈表示某个对象的δ(xi)邻域。由图2可知即x1,x4∈posb(d),这种情况被认为:当前属性集b没有成功将对象x2和x3进行正确地分类,需要增加新的属性进行进一步判别。但是,在δ(x2)有10个对象,其中有一个和其他对象的类别不同,δ(x3)有10个对象,其中有9个对象的类别相同,仅有1个对象的类别和它们不同,这说明在数据集存在中噪声数据的情况下,当前属性集b已经可以很好的将对象x2和x3进行分类,此时若再增加属性,则增加的属性对当前属性集b的分类能力的贡献是无法准确判定的,这个属性不一定是重要属性,可能只是一般属性,甚至是冗余属性。这种对于噪声数据的零容错性,可以表示为:

其中,当样本xi的邻域中所有的样本所属类别与样本xi的类别相同,则该样本xi属于正域,即pr(x|δ(xi))=1。当样本xi的邻域中存在样本x的所属类别与样本xi的类别不相同,则该样本xi不属于正域,即pr(x|δ(xi))=0。这种零容错现象会导致部分可以对样本很好分类的属性被筛选掉,使得基因选择后的分类结果降低。



技术实现要素:

本发明的目的是提供一种基于容错的基因选择方法,用于解决采用现有技术得到的基因子集对基因数据分类精度低的问题;同时,基于该方法设计一种基于容错的基因选择装置,同样,用于解决采用现有技术得到的基因子集对基因数据分类精度低的问题。

基于上述目的,本发明的基于容错的基因选择方法的技术方案如下:

根据邻域粗糙集模型中基于容错的依赖度定义粒子适应度函数,其计算公式如下:

其中,f′(xi)表示粒子xi的适应度值;m表示基因子集中未被选中的基因个数;n表示基因子集的全部基因个数;b表示在所述基因子集中选中的基因的集合;c表示所述基因子集,d表示基因数据的所属类别;γb′(d)为所述基于容错的依赖度,表示基因数据的所属类别d在粒子相对应的集合b上的依赖程度;posb(d)表示基因数据的所属类别d关于集合b的正域,posc(d)表示基因数据的所属类别d关于所述基因子集c的正域;所述基于容错的依赖度公式为:

其中,pos′b(d)表示基因数据的所属类别d关于集合b的具有容错性能的正域,card(pos′b(d))表示pos′b(d)中的样本个数,card(u)表示基因数据集u中的样本个数;

利用离散粒子群优化算法对所述基因子集进行约简,在约简过程中按照所述粒子适应度函数公式计算粒子的适应度值,得到约简后的最优基因子集。

基于上述目的,本发明的基于容错的基因选择装置的技术方案,包括处理器,用于执行指令以实现上述基因选择方法的技术方案。

上述基因选择方法与装置的技术方案的有益效果为:

为了解决零容错问题,本发明引入具有容错性能的正域替换传统依赖度公式中原有的正域,从而使得依赖度公式具有容错性;通过引入基于容错的依赖度来评估基因数据的所属类别对选中的基因子集的依赖性,从而构造离散粒子群优化算法中的适应度函数,即含有基于容错的依赖度的粒子适应度函数,引导粒子快速搜索最优基因子集,以解决零容错问题,且得到分类精度较高的最优基因子集。

在利用离散粒子群优化算法对所述基因子集进行约简之前,还包括利用邻域粗糙集模型对初始基因集合进行初步约简,以得到所述基因子集。

本发明通过两次约简实现基因选择,首先利用邻域粗糙集模型对初始基因集合进行初步约简,得到的是初次候选的基因子集,再利用离散粒子群优化算法对初次候选的基因子集进行二次约简,从而得到最优基因子集。

进一步的,利用邻域粗糙集模型对初始基因集合进行初步约简的步骤包括:

(1)根据邻域粒度度量分析算法计算邻域知识粒度,根据所述基于容错的依赖度与所述邻域知识粒度的比,计算得到基于容错的邻域粗糙集的依赖度和知识粒度混合度量启发式函数;

(2)计算初始基因集合中每个基因的重要度,计算公式如下:

sig'δ(a,d,b)=h'δ(b∪a)-h'δ(b)

其中,a∈c-b,sig′(a,d,b)表示初始基因集合中每个基因的重要度,h′δ(b∪a)为基于容错的邻域粗糙集在集合b∪a上的依赖度和知识粒度混合度量启发式函数,h′δ(b)为基于容错的邻域粗糙集在集合b上的依赖度和知识粒度混合度量启发式函数;

(3)选择所述重要度大于设定值的基因构成基因子集。

上述初步约简的有益效果为:

首先将改进后的依赖度公式代入邻域粗糙集中的依赖度和知识粒度的混合度量启发式函数,得到基于容错的依赖度和知识粒度混合度量启发式函数;然后,通过定义的基于容错的邻域粗糙集的依赖度和知识粒度混合度量启发式函数,改进了基因重要度的计算公式,考虑了初步约简过程中的零容错问题,使得到的初次候选的基因子集在一定程度上保证了对基因数据的分类精度。

进一步的,利用离散粒子群优化算法对初次候选的基因子集进行二次约简的步骤包括:

(1)设置初始参数,包括种群规模、最大迭代次数、邻域大小和粒子维度,该粒子维度为所述基因子集的基因个数,粒子的每一个维度表示一个基因;随机选择一组粒子,并随机初始化粒子位置;

(2)按照所述粒子适应度函数公式计算所有粒子的适应度值,根据粒子适应值更新粒子本身搜索到的最优位置和整个种群搜索到的最优位置;

(3)更新粒子的位置和速度,并判断当前迭代次数是否达到设定的最大迭代次数,当达到时,输出选取的最优基因子集;当未达到时,重复步骤(2)中的内容,直到当前迭代次数达到最大迭代次数为止。

上述二次约简的有益效果为:

将改进后的依赖度公式应用到离散粒子群算法中的粒子适应度函数,从而使得离散粒子群算法也具有容错性;利用离散粒子群优化算法进行约简基因子集,通过粒子的多次迭代,能够得到最优基因子集,且选择的速度快。

附图说明

图1是本发明方法实施例一中基于容错的基因选择方法流程图;

图2是现有技术中的属性集对样本分类时的容错情况图;

图3-1是本发明方法实施例一中的数据集cancer上在不同邻域半径下所得最优基因子集分别在svm(supportvectormachine)和knn(k-nearestneighbor,其中k=3)分类器下的分类精度和约简度示意图;

图3-2是本发明方法实施例一中的数据集wdbc上在不同邻域半径下所得最优基因子集分别在svm和knn(其中k=3)分类器下的分类精度和约简度示意图;

图3-3是本发明方法实施例一中的数据集wpbc上在不同邻域半径下所得最优基因子集分别在svm和knn(其中k=3)分类器下的分类精度和约简度示意图。

具体实施方式

下面结合附图对本发明的具体实施方式作进一步的说明。

方法实施例一:

本实施提出一种基于容错的基因选择方法,如图1所示,利用邻域粗糙集模型对初始基因集合进行初次约简,得到初次候选的基因子集。具体的,利用邻域粗糙集模型对初始基因集合进行初步约简的步骤包括:

(1)基于邻域决策信息系统ndis=(u,c∪d,v,f),其中u是邻域,即论域,定义为对象的非空有限集合,u={x1,x2,…,xn}。c是条件属性集合,在初步约简中指初始基因集合,d是决策属性,本实施例中表示基因数据的所属类别,v是值域,f:u×(c∪d)→v为信息函数,表示样本与其属性取值之间的对应映射关系。

(2)给定一个邻域决策信息系统ndis=(u,c∪d,v,f),邻域半径δ,对于求取基于容错的依赖度的计算公式为:

其中,u是论域,定义为对象的非空有限集合,u={x1,x2,…,xn},本实施例中表示基因数据集;c是条件属性集合,在初步约简中指初始基因集合;b是在c中选中的条件属性的集合,在初步约简中表示在初始基因集合中选中的基因的集合;d是决策属性,本实施例中表示基因数据的所属类别,γb′(d)是基于容错的依赖度,表示基因数据的所属类别d在粒子相对应的集合b上的依赖程度;pos′b(d)表示基因数据的所属类别d关于集合b的具有容错性能的正域;card(pos′b(d))表示在正域pos′b(d)中的样本个数;card(u)表示基因数据集u中的样本个数。根据彭潇然等人在2019年的期刊《计算机应用研究》第1期上发表的《基于容错改进的邻域粗糙集属性约简算法》,公开有上述具有容错性能的正域的计算公式如下:

pos′b(d)={x|pr(x|δ(xi))>=θ}

其中,当邻域内在同一决策属性的元素个数在全部元素中的比值大于设定的概率θ时(一般θ=0.9),就属于具有容错性能的正域,该比值的计算公式如下:

其中,pr(x∣δ(xi))表示邻域元素δ(xi)中和某个决策类x属于相同决策属性的对象个数与该邻域元素总个数的比值,是xi属于x的概率。

根据邻域粒度度量分析算法计算邻域知识粒度gkδ(b)、gkδ(b∪a),计算式如下:

其中,gkδ(b)表示由基因数据集u在集合b的邻域相似关系上的邻域知识粒度,gkδ(b∪a)表示由基因数据集u在集合b∪a的邻域相似关系上的邻域知识粒度。对于所以邻域知识粒度满足:0≤gkδ(b)≤1,0≤gkδ(b∪a)≤1。由于邻域粒度展示的是所有对象邻域在基因数据集u上占比的均值,因而它体现一种良好的分类能力。

根据基于容错的依赖度γ′b(d)和γ′b∪a(d)与邻域知识粒度gkδ(b)和gkδ(b∪a)的比,计算得到基于容错的邻域粗糙集在集合b上的依赖度和知识粒度混合度量启发式函数h′δ(b),和基于容错的邻域粗糙集在集合b∪a上的依赖度和知识粒度混合度量启发式函数h′δ(b∪a),计算公式如下:

其中,pos′b∪a(d)表示基因数据的所属类别d关于集合b∪a的具有容错性能的正域,card(pos′b∪a(d))表示在正域pos′b∪a(d)中的样本个数。

(3)计算初始基因集合中每个基因的重要度,选择重要度大于设定值的基因构成初次候选基因子集的元素,从而得到基因子集。基因的重要度的计算公式如下:

sig'δ(a,d,b)=h'δ(b∪a)-h'δ(b)

其中,a∈c-b,sig′(a,d,b)表示初始基因集合中每个基因的重要度,h′δ(b∪a)为基于容错的邻域粗糙集在集合b∪a上的依赖度和知识粒度混合度量启发式函数,h′δ(b)为基于容错的邻域粗糙集在集合b上的依赖度和知识粒度混合度量启发式函数。

在上述初步约简中,基因容错的依赖度是通过近似逼近的视角去对基因子集进行评估,而邻域知识粒度可以体现出基因子集对基因数据的分类性能,这两种参数表现出了对基因子集的不同视角的评估,因此将二者结合可以对基因子集重要度达到更好的度量,更为全面的评估基因,以提高选择基因时的分类精度,解决了邻域粗糙集在基因选择过程中的零容错问题,具有一定的容错性。

在得到基因子集之后,利用离散粒子群优化算法(简称dpso算法)对初次候选基因子集进行二次约简,具体步骤如下:

(1)设置初始参数,包括种群规模m、最大迭代次数max_iter、邻域大小δ和粒子维度,该粒子维度为所述基因子集的基因个数,粒子的每一个维度表示一个基因,且每一维度只有0或1两种取值,如果某一维度的值是1,对应的基因就被选中,否则该基因就未选中。因此,粒子采用二进制编码形式,每个粒子中所有维度取值为1对应的基因被粒子选择。

(2)初始参数设置完毕后,随机选择一组粒子,并随机初始化粒子位置。

(3)按照定义的粒子适应度函数公式计算所有粒子的适应度值,其中粒子适应度函数公式是根据邻域粗糙集模型中基于容错的依赖度定义得到的,公式如下:

其中,f′(xi)表示粒子xi的适应度值;m表示基因子集中未被选中的基因个数;n表示基因子集的全部基因个数;b表示在所述基因子集中选中的基因的集合;c表示所述基因子集,d表示基因数据的所属类别;γ′b(d)为所述基于容错的依赖度,表示基因数据的所属类别d在粒子相对应的集合b上的依赖程度;posb(d)表示基因数据的所属类别d关于集合b的正域,posc(d)表示基因数据的所属类别d关于所述基因子集c的正域,posb(d)≠posc(d)表示此时选择的基因子集不是决策属性在固定邻域的一个约简。

(4)根据粒子的适应度值更新粒子本身搜索到的最优位置pi和整个种群搜索到的最优位置pg。

粒子搜索的范围由惯性权值w的大小决定,由于每个粒子都有对应的二进制编码,且每一个粒子维度只有0和1两种取值,随着多次迭代粒子的最优位置和种群的最优位置将逐渐收敛,为了使粒子在进化前期搜索足够的解空间,进化到后期调整为最优位置局部搜索,采用如下线性策略调整w:

其中,w1和w2为初始设定的两个惯性权值,iter为当前迭代次数,max_iter为最大迭代次数。

(5)更新粒子的位置和速度,并判断迭代次数是否达到最大,当达到时,输出选取的最优基因子集;当未达到时,重新进行步骤(3)中的内容,直到迭代次数达到最大为止。

本实施例中粒子的位置更新公式如下:

其中,vij为粒子的速度,yij为粒子的位置,i为粒子编号,i=1,2,…,m,m为种群规模(一般m=50);j为粒子的维度,j=1,2,…,d,d为基因个数,粒子的每一维度代表一个基因;rand()表示随机于[0,1]之间的一个数值,粒子中每个基因为0或为1的可能性取决于速度vij的大小,速度越小,该基因被选取的概率越小;反之,被选取的概率越大。粒子i在第j维子空间中的飞行速度更新公式为:

vij(t+1)=w×vij(t)+c1×r1(t)×(pi(t)-yij(t))+c2×r2(t)×(pg(t)-yij(t))

其中,w为惯性权值,j为粒子的第j维,j=1,2,…,d,c1和c2是加速因子,c1≥0,c2≥0,c1+c2=1,i=1,2,…,m,m为种群规模,t为当前迭代次数。r1和r2是两个随机数,其值在[0,1]范围内变化。此外,vij常被最大速度vmax所限制,vmax是常数,根据具体问题设定。pi和pg的值由具体问题设计的优化函数计算得出,粒子根据速度和位置更新公式更新自身,直至迭代结束输出最优值。

本发明的基因选择方法结合邻域粗糙集模型能够处理连续型属性的特点与离散粒子群优化算法全局寻优能力强、收敛速度快的特点,将邻域粗糙集模型与离散粒子群优化算法相结合,先利用邻域粗糙集模型对初始基因集合(如乳腺癌属性集)进行初次约简,将改进的依赖度公式(基于容错的依赖度公式)引入离散粒子群优化算法中的粒子适应度函数中,并对初次约简得到的基因子集进行二次约简,快速、准确的选择出最优基因子集。

为了解决零容错问题,本发明引入具有容错性能的正域替换传统依赖度公式中原有的正域,从而使得依赖度公式具有容错性;通过引入基于容错的依赖度来评估基因数据的所属类别对选中的基因子集的依赖性,从而构造离散粒子群优化算法中的适应度函数,即含有基于容错的依赖度的粒子适应度函数,引导粒子快速搜索最优基因子集。本发明的正域之所以具有容错性,举例说明如下:如图2所示,图中有4个对象:pr(x∣δ(x1))=1≥0.9,pr(x∣δ(x2))=9/10≥0.9,pr(x∣δ(x3))=9/10≥0.9,pr(x∣δ(x4))=1≥0.9,即x1,x2,x3,x4∈posb(d),对象x2和x3进行决策时避免了噪声数据对结果造成的影响,因此正域中的样本具有容错性,从而使得依赖度和知识粒度的混合度量启发式函数具有容错性,这说明在数据集中噪声数据存在的情况下,能在一定程度上提升邻域粗糙集的容错性,从而得到更好的约简结果。

下面以表1所示的三个乳腺癌基因数据集,分别为乳腺癌威斯康星原始数据集(cancer)、乳腺癌威斯康星诊断数据集(wdbc)、乳腺癌威斯康星预后数据集(wpbc)为例,验证本发明的基因选择方法的有效性。

表1

本发明的基因选择方法的实验环境是在一台装有英特尔(r)处理器、运行有windows10的计算机上进行的,所有仿真实验均在matlab2018a编程软件中实现,利用了weka软件中knn(k-nearestneighbor)分类器和svm(supportvectormachine)分类器来验证分类精度,实验中knn分类器中的参数k设置为3,在svm中选择线性核函数。

在区间[0.04,1]上,以0.04为步长,共取得25个邻域半径值,记录不同邻域半径的取值下通过本发明的基因选择方法分别在数据集cancer、wpbc和wdbc上所得最优基因子集中的基因个数以及在svm和knn分类器下的分类精度。

由于邻域半径的取值直接影响着基因选择的结果,在不同的邻域半径的取值下,采用本发明的基因选择方法得到的最优基因子集不同,造成根据最优基因子集对不同数据集进行分类后的分类精度不同,因此,通过分类精度和约简度来评估邻域半径的取值。约简度的定义如下:

其中,rateδ为邻域半径δ下的约简度,|c|为数据集中所有基因的个数,|r|为采用本发明的基因选择方法在不同邻域半径下得到最优基因子集的基因个数。

数据集cancer、wpbc和wdbc上在不同邻域半径下所得最优基因子集分别在svm和knn分类器下的分类精度和约简度如图3-1、图3-2和图3-3所示。

由图3-1可知,svm和knn分类器的分类精度在邻域半径为0.04、0.08、0.32、0.4时取值较高,但在邻域半径为0.32和0.4时的约简率较低,且当邻域半径取值为0.08时数据集cancer在svm分类器下的分类精度低于0.04,总体来看当邻域半径取0.04时的分类精度最大并且约简度较高,因此,对于数据集cancer将邻域半径取值为0.04是最优的。

由图3-2可知,约简度在邻域半径为0.12-0.56下相差不大,根据svm和knn分类器的分类精度曲线,邻域半径从0.04-0.12和从0.2-0.24以及0.44-0.56取值下,两种分类结果波动较大。因此,根据约简度和分类精度,可得到当邻域半径取值为0.12时是最优的。

由图3-3可知,svm和knn分类器的分类精度波动不大,当邻域半径取值为0.28时,分类精度最大并且约简度较高,因此,对于数据集wpbc将邻域半径取值为0.28是最优的。

综上所述,为了进一步证明本发明的基于基因选择方法的分类性能(即最优基因子集对数据集的分类性能),采用现有技术中的五种方法与本发明的方法进行比较,来评估所选最优基因子集的分类精度。这五种方法为记载在wangchanzhong等人在2016年的期刊《knowledge-basedsystems》第111卷173-179页上发表的《featuresubsetselectionbasedonfuzzyneighborhoodroughsets》中的odp、fcmrs、fisen、fnrs和frsint,用软件weka中的knn和svm分类器获得分类精度,六种方法(即现有技术中的五种方法与本发明的方法)选择的最优基因子集的平均个数如表2所示:

表2

从表2可以看出,比较所选最优基因子集的平均值,本发明的方法(即表2中的fdpofnrs)明显优于odp、fcmrs、fisen、fnrs和frsint这五种方法。

分别采用六种方法在svm、knn分类器下的分类精度(%)如表3所示:

表3

表4

从表3和表4可以看出这六种方法的区别,在三个数据集上,本发明的方法在两种分类器上得到的分类精度明显优于其他五种方法,并且根据表2可以发现约简后的基因个数也远少于其他五种方法。因此,可以证明本发明的基因选择方法可以对乳腺癌基因数据集进行很好的降维,有效减少基因子集的冗余基因,同时保持较高的分类精度。

方法实施例二:

本实施例提出一种基于容错的基因选择方法,利用离散粒子群优化算法对初始基因集合进行约简,在约简过程中按照粒子适应度函数公式计算粒子的适应度值,约简得到最优基因子集。

本实施例的基因特征选择过程只进行了一次约简,即利用离散粒子群优化算法对初始基因特征集合进行约简,该离散粒子群优化算法的约简过程参见方法实施例一,这里不再赘述。

装置实施例一:

本实施例提出一种基于容错的基因选择装置,包括处理器,用于执行以实现如下步骤:

利用邻域粗糙集模型对初始基因集合进行一次约简,约简得到初次候选基因子集;

根据邻域粗糙集模型中基于容错的依赖度定义粒子适应度函数,其计算公式如下:

其中,f′(xi)表示粒子xi的适应度值;m表示基因子集中未被选中的基因个数;n表示基因子集的全部基因个数;b表示在所述基因子集中选中的基因的集合;c表示所述基因子集,d表示基因数据的所属类别;γ′b(d)为所述基于容错的依赖度,表示基因数据的所属类别d在粒子相对应的集合b上的依赖程度;posb(d)表示基因数据的所属类别d关于集合b的正域,posc(d)表示基因数据的所属类别d关于所述基因子集c的正域。所述基于容错的依赖度公式为:

其中,pos′b(d)表示基因数据的所属类别d关于集合b的具有容错性能的正域,card(pos′b(d))表示pos′b(d)中的样本个数,card(u)表示基因数据集u中的样本个数;

利用离散粒子群优化算法对所述基因子集进行约简,在约简过程中按照所述粒子适应度函数公式计算粒子的适应度值,约简得到最优基因子集。

另外,本实施例中的处理器既可以是计算机,也可以是微处理器,如arm等,还可以是可编程芯片,如fpga、dsp等。

上述实施例中所指的基因选择装置,实际上是基于方法实施例一中方法流程的一种计算机解决方案,即一种软件构架,上述装置即为与方法流程相对应的处理进程。由于在方法实施例一中对上述方法的介绍已经足够清楚完整,故不再详细进行描述。

装置实施例二:

本实施例提出一种基于容错的基因选择装置,包括处理器,用于执行以实现方法实施例二中基于容错的基因选择方法。

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