基于Spark的并行化随机标签子集多标签文本分类方法技术

技术编号:15691071 阅读:115 留言:0更新日期:2017-06-24 03:58
本发明专利技术请求保护一种基于Spark大数据平台的并行化随机标签子集多标签文本分类方法。首先,读取大规模文本数据集和配置信息文件,创建分布式数据集RDD,将训练数据集和预测数据集缓存到内存中,完成初始化操作。其次,并行地随机生成规定数目的标签子集,由原始训练集为每一个标签子集生成一个新的训练集,再次,将新训练集的多个标签通过标签幂集法转换为单个标签,该数据集转化为一个单标签多类数据集,并行地为这些数据集训练一个基分类器。然后,进行预测将得到的单标签多类预测结果转化为多标签结果。最后,将所有预测结果进行汇总投票,得到测试集最终的多标签预测结果。本发明专利技术提高了分类的精度、大幅降低处理大规模多标签数据的学习时间。

Spark based parallel stochastic label subset multi label text categorization method

The invention requests a method of parallel random label subset and multi label text classification based on Spark large data platform. First, large scale text data sets and configuration information files are read, and a distributed data set RDD is created. The training data set and the prediction data set are cached in memory, and the initialization operation is completed. Secondly, in parallel random number required by the original label subset of the training set for each label subset to generate a new training set, once again, a plurality of new label training set by tag power set method to convert a single label, the data set into a single label multi class data sets. Parallel training set a base classifier for these data. Then, the prediction results of the single label and multi class prediction are transformed into multi label results. Finally, all the prediction results are aggregated and voted to obtain the final multi label prediction results of the test set. The invention improves the accuracy of classification and greatly reduces the learning time of dealing with large multi label data.

