一种基于依赖度的半监督多标签分类方法与流程

文档序号:17665030发布日期:2019-05-15 22:38阅读:188来源:国知局
一种基于依赖度的半监督多标签分类方法与流程

本发明涉及一种基于依赖度的半监督多标签分类方法,属于数据分类中的多标签分类技术领域。



背景技术:

在对数据进行分析的时候,数据分类可以有效的帮助人们更好的解读数据。在诸多领域,如:模式识别、图像分类、生物基因功能分析等领域中,数据分类都有着很重要的作用。多标签分类是数据分类中的一类,指每一个实例都与多个标签有关。而传统用于处理数据分类的单标签分类算法已经不能适用于多标签分类,所以研究高效的多标签分类方法有非常重要的意义。随着研究的发展,目前关于多标签分类的方法,主要分为两类:问题转化法和算法适应法。

问题转化法是将多标签分类的问题分解转化为几个相对互相独立的二分类问题。如:二值相关binaryrelevance(br)算法,该算法是一种典型的拆分数据的方法,这种方法非常直观,但是并没有考虑标签之间的相互关系,预测结果往往无法令人满意。lp(labelpowerset)算法,该方法通过将每个对象所在的标签集合视为一个新的标签,进而将多标签分类的问题转化为单标签分类问题,但是该方法不能预测新的标签,只能从已知的标签中选择。rakel算法是在lp算法的基础上进行了改进,该方法通过将候选集合利用随机的方式划分为n个标签子集,虽然考虑了标签的相互关系,但是由于同一个标签子集中会出现没有任何关系的标签,从而导致毫不相干的标签出现在分类结果中,这极大的降低了方法分类性能。

算法适应法是通过修改现有的算法,以适应多标签分类问题。如:基于神经网络的算法(bp-mll),通过构造新的错误函数以获取多标签数据的特征,但是却增加了计算复杂度。svmmn方法,将示例平滑度和类平滑度集成到准则函数中,提出了一种近似迭代算法,该方法具有良好的收敛性,但是计算复杂度高,且需要高效率的求解器。ml-knn算法,该算法通过学习待分类数据的k个近邻信息,然后利用最大化后验概率预测待分类数据的标签,但是该算法忽略了标签之间的相互关系。cwmi-insdif算法,通过结合数据重要度的权重参数,加入自适应的惩罚策略,以确定各个权重的大小,该算法能充分的考虑数据分布的特性,但是忽视了标签之间的相互关系。现实生活中的数据,往往都是非独立同分布的,在多标签分类中,数据的标签之间定然存在着这种关系,因此,将标签的相互关系考虑到多标签分类中,是否可以挖掘潜在的信息,能否提高分类的性能,对多标签分类有着很重要的研究意义。

以上的算法均基于监督学习思想,但在实际的应用过程中,对多标签数据的学习中通常需要有一定量的有正确标签的数据作为参考,但是有标签的数据往往获取难度远大于获取无标签数据。如在基因序列的对比上,若想获取有标签的数据,需要使用专业的特殊设备或进行用时非常长且花费昂贵的实验才可获取,但可以轻松的获取到海量的无标签数据。传统的监督学习只能利用少量的有标签数据进行学习,而无监督学习只利用无标签数据进行学习,两种方法均不能得到很满意的模型。但半监督学习可以同时利用有标签数据和无标签数据进行学习,如dlp算法,探讨了标记信息和局部结构在改进的半监督学习中转移矩阵的作用,它通过传播在动态过程中进行直接学习。还有基于情感标签的极性分类方法,通过文本建立模型,抽取文本的情感标签,将样本分为两个子样本,然后通过co-training算法分类,最后合并两个子样本的分类结果,大幅提高分类精度。以上算法虽然结合了半监督学习思想,利用无标签数据提高了分类精度,但是并没有考虑标签之间的相互关系,忽视了标签的相关性。因此,如何利用半监督学习思想来解决有标签数据量和无标签数据量不平衡的问题,同时可以保证标签之间的相关性变得尤为重要。

为了考虑标签之间的相互关系,通常做法是计算标签之间的支持度、置信度、提升度。但是在相关性度量的过程中,有时候使用支持度和置信度挖掘得到的规则可能是无效的。而提升度可以两事物的关联,并且可以判断关联的强弱。但是在实际应用过程中,提升度受零事物的影响过大。如:超市中有10000个订单,其中购买牛奶的有6000个,购买酸奶的有7500个,两者都购买的有4000个。通过计算可以得出买牛奶和买酸奶的支持度为0.4,买牛奶对买酸奶的置信度为0.67,即在买了牛奶之后会有0.67的人购买酸奶。买酸奶对买牛奶的置信度为0.53,即在买了酸奶字后会有0.53的人购买牛奶。看似0.67的置信度较高,但实际上在没有任何其他条件下,买酸奶的事件出现的概率是0.75,而有了奶牛奶的事件,同时买酸奶的事件发生的比例是0.67,就说明因为出现了买牛奶的事件,买酸奶的事件出现比例反而降低了。此时买酸奶和买牛奶两个事件是排斥的。而提升度是是一种很简单的判断关联关系的手段,但是在实际应用过程中受零事务的影响比较大,例子中零事物可以理解为既没有买牛奶也没有买酸奶的事物数为10000-4000-2000-3500=500,可见例子中零事物很小,但如果把10000改为1000000个事物,此时零事物就很大了,可见提升度与零事物有关,不能很好地测量标签之间的相关性。



