一种基于标签子集的分类方法及系统

文档序号:29571071发布日期:2022-04-09 03:55阅读:74来源:国知局
一种基于标签子集的分类方法及系统

1.本发明涉及计算机技术领域,尤其涉及一种基于标签子集的分类方法及系统。


背景技术:

2.多标签分类主要用于处理一个数据同时属于多个类别的情况,现实中这种情况是广泛存在的,例如一篇文章同时属于“新闻”“经济”“文化”等类别。为了对现实场景中的多义性对象进行准确的划分,很多研究人员对多标签分类方法进行了深入的研究。
3.在机器学习领域,提出了很多的多标签分类算法,现有的多标签分类方案通常是基于多个单标签分类模型实现的,利用多个单标签分类模型分别对多标签任务进行分类,然后,将所有单标签分类器的预测结果的合集作为该多标签任务的最终预测结果,单标签分类器的预测准确性会直接影响多标签分类的准确性。而在实际应用中,用于每个单标签分类器的样本会比较少,如此会使得单个单标签分类器的预测结果准确性较差,从而会影响多标签任务的最终预测结果的准确性,且现有的多标签分类算法往往未考虑标签间的关联性。
4.此外,研究发现,如果多标签分类方法在分类时只考虑标签间的关联性,该方法不一定得到较好的分类性能,也就是说,在特征选择中,单个好的特征的组合并不能总是提升分类方法的分类性能,因为有可能特征之间是高度相关的,这就导致了特征之间存在冗余,会影响方法的分类性能。


技术实现要素:

5.本发明的目的在于克服现有技术中多标签分类方法存在的问题,提供了一种基于标签子集的分类方法及系统。
6.本发明的目的是通过以下技术方案来实现的:
7.主要提供一种基于标签子集的分类方法,所述方法包括以下内容:
8.获取多标签数据样本集,并将多标签数据样本集转换成单标签数据集;
9.计算所述单标签数据集中所有样本的标签子集,构建基于所述标签子集的新的样本数据集;所述标签子集的计算包括:计算样本中所有特征的重要性;计算特征之间的相关性;计算特征之间的冗余性,并结合特征之间的相关性和冗余性,选出排序靠前的标签,构建标签子集;
10.将每个样本的标签子集放入到原来单标签数据集的样本中,得到新的单标签数据集;
11.基于新的单标签数据集构建单标签分类模型,然后统计每个样本在每个单标签分类模型中的标签,得出最终的多标签分类结果。
12.作为一选项,所述将多标签数据样本集转换成单标签数据集,包括:
13.将多标签数据样本集中的单个标签对应到每一个样本中,分解成与标签数量等同的数据子集。
14.作为一选项,所述方法还包括:
15.对所述多标签数据样本集进行预处理,所述预处理包括:
16.对数据特征值缺失的样本进行删除处理,保留数据特征完整的样本,然后将多标签数据样本集随机划分为训练集和测试集。
17.作为一选项,通过f-score公式计算各个特征的重要性,所述f-score公式为:
[0018][0019]
其中,fi越大,该特征xi的类辨能力越强。
[0020]
作为一选项,使用互信息计算特征之间的相关性,计算公式如下:
[0021][0022]
x表示特征变量,y表示标签变量,p(xi)和p(yj)分别是变量x和y的边缘概率,p(xi,yj)是x和y的联合概率分布函数。
[0023]
作为一选项,所述结合特征之间的相关性和冗余性,选出排序靠前的标签,包括:
[0024]
计算所有特征与目标变量之间的互信息均值,计算公式如下:
[0025][0026]
其中,s表示已选特征集合,c表示目标变量,即类标签变量;
[0027]
计算特征之间的冗余信息量,计算公式如下:
[0028][0029]
根据所述互信息均值和冗余信息量,选出冗余性小、相关性大的标签,选择计算公式如下:
[0030][0031]
其中,m为特征的数量,根据上述公式计算的结果将排序在前70%的标签选择出来。
[0032]
作为一选项,训练集和测试集的比例为1:1。
[0033]
作为一选项,使用贝叶斯算法构建单标签分类模型。
[0034]
作为一选项,所述多标签数据样本集中包含多个不同的标签,包含多个不同的特征。
[0035]
本发明还提供一种基于标签子集的分类系统,所述系统包括:
[0036]
样本获取模块,用于获取多标签数据样本集,并将多标签数据样本集转换成单标签数据集;
[0037]
标签子集计算模块,用于计算所述单标签数据集中所有样本的标签子集,构建基
于所述标签子集的新的样本数据集;所述标签子集的计算包括:计算样本中所有特征的重要性;计算特征之间的相关性;计算特征之间的冗余性,并结合特征之间的相关性和冗余性,选出排序靠前的标签,构建标签子集;
[0038]
样本重组模块,用于将每个样本的标签子集放入到原来的样本中,得到新的单标签数据集;
[0039]
建模和分类模块,用于基于新的单标签数据集构建单标签分类模型,然后统计每个样本在每个单标签分类模型中的标签,得出最终的多标签分类结果。
[0040]
需要进一步说明的是,上述各选项对应的技术特征在不冲突的情况下可以相互组合或替换构成新的技术方案。
[0041]
与现有技术相比,本发明有益效果是:
[0042]
将多标签数据样本集转换成单标签数据集,通过计算单标签数据集中所有特征的重要性、计算特征之间的相关性、计算特征之间的冗余性,并结合特征之间的相关性和冗余性,有效地选出优异的标签子集,取得的特征与特征之间的冗余性尽量小,而特征之间的相关性尽量大,既考虑标签之间的关联性,又避免了特征之间的冗余对模型分类性能的影响,提高模型的分类性能。
附图说明
[0043]
图1为本发明一种基于标签子集的分类方法的流程示意图。
具体实施方式
[0044]
下面结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0045]
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0046]
本发明主要通过将多标签数据样本集转换成单标签数据集,通过计算单标签数据集中所有特征的重要性、计算特征之间的相关性、计算特征之间的冗余性,并结合特征之间的相关性和冗余性,有效地选出优异的标签子集,取得的特征与特征之间的冗余性尽量小,而特征之间的相关性尽量大,既考虑标签之间的关联性,又避免了特征之间的冗余对模型分类性能的影响,达到提高模型的分类性能的目的。
[0047]
实施例1
[0048]
在一示例性实施例中,提供一种基于标签子集的分类方法,如图1所示,
[0049]
所述方法包括以下内容:
[0050]
获取多标签数据样本集,并将多标签数据样本集转换成单标签数据集;
[0051]
计算所述单标签数据集中所有样本的标签子集,构建基于所述标签子集的新的样本数据集;所述标签子集的计算包括:计算样本中所有特征的重要性;计算特征之间的相关性;计算特征之间的冗余性,并结合特征之间的相关性和冗余性,选出排序靠前的标签,构建标签子集;
[0052]
将每个样本的标签子集放入到原来的单标签数据集的样本中,得到新的单标签数
据集;
[0053]
基于新的单标签数据集构建单标签分类模型,然后统计每个样本在每个单标签分类模型中的标签,得出最终的多标签分类结果。
[0054]
具体地,通过计算单标签数据集中所有特征的重要性、计算特征之间的相关性、计算特征之间的冗余性,并结合特征之间的相关性和冗余性,有效地选出优异的标签子集,取得的特征与特征之间的冗余性尽量小,而特征之间的相关性尽量大,既考虑标签之间的关联性,又避免了特征之间的冗余对模型分类性能的影响,达到提高模型的分类性能的目的。
[0055]
进一步地,在计算得到单标签数据集中每个样本的标签子集后,将该标签子集放入转换为单标签后的各个样本中,使用的方法是将标签子集作为特征直接插入到数据样本中,得到新的单标签数据集,这样得到的新的单标签数据集就能够反映各标签之间的关系。
[0056]
进一步地,统计每个样本在每个单标签分类模型中的标签,比如某一个需要预测的数据样本,在每一个单标签模型中进行分类,如果属于该分类,则将这个样本记上这个标签。
[0057]
实施例2
[0058]
基于实施例1,提供一种基于标签子集的分类方法,所述将多标签数据样本集转换成单标签数据集,包括:
[0059]
将多标签数据样本集中的单个标签对应到每一个样本中,分解成与标签数量等同的数据子集。
[0060]
进一步地,所述方法还包括:
[0061]
对所述多标签数据样本集进行预处理,所述预处理包括:
[0062]
对数据特征值缺失的样本进行删除处理,保留数据特征完整的样本,然后将多标签数据样本集随机划分为训练集和测试集。
[0063]
具体地,假设多标签数据样本集d中一共包含l个标签,其中包含特征q 个,对给定的多标签数据集d进行预处理,其中包括缺失值的处理,对于数据特征值缺失的样本进行删除处理。保留数据特征完整的样本。然后按照训练集 train和测试集test比例1:1将集合d随机划分为两个部分,设已选特征集合为 s,s最开始为空,候选特征集合为w,最开始包含了集合中所有的q个特征。
[0064]
进一步地,设多标签数据集d中包含8个样本,l=5,分别为标签{l1,l2, l3,l4,l5},原始的多标签数据集d如下表所示:
[0065]
表1
[0066]
idf1f2f3f4f5f6f7labels1g1g2g3g4g5g6g7l1,l2,l3,l52r1r2r3r4r5r6r7l2,l4,l53m1m2m3m4m5m6m7l1,l3,l4,l54y1y2y3y4y5y6y7l2,l3,l55v1v2v3v4v5v6v7l1,l2,l46h1h2h3h4h5h6h7l3,l47x1x2x3x4x5x6x7l2,l58n1n1n1n1n1n1n7l1,l2,l4
[0067]
其中,f1、f2等表示特征,将标签集中的单个标签对应到每一个样本中,分解成与标签数量等同的数据子集。
[0068]
具体地,标签l1对应下表:
[0069]
表2
[0070]
idf1f2f3f4f5f6f7labels1g1g2g3g4g5g6g7l12r1r2r3r4r5r6r7 3m1m2m3m4m5m6m7 4y1y2y3y4y5y6y7 5v1v2v3v4v5v6v7l16h1h2h3h4h5h6h7 7x1x2x3x4x5x6x7 8n1n1n1n1n1n1n7l1
[0071]
标签l2对应下表:
[0072]
表3
[0073]
idf1f2f3f4f5f6f7labels1g1g2g3g4g5g6g7l22r1r2r3r4r5r6r7l23m1m2m3m4m5m6m7 4y1y2y3y4y5y6y7l25v1v2v3v4v5v6v7l26h1h2h3h4h5h6h7 7x1x2x3x4x5x6x7l28n1n1n1n1n1n1n7l2
[0074]
标签l3对应下表:
[0075]
表4
[0076]
idf1f2f3f4f5f6f7labels1g1g2g3g4g5g6g7l32r1r2r3r4r5r6r7 3m1m2m3m4m5m6m7l34y1y2y3y4y5y6y7l35v1v2v3v4v5v6v7 6h1h2h3h4h5h6h7l37x1x2x3x4x5x6x7 8n1n1n1n1n1n1n7 [0077]
标签l4对应下表:
[0078]
表5
[0079]
idf1f2f3f4f5f6f7labels
1g1g2g3g4g5g6g7 2r1r2r3r4r5r6r7l43m1m2m3m4m5m6m7l44y1y2y3y4y5y6y7 5v1v2v3v4v5v6v7l46h1h2h3h4h5h6h7l47x1x2x3x4x5x6x7 8n1n1n1n1n1n1n7l4
[0080]
标签l5对应下表:
[0081]
表6
[0082][0083][0084]
进一步地,经过转换后的数据可以直接使用单标签分类算法进行分类模型的构建,但此时多标签数据中标签之间的关联关系没有被考虑,而多标签数据中标签之间是具有一定关联关系的,因此提出一种新的方法来构建样本的标签子集,通过标签子集来映射样本中标签之间的关联关系,f-score是一种衡量特征在两类之间分辨能力的方法,通过此方法可以实现有效的特征选择。
[0085]
具体地,通过f-score公式计算各个特征的重要性,所述f-score公式为:
[0086][0087]
其中,n
+
表示正类的样本数,n-表示负类的样本数。和分别表示第i个特征在整个数据集上的平均值,在正类数据集上的平均值和负类数据集上的平均值。表示第k个正类样本点的第i个特征的特征值,表示第k个负类样本点的第i个特征的特征值。
[0088]fi
越大,该特征xi的类辨能力越强,即类间越疏,类内越密,分类效果就越好,也即此特征的类别辨别力越强。
[0089]
但是,f-score并不能精确地度量出特征间的互信息,而互信息是特征间相关性的表述,若无法揭示互信息,也就不能度量出特征间的相关性的大小,因此,使用互信息计算特征之间的相关性,计算公式如下:
[0090][0091]
x表示特征变量,y表示标签变量,p(xi)和p(yj)分别是变量x和y的边缘概率,p(xi,yj)是x和y的联合概率分布函数,此处将标签也看作一个特征,用于反映标签之间的关系。
[0092]
进一步地,构建模型时只考虑与类变量特别相关的特征,该模型不一定导致良好的分类性能,也就是说,在特征选择中,单个好的特征的组合并不能总是提升模型的分类性能,因为有可能特征之间是高度相关的,这就导致了特征之间存在冗余。因此,为了有效地选择出优异的特征子集,需要结合特征之间的相关性和冗余性,选出排序靠前的标签,包括:
[0093]
计算所有特征与目标变量之间的互信息均值,计算公式如下:
[0094][0095]
其中,s表示已选特征集合,c表示目标变量,即类标签变量;
[0096]
计算特征之间的冗余信息量,计算公式如下:
[0097][0098]
根据所述互信息均值和冗余信息量,选出冗余性小、相关性大的标签,选择计算公式如下:
[0099][0100]
其中,m为特征的数量,根据上述公式计算的结果将排序在前70%的标签选择出来,构建成样本新的标签子集。
[0101]
最后循环迭代计算每一个样本的标签子集,基于新的样本数据集构建新的单标签数据集,并将每个样本的标签子集放入到样本中,基于新的数据样本构建分类模型。
[0102]
以标签l5为例,加入标签子集后新的单标签数据集如下表所示:
[0103]
表7
[0104]
idf1f2f3f4f5f6f7l1l2l3l4labels1g1g2g3g4g5g6g7g8g9g10g11l52r1r2r3r4r5r6r7r8r9r10r11l53m1m2m3m4m5m6m7m8m9m10m11l54y1y2y3y4y5y6y7y8y9y10y11l55v1v2v3v4v5v6v7v8v9v10v11 6h1h2h3h4h5h6h7h8h9h10h11 7x1x2x3x4x5x6x7x8x9x10x11l5
8n1n1n1n1n1n1n7n8n9n10n11 [0105]
由表7可知,f1到f7是数据中本来的特征,假设多标签数据集中一共是5 个标签,然后我们将原来的l1、l2、l3和l4标签作为特征加入到单标签的数据中。g8、g9、g10、g11等只是代表的该特征的某个值,比如可以取0或者1,代表有和无该标签的意思。这样就建立了标签l5和其他标签l1、l2、l3、l4 之间的关系,以此类推,建立标签l1与其他标签的关系,建立标签l2与其他标签的关系,建立标签l3与其他标签的关系,建立标签l4与其他标签的关系。
[0106]
进一步地,训练集和测试集的比例为1:1。
[0107]
进一步地,使用贝叶斯算法构建单标签分类模型。
[0108]
进一步地,所述多标签数据样本集中包含多个不同的标签,包含多个不同的特征。
[0109]
实施例3
[0110]
提供一种基于标签子集的分类系统,所述系统包括:
[0111]
样本获取模块,用于获取多标签数据样本集,并将多标签数据样本集转换成单标签数据集;
[0112]
标签子集计算模块,用于计算所述单标签数据集中所有样本的标签子集,构建基于所述标签子集的新的样本数据集;所述标签子集的计算包括:计算样本中所有特征的重要性;计算特征之间的相关性;计算特征之间的冗余性,并结合特征之间的相关性和冗余性,选出排序靠前的标签,构建标签子集;
[0113]
样本重组模块,用于将每个样本的标签子集放入到原来的样本中,得到新的单标签数据集;
[0114]
建模和分类模块,用于基于新的单标签数据集构建单标签分类模型,然后统计每个样本在每个单标签分类模型中的标签,得出最终的多标签分类结果。
[0115]
实施例4
[0116]
本实施例与实施例1具有相同的发明构思,在实施例1的基础上提供了一种存储介质,其上存储有计算机指令,计算机指令运行时执行实施例1中的一种基于标签子集的分类方法的步骤。
[0117]
基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory, rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0118]
实施例5
[0119]
本实施例还提供一种终端,与实施例1具有相同的发明构思,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机指令,处理器运行计算机指令时执行实施例1中的一种基于标签子集的分类方法的步骤。处理器可以是单核或者多核中央处理单元或者特定的集成电路,或者配置成实施本发明的一个或者多个集成电路。
[0120]
在本发明提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0121]
以上具体实施方式是对本发明的详细说明,不能认定本发明的具体实施方式只局限于这些说明,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演和替代,都应当视为属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1