【技术实现步骤摘要】
基于Spark的并行化随机标签子集多标签文本分类方法
本专利技术涉及信息技术、云计算、数据挖掘、文本分类等领域,提供了一种基于Spark大数据平台的并行化随机标签子集多标签文本分类算法。
技术介绍
随着信息技术的发展,互联网数据规模呈海量增长,表现形式也不断丰富。文本作为重要的信息载体,其自动分类技术的发展能够提高对海量信息的处理效率,节约处理时间,方便用户的使用,近年来得到广泛的关注和快速的发展。传统有监督学习认为每个样本只具有一个标签,缺乏准确表述事物的复杂语义信息的能力。但是一个样本可能对应与之相关的多个标签,例如文本信息往往同时拥有多个语义,比如一个文本信息可能同时与计算机、机器学习、经济、社会效益等相关联。有效明确解释事物具有的多个语义的一个直接方法就是给一个事物标注多个标签,因此多标签学习(Multi-LabelLearning)也应运而生。在多标签学习中,每个样本可能包含一个或多个标签,被多个标签标注的样本能够更好的表现事物语义信息的多样性,也能够使其分类更具现实意义。随机标签子集多标签(ECC)算法是多标签分类算法的一种,其核心思想为将多标签学习问题转换为多个随机标签子集的学习过程。该算法考虑了标签之间的关联性并且加入了随机因素,在实际使用中分类效果很好。但由于训练阶段需要对于同一样本集进行多个随机标签子集进行多次训练,构建多个训练模型;预测阶段需要使用训练阶段构建的多个模型进行多次预测过程,因此时间复杂度和空间复杂度较高,随着数据量的增大,采用传统串行算法难以应对规模越来越大的数据集,出现运行时间过长,内存溢出等情况,不能满足工程需求。近几年来,大数据技术的发展为解决此类问题提供了理想的条件和思路。Spark是一个基于内存的分布式计算系统,是由UCBerkeleyAMPLab实验室于2009年开发的开源数据分析集群计算框架。拥有MapReduce的所有优点,与MapReduce不同的是.Spark将计算的中间结果数据持久地存储在内存中,通过减少磁盘I/O,使后续的数据运算效率更高。Spark的这种架构设计尤其适合于机器学习、交互式数据分析等应用.这些应用都需要重复地利用计算的中间数据。在Spark和Hadoop的性能基准测试对比中,运行基于内存的logisticregression,在迭代次数相同的情况下,Spark的性能超出HadoopMapReduce100倍以上。两者之间在计算过程中也存在一些不同之处,比如MapReduce输出的中间结果需要读写HDFS,而Spark框架会把中间结果保存在内存中。这些不同之处使Spark在某些工作负载方面表现得更加优越,换句话说,Spark启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。而弹性分布式数据集(RDD,ResilientDistributedDatasets)是Spark框架的核心数据结构,它具备像MapReduce等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。Spark将数据集运行的中间结果保存在内存中能够极大地提高性能,资源开销也极低,非常适合多次迭代的机器学习算法。弹性分布式数据集(RDD)是Spark的核心数据结构。这个数据集的全部或部分可以缓存在内存中,在多次计算间重用。传统的MapReduce虽然具有自动容错、平衡负载和可拓展性的优点,但是其最大缺点是采用非循环式的数据流模型,使得在迭代计算式要进行大量的磁盘IO操作。RDD正是解决这一缺点的抽象方法。通过RDD,Spark可以基本一致的应用于不同的大数据处理场景,如MapReduce,实时流数据,SQL,MachineLearning和图计算等。RDD是一个容错的、并行的数据结构,可以显式的将数据存储在内存和磁盘中,并且能够控制数据的分区状态。RDD还提供了一系列操作接口,用户通过这组接口,可以方便的操作其中的数据。RDD可以由包括本地文件系统,HDFS,HBase,Hive等任何被Hadoop支持的存储源创建,也可以通过Scala内存数据集合创建。在创建RDD后,用户可以设置RDD的存储级别,将RDD缓存在内存或磁盘中,下次重复使用时就不需重新计算,提高程序性能。RDD支持的操作可以分为转换操作和行动操作两种类型,其中转换操作从现有的RDD产生一个新的RDD,行动操作在RDD上执行某种计算返回一个结果值。随着Spark技术的产生与发展,为了适应大数据应用的要求,很多机器学习和数据挖掘领域的算法被设计应用于Spark平台,获得了成倍的性能提升。本专利技术通过将Spark大数据处理技术和随机标签子集多标签方法相结合,有效的解决了串行随机标签子集算法在大规模多标签文本分类应用中算法时空复杂度较高、内存溢出、难以在有效时间内得到结果等不足,提高了分类效率与精度。经过对现有技术的文献检索发现,文章ZhuB,MaraA,MozoA.CLUS:ParallelSubspaceClusteringAlgorithmonSpark[M]//NewTrendsinDatabasesandInformationSystems.SpringerInternationalPublishing,2015:175-185.将子空间聚类算法基于Spark并行化实现,应用于大数据集获得了较大的速度提升。文章JesusMaillo,SergioRamírez,IsaacTriguero,etal.kNN-IS:AnIterativeSpark-baseddesignofthek-NearestNeighborsClassifierforBigData[J].Knowledge-BasedSystems(2016),doi:10.1016/j.knosys.2016.06.012提出了一种基于Spark的迭代精确K最近邻算法,该算法充分利用Spark内存计算的机制,性能比使用HadoopMapReduce实现的相同算法提高了将近十倍。文章KimH,ParkJ,JangJ,etal.DeepSpark:Spark-BasedDeepLearningSupportingAsynchronousUpdatesandCaffeCompatibility[J].2016.结合深度学习技术、Spark大数据处理技术和GPU加速等技术,开发出一套运行于Spark上的深度学习框架。文章DuanM,LiK,TangZ,etal.SelectionandreplacementalgorithmsformemoryperformanceimprovementinSpark[J].Concurrency&ComputationPractice&Experience,2015.提出了一种在内存不足的情况下自动缓存合适的RDD的选择和替换算法,进一步提高了Spark程序的性能。
技术实现思路
本专利技术针对现有多标签分类技术存在的从海量的文本构造的数据集进行分类时容易内存溢出、时间过长和无法运行宕机等缺点,结合Spark分布式技术,有效挖掘了待分类多标签文本样本标签之间的关联。提出了一本文档来自技高网
...
基于Spark的并行化随机标签子集多标签文本分类方法

