一种基于层次随机森林的多标签分类方法

文档序号:10512743阅读:406来源:国知局
一种基于层次随机森林的多标签分类方法
【专利摘要】本发明公开了一种基于层次随机森林的多标签分类方法,所述方法包括:从训练数据集中随机抽取一部分数据,使用这部分随机抽取的数据训练一棵层次树,层次树中节点的分列基于节点中所有数据的标签的聚类结果,重复建立多棵层次树,进而建立层次随机森林作为多标签分类器,并使用建立的层次随机森林多标签分类器对无标签的对象进行分类。该方法利用数据的多个标签之间总有一定的关联性的基本思想,基于标签的聚类结果建立层次树,并为树的每个节点都建立一个分类器;使用随机森林的思想,建立层次随机森林,充分考虑标签之间关联的各种可能性,泛化层次树的分类误差,提高多标签分类问题的速度和准确度。
【专利说明】
一种基于层次随机森林的多标签分类方法
技术领域
[0001] 本发明涉及涉及多标签分类领域,具体涉及基于层次随机森林的多标签分类方 法。
【背景技术】
[0002] 多标签分类问题是分类问题中比较复杂的问题,不同于两类分类问题,它允许问 题中存在多个类别;不同于多类分类问题,它允许分类对象同时属于多个类别。现实中存在 许多多标签分类问题。一个比较常见的问题是为电影分类,电影的类别有很多种,比如,科 幻、喜剧、动作、剧情等,一部电影可以同时属于喜剧和剧情,即同时属于不止一个类别,而 且绝大多数电影都是属于多个类别的。在文本分类中,可以将一篇文章分到多个话题中,比 如,社会、科学、体育、娱乐、教育等;在风景图像分类中,一幅图像可以有多个主题,比如,树 林、海滩、山、草原等。多标签问题在现实生活中具有极其广泛的应用,因此对多标签分类问 题的研究无疑具有非常重大的现实意义。目前,多标签分类问题的算法主要有两大类,一类 是基于数据集分解的方法,另一类是基于单个优化问题的方法。虽然对多标签分类问题的 研究已经有了一定的成果,但是在分类的速度和准确度上仍然有待提高。

【发明内容】