技术实现要素:

本发明要解决的技术问题是为了克服上述现有技术存在的缺陷而提供一种基于依赖度的半监督多标签分类方法。

本发明的技术方案是:一种基于依赖度的半监督多标签分类方法,包括以下步骤:

(1)输入的数据集为:有标签数据集x,无标签数据集u,测试数据集t。

(2)设定半监督自训练模型循环条件、置信度条件。

(3)若满足循环条件,则进入循环。

(4)对步骤(1)中所述的有标签数据集x,计算其先验概率。具体包括以下步骤:

11)数据集x={x1,x2,...,xi,...,xm}为数据的有限集,即x中有m个数据:a={a1,a2,...,aj,...,an}为属性的有限集,即a中有n个属性;l={l1,l2,...,ls,...,lq}为标签的有限集,即l中有q个标签。多标签数据包括两个部分:属性集和标签集。对于训练实例xi的第j个属性值(xi(aj)∈r);它的标签集可定义为xi(l)={xi(l1),xi(l2),...,xi(ls),...,xi(lq)},其中xi(ls)代表实例xi的第s个标签值(xi(ls)∈{0,1})。如果实例xi属于ls类,那么xi(ls)=1;否则xi(ls)=0。

12)计算先验概率,用表示实例属于标签lj,表示实例不属于标签lj:

(5)对步骤(1)中所述的有标签数据集x,寻找其每个实例的k个最近邻,根据最近邻信息,计算条件概率。具体包括以下步骤:

21)根据最近邻信息计算条件概率,用表示实例属于lj类的条件下,其k个近邻中,恰有u个实例属于lj类的条件概率。用表示实例不属于lj类的条件下,其k个近邻中,恰有u个实例属于lj类的条件概率。其中c[u]表示实例的k个近邻中恰有u个实例属于lj。c′[u]表示实例的k个近邻中恰有u个实例不属于lj类:

(6)对步骤(1)中所述的有标签数据集x,计算其每两个标签之间的依赖度。具体包括以下步骤:

31)计算每两个标签之间的依赖度,用kulc(lj,lk)表示:

(7)对步骤(1)中所述的无标签数据集u,寻找其每个实例的k个最近邻,根据最近邻信息、步骤(4)中所述的先验概率、步骤(5)中所述的条件概率、步骤(6)中所述的依赖度,综合计算后验概率。具体包括以下步骤:

41)计算后验概率,用表示,其中b为二元变量,当b=0时,表示统计待分类实例xt的近邻中属于第lj类的实例数,n(xt)表示待分类实例xt在已分类实例集中的k个近邻实例集,表示在待分类实例xt属于lk类的条件下,待分类实例xt的k个近邻中,恰有个实例属于lj类的添加概率,表示在待分类实例xt不属于lk类的条件下,待分类实例xt的k个近邻中,恰有个实例属于lj类的条件概率。若那么待分类实例xt属于lj类,否则待分类实例xt不属于lj类。

(8)对步骤(7)中所述的后验概率,对其进行分类。

(9)对步骤(8)中所述的分类后的数据集,计算其每个实例的置信度,具体包括以下步骤:

51)对测试示例i进行多标签分类,得到的对每类标签的概率为p(p1,p2,…,pn),其中n是标签数。对于置信度的计算方式,给出如下定义:

(10)根据步骤(9)中所述的置信度,根据步骤(2)中所述的置信度条件对比,符合置信度条件的数据从数据集u中移除,加入到数据集x中。具体包括以下步骤:

61)将步骤(9)中计算得到的置信度与步骤(2)中设置的置信度条件进行对比。

62)若符合置信度条件,则将其从数据集u中移除,并加入到数据集x中。

63)若不合符置信度条件,则将其留在数据集u中。

(11)循环结束

(12)若不满足循环条件,则读取步骤(1)中所述的测试数据集t,寻找其每个实例的k个近邻,然后根据近邻信息,和最后一次循环中步骤(4)中所述的先验概率、步骤(5)中所述的条件概率、步骤(6)中所述的依赖度,综合计算后验概率。具体包括以下步骤:

71)计算后验概率,用表示,其中b为二元变量,当b=0时,表示统计待分类实例xt的近邻中属于第lj类的实例数,n(xt)表示待分类实例xt在已分类实例集中的k个近邻实例集,表示在待分类实例xt属于lk类的条件下,待分类实例xt的k个近邻中,恰有个实例属于lj类的添加概率,表示在待分类实例xt不属于lk类的条件下,待分类实例xt的k个近邻中,恰有个实例属于lj类的条件概率。若那么待分类实例xt属于lj类,否则待分类实例xt不属于lj类。

(13)根据步骤(12)中计算得到的后验概率,对测试线上数据集进行分类。

本发明的有益效果是:本发明基于多标签分类算法,提出了一种新的依赖度计算方法,通过引入标签依赖度,计算标签之间的相互关系,提高了多标签分类算法的效果;同时,利用半监督自训练模型,引入大量无标签数据,提高数据利用率,减少因为有标签数据获取难度较大造成的影响。

附图说明

图1是本发明的流程图;

图2是本发明的半监督自训练模型流程图;

图3是本发明的监督分类器的流程。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

如图1所示,基于依赖度的半监督多标签分类方法,其特征在于,包括以下步骤:

步骤s01:输入训练数据集(有标签数据集)x、无标签数据集u、训练数据集t。

步骤s02:设置半监督自训练模型循环条件,当满足该条件时则执行步骤s03-s06,不满足该条件时则执行步骤s07-s08。半监督自训练模式是一种简单的,高效率的半监督模型,最早将无标签的样例用于监督学习的方法。半监督自训练方法是打包算法,在每一轮的训练过程中反复运用监督学习方法,将上一轮标记结果最优的实例和它的标签一起加入到当前训练样本集中,用自己产生的结果再次训练自己。

步骤s03:对数据集x进行训练,首先针对数据集x根据公式(1)计算先验概率,然后计算条件概率公式(2),最后针对数据集x中的标签数据,根据公式(3)计算标签之间的依赖度。

数据集x={x1,x2,...,xi,...,xm}为数据的有限集,即x中有m个数据:a={a1,a2,...,aj,...,an}为属性的有限集,即a中有n个属性;l={l1,l2,...,ls,...,lq}为标签的有限集,即l中有q个标签。多标签数据包括两个部分:属性集和标签集。对于训练实例xi的第j个属性值(xi(aj)∈r);它的标签集可定义为xi(l)={xi(l1),xi(l2),...,xi(ls),...,xi(lq)},其中xi(ls)代表实例xi的第s个标签值(xi(ls)∈{0,1})。如果实例xi属于ls类,那么xi(ls)=1;否则xi(ls)=0.

其中,s为平滑系数,设置为1,m为总实例数,表示的是实例属于lj类的概率,表示实例xi属于lj类的条件下,实例xi的k个近邻中,恰好有u个实例属于lj类的条件概率。c[u]表示实例xi的k个近邻中恰有u个实例属于lj类。

kulc(lj,lk)表示标签lj和标签lk的依赖度,即标签lj出现,则标签lk出现的概率有多大。

步骤s04:找到数据集u中各个实例的k个最近邻,根据最近邻信息利用公式(4)计算后验概率,根据后验概率,估算它拥有某个标签的概率,对数据集u中的数据进行分类。

其中,用于统计待分类实例xt的k个近邻中属于lj类的实例数,n(xt)表示待分类实例xt的k个近邻实例集,b为二元变量,当b=1时,表示当待分类实例xt的k个近邻属于lj类的实例数为时,待分类实例xt属于lj类的概率。当b=0时,表示当待分类实例xt的k个近邻属于lj类的实例数为时,待分类实例xt不属于lj类的概率。如果时,则待分类实例xt属于lj类,反之,待分类实例xt不属于lj类

步骤s05:对上一步骤分类后的结果,根据公式(5)计算其置信度,选取置信度较高的结果。

对测试示例xi进行多标签分类,得到的对每类标签的概率为p(p1,p2,…,pq),其中q是标签数。

步骤s06:将在上一步骤选出的结果,从数据集u中移除将其放入数据集l中。

通过不断循环将得到标签的数据加入到数据集x中,增加有标签数据集数据量,进而更准确的对数据分类。

步骤s07:找到测试数据集t中各个实例的k个最近邻,根据最近邻信息利用公式(1-3)计算后验概率,根据后验概率,估算它拥有某个标签的概率,对数据集t中的数据进行分类。

步骤s08:根据上一步骤,得到分类结果。结束本次分类。

本实例在多标签分类过程中,通过引入半监督自训练模型,和加入依赖度的计算,克服了多标签分类中,有标签的数据获取难度大且少的问题,在此之上,进一步利用依赖度提高了分类精度。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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