【技术保护点】
一种基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,包括以下步骤:首先,从HDFS上获取来自互联网的大规模文本数据集和配置信息文件,所述大规模文本数据集包括训练数据集和预测数据集,通过Spark API提供的textFile方法将训练数据集、预测数据集、配置信息文件转换成Spark平台的分布式数据集RDD,完成初始化操作;其次,并行地随机生成规定数目的标签子集,由原始训练集为每一个标签子集生成一个新的训练集,该训练集特征为原始训练集的全部特征,新训练集中的标签仅保留对应标签子集中包含的标签;再次,对于每一个新生成的训练集,将训练集的多个标签通过标签幂集法转换为单个标签,将新生成的训练集转化为一个单标签多类数据集,并行地为这些数据集训练一个基分类器;然后,使用训练好的基分类器形成预测模型对测试集进行预测,将得到的单标签多类预测结果转化为多标签结果;最后,将所有预测结果进行汇总投票,得到测试集最终的多标签预测结果,完成文本分类。

【技术特征摘要】
1.一种基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,包括以下步骤:首先,从HDFS上获取来自互联网的大规模文本数据集和配置信息文件,所述大规模文本数据集包括训练数据集和预测数据集,通过SparkAPI提供的textFile方法将训练数据集、预测数据集、配置信息文件转换成Spark平台的分布式数据集RDD,完成初始化操作;其次,并行地随机生成规定数目的标签子集,由原始训练集为每一个标签子集生成一个新的训练集,该训练集特征为原始训练集的全部特征,新训练集中的标签仅保留对应标签子集中包含的标签;再次,对于每一个新生成的训练集,将训练集的多个标签通过标签幂集法转换为单个标签,将新生成的训练集转化为一个单标签多类数据集,并行地为这些数据集训练一个基分类器;然后,使用训练好的基分类器形成预测模型对测试集进行预测,将得到的单标签多类预测结果转化为多标签结果;最后,将所有预测结果进行汇总投票,得到测试集最终的多标签预测结果,完成文本分类。2.根据权利要求1所述的基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,所述转换成Spark平台的分布式数据集RDD的步骤包括:创建一个SparkContext对象,然后用它的textFile函数创建分布式数据集RDD,一旦创建完成,这个分布式数据集就可以被并行操作,算法最开始还需输入数据集的标签个数L、标签子集标签数n和和要生成的模型数m。3.根据权利要求2所述的基于Spark的并行化随机标签子集多标签文本分类方法,其特征在于,所述并行地随机生成规定数目的标签子集,由原始训练集为每一个标签子集生成一个新的训练集,包括步骤:(1)通过SparkContext对象的parallelize函数创建一个RDD,该RDD分区数为m,每个分区包含标签全集,通过RDD的map转化操作对每个分区的标签全集随机抽样,将标签全集转换为一个包含n个标签的随机标签子集,得到RDD1;(2)通过collect行动操作将训练集RDD变为一个本地集合,对RDD1进行map操作,使该RDD的每个分区包含一个随机标签子集和训练集全集的二元组,得到RDD2;(3)通过map操作对RDD2每个分区的训练集的标签进行过滤,只留下与之对应的标签子集中包含的标签,得到RDD3。4....

【专利技术属性】
技术研发人员:王进王鸿夏翠萍范磊欧阳卫华陈乔松雷大江李智星胡峰邓欣
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:重庆,50

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1