[0003] 本发明的目的是提供一种基于层次随机森林的多标签分类方法,克服现有技术存 在的上述不足。
[0004] 本发明的目的可以通过采取如下技术方案实现。
[0005] -种基于层次随机森林的多标签分类方法,包括如下步骤:
[0006] S1、从训练数据集中随机抽取一部分数据;
[0007] S2、使用步骤S1抽取的数据建立一棵层次树;
[0008] S3、重复步骤S1-S2,建立层次随机森林作为多标签分类器;
[0009] S4、使用步骤S3建立的多标签分类器对无标签的对象进行分类。
[0010] 作为一种具体的实施方案,步骤S1中,所述的从训练数据集中随机抽取一部分数 据,具体方法为:使用bagging方法对训练数据集进行有放回地抽样,随机抽取N次,将随机 抽取的数据中重复出现的数据删除。
[0011] 作为一种具体的实施方案,步骤S2中,所述的建立一棵层次树,具体方法包括以下 步骤:
[0012] S31、创建一个根节点,此节点包含数据所有的标签和步骤S1中抽取的所有训练数 据;
[0013] S32、使用平衡k-means算法对层次树中的父节点中的标签进行聚类;
[0014] S33、根据步骤S32中对父节点中的标签聚类的数量建立相同个数的子节点,将每 个簇划分到不同的子节点中,第c个子节点包含的标签用集合L。表示,数据对象e属于的标 签用集合知表示,如果4 f^e共0,则将数据对象分到子节点c中;
[0015] S34、将每个子节点中的数据由(Xe,Ye)转换为(Xe,Ze),其中Ye和Ze分别为数据对象 e在父节点中的标签集和在当前子节点中的标签集;
[0016] S35、使用分类算法对每个子节点分别训练一个分类器,其中训练数据为步骤S34 转换后的数据;
[0017] S36、重复步骤S32-S35,直到子节点中所有数据的标签都一样,或者无法使用分类 器对子节点中的数据进一步划分。
[0018] 作为一种具体的实施方案,步骤S32中,所述的平衡k-means算法,具体方法包括以 下步骤:
[0019] S41、随机找k个标签作为初始的聚类中心;
[0020] S42、对于剩余的标签,计算每个标签与每个聚类中心的距离,如果距离标签最近 的聚类中心所在的簇包含的标签数量小于丨i/幻,则将其归为这个簇;否则,就找距离聚类中 心第二近的簇,依次类推,直到将其归到一个簇中,其中,L是标签数量,k是聚类中心(簇)的 数量;标签之间距离的计算公式具体如下:
[0022]其中,P(yi,yj)表示标签71和标签^同时出现的概率,P( yi)表示标签71出现的概 率,Sij越大表示两个标签一起出现的概率越大,则两个标签越相似。
[0023] S43、当对所有标签都被划分到某个簇中后,重新计算每一个簇的中心;
[0024] S44、重复步骤S42-S43,当所有的簇所包含的标签都不再改变时,算法结束。
[0025]作为一种具体的实施方案,步骤S4中,所述的使用层次随机森林多标签分类器对 无标签的对象进行分类,具体计算方法为:
[0027]其中,HTi (u) (i = 1,2,…,M)表示层次随机森林中第i棵层次树对无标签数据对象 u的标签的预测结果,是一个长度为Μ的0-1向量,Μ表示层次随机森林中层次树的个数;P (h,A2,···,λ〇表示层次随机森林分类器对无标签数据对象u的标签的预测结果,L表示标签 的数量,Μ的计算方法如下:
[0029] 其中,λ为预先设置好的阈值,Pl为层次随机森林中预测无标签数据对象u的标签 是7:的层次树的百分比。
[0030] 与现有技术相比,本发明具有如下优点和技术效果:
[0031] 本发明利用数据的多个标签之间总有一定的关联性的基本思想,基于标签的聚类 结果建立层次树,并为树的每个节点都建立一个分类器;使用随机森林的思想,建立层次随 机森林,充分考虑标签之间关联的各种可能性,泛化层次树的分类误差。该方法可以提高多 标签分类问题的速度和准确度。
【附图说明】
[0032] 图1为本发明实施例1的一种基于层次随机森林的多标签分类方法的流程图。
[0033] 图2为本发明实施例1的建立一棵层次树的流程图。
【具体实施方式】
[0034]
[0035]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[0036] 实施例1:
[0037] 如图1所示,本实施例1的一种基于层次随机森林的多标签分类方法,包括以下步 骤:
[0038] S1、从训练数据集中随机抽取一部分数据;
[0039] S2、使用步骤S1抽取的数据建立一棵层次树;
[0040] S3、重复步骤S1-S2,建立层次随机森林作为多标签分类器;
[0041 ] S4、使用步骤S3建立的多标签分类器对无标签的对象进行分类。
[0042]所述的训练数据集是分类研究领域对用于学习分类模型的数据的简称,这些数据 可以是使用文本、图片、视频等表示的医疗数据、互联网数据、银行数据等。
[0043] 所述的从训练数据集中随机抽取一部分数据,具体方法为:使用bagging方法对训 练数据集进行有放回地抽样,随机抽取N次(作为实例,N通常为训练数据集的2/3),将随机 抽取的数据中重复出现的数据删除,将这些数据作为建立一棵层次树的训练数据。其中,
[0044] 如图2所示,本实施例1的一种基于层次随机森林的多标签分类方法,所述的建立 一棵层次树,具体方法包括以下步骤:
[0045] S31、创建一个根节点,此节点包含数据所有的标签和步骤S1中抽取的所有训练数 据;
[0046] S32、使用平衡k-means算法对层次树中的父节点中的标签进行聚类;
[0047] S33、根据步骤S32中对父节点中的标签聚类的数量建立相同个数的子节点,将每 个簇划分到不同的子节点中,第c个子节点包含的标签用集合L。表示,数据对象e属于的标 签用集合K表示,如果' η仏# 0,则将数据对象e划分到子节点c中;
[0048] S34、将每个子节点中的数据由(xe,Ye)转换为(xe,Z e),其中Ye和Ze分别为数据对象 e在父节点中的标签集和在当前子节点中的标签集;
[0049] S35、使用分类算法对每个子节点分别训练一个分类器,其中训练数据为步骤S34 转换后的数据,这里的分类算法可以是C4.5、SVM等分类方法;
[0050] S36、重复步骤S32-S35,直到子节点中所有数据的标签都一样,或者无法使用分类 器对子节点中的数据进一步划分。
[0051 ]所述的平衡k-means算法,具体方法包括以下步骤:
[0052] S41、随机找k个标签作为初始的聚类中心;
[0053] S42、对于剩余的标签,计算每个标签与每个聚类中心的距离,如果距离标签最近 的聚类中心所在的簇包含的标签数量小于则将其归为这个簇;否则,就找距离聚类中 心第二近的簇,依次类推,直到将其归到一个簇中,其中,L是标签数量,k是聚类中心(簇)的 数量;标签之间距离的计算公式具体如下:
[0055]其中,P(yi,yj)表示标签yi和标签yj同时出现的概率,P(yi)表示标签yi出现的概 率,Sij越大表示两个标签一起出现的概率越大,则两个标签越相似。
[0056] S43、当对所有标签都被划分到某个簇中后,重新计算每一个簇的中心;
[0057] S44、重复步骤S42-S43,当所有的簇所包含的标签都不再改变时,算法结束。
[0058]步骤S4所述的使用层次随机森林多标签分类器对无标签的对象进行分类,具体计 算方法为:
[0060]其中,HTi(u) (i = 1,2,…,M)表示层次随机森林中第i棵层次树对无标签数据对象 u的标签的预测结果,是一个长度为Μ的0-1向量,Μ表示层次随机森林中层次树的个数;P (h,A2,···,λ〇表示层次随机森林分类器对无标签数据对象u的标签的预测结果,L表示标签 的数量,Μ的计算方法如下:
[0062] 其中,λ为预先设置好的阈值,Pl为层次随机森林中预测无标签数据对象u的标签 是7:的层次树的百分比。
[0063] 上述实例使用随机森林的思想,建立层次随机森林,充分考虑标签之间关联的各 种可能性,泛化层次树的分类误差,可以提高多标签分类问题的速度和准确度。
[0064] 以上所述,仅为本发明专利优选的实施例,但本发明专利的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技 术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。
【主权项】
1. 一种基于层次随机森林的多标签分类方法,其特征在于:包括以下步骤: 51、 从训练数据集中随机抽取一部分数据; 52、 使用步骤S1抽取的数据建立一棵层次树; 53、 重复步骤S1-S2,建立层次随机森林作为多标签分类器即层次随机森林分类器; 54、 使用步骤S3建立的多标签分类器对无标签的对象进行分类。2. 根据权利要求1所述的一种基于层次随机森林的多标签分类方法,其特征在于:步骤 S1所述的从训练数据集中随机抽取一部分数据,具体为:使用bagging方法对训练数据集进 行有放回地抽样,随机抽取N次,将随机抽取的数据中重复出现的数据删除。3. 根据权利要求1所述的一种基于层次随机森林的多标签分类方法,其特征在于:步骤 S2所述的建立一棵层次树,具体方法包括以下步骤: 531、 创建一个根节点,此节点包含使用步骤S1所描述的方法从训练数据集中抽样的数 据,以及训练数据集包含的所有标签。 532、 使用平衡k-means算法对层次树中的父节点中的标签进行聚类; 533、 根据步骤S32中对父节点中的标签聚类的数量建立相同个数的子节点,将每个簇 划分到不同的子节点中,第c个子节点包含的标签用集合L。表示,数据对象e所有的标签用 集合K表示,如果込n/i e # 0,则将数据对象e划分到当前节点的第c个子节点中; 534、 将每个子节点中的数据由(Χβ,Υβ)转换为kA),其中Xe表示对象e,Ye和Z e分别为 数据对象e在父节点中的标签集和在当前子节点中的标签集; 535、 使用分类算法对每个子节点分别训练一个分类器,其中训练数据为步骤S34转换 后的数据; 536、 重复步骤S32-S35,直到子节点中所有对象的标签都一样,或者无法使用分类器对 子节点中的数据进一步划分。4. 根据权利要求3所述的一种基于层次化随机森林的多标签分类方法,其特征在于:步 骤S32所述的平衡k-means算法,具体方法包括以下步骤: 541、 随机找k个标签作为初始的聚类中心; 542、 对于剩余的标签,计算每个标签与每个聚类中心的距离,如果距离标签最近的聚 类中心所在的簇包含的标签数量小于[LA1,则将其归为这个簇;否则,就找距离聚类中心第 二近的簇,依次类推,直到将其归到一个簇中,其中,L是标签数量,k是聚类中心的数量; 543、 当所有标签都被划分到某个簇中后,重新计算每一个簇的中心; 544、 重复步骤S42-S43,直到所有簇的聚类中心不再改变。5. 根据权利要求1所述的一种基于层次化随机森林的多标签分类方法,其特征在于:步 骤S4所述的使用多标签分类器对无标签的对象进行分类,具体计算方法为:其中,ITMu)表示层次随机森林中第i棵层次树对无标签数据对象u的标签的预测结果, 是一个长度为Μ的0-1向量,i = 1,2,…,M,M表示层次随机森林中层次树的个数;ΡΟ:,λ2,…, λ?)表示层次随机森林分类器对无标签数据对象u的标签的预测结果,L表示标签的数量,Μ 的计算方法如下:其中,λ为预先设置好的阈值,Pl为层次随机森林中预测无标签数据对象U的标签是71的 层次树的百分比。
【文档编号】G06K9/62GK105868773SQ201610171082
【公开日】2016年8月17日
【申请日】2016年3月23日
【发明人】吴庆耀, 谭明奎, 陈健, 林世杭, 黄翰
【申请人】华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1