CN104268260A - 一种流数据的分类方法及其装置和*** - Google Patents
一种流数据的分类方法及其装置和*** Download PDFInfo
- Publication number
- CN104268260A CN104268260A CN201410530955.8A CN201410530955A CN104268260A CN 104268260 A CN104268260 A CN 104268260A CN 201410530955 A CN201410530955 A CN 201410530955A CN 104268260 A CN104268260 A CN 104268260A
- Authority
- CN
- China
- Prior art keywords
- data
- statistics
- processor module
- flow data
- content event
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种流数据的分类方法及其装置和***,所述流数据分类***包括数据源处理器模块、流数据分类装置及评价处理器模块,数据源处理器模块接收外部数据流并将数据流实时地发送到流数据分类装置中进行分类判定,评价处理器模块用于对分类判定结果进行在线评价以得到的分类判定结果正确率并予以输出;另外,基于流数据分类的思想,还提供了一种流数据分类方法。本发明采用数据的水平化分割方法,实现了数据的横向扩展,数据的水平扩展进一步实现了相关组建的分布式快速处理。
Description
技术领域
本发明涉及一种大数据处理领域,主要是指用于对大数据进行预先分类处理,以供后续的实时计算,更加具体地来说,是涉及一种流数据的分类方法及其装置和***。
背景技术
云计算、物联网、移动互连和社交媒体等新兴信息技术和应用模式的快速发展,促使全球数据量急剧增加,推动人类社会迈入大数据时代,数据的量级、产生速率、复杂性和价值获取的实时性等要求,对大数据处理也提出了新的更高要求,以Hadoop为代表的批处理已经无法满足时代发展的浪潮。
在当下这个大数据时代,据使用场景的不同,大数据处理已经逐渐的发展向两个极端:批处理和流处理。其中,Hadoop就是批处理的代表,Hadoop是一个分布式***基础架构,其实现了一个分布式文件***(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(highthroughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。Hadoop的框架最核心的设计就是:HDFS和MapReduce,HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。而流处理即是通过数据流计算***来实现,其中,SAMOA、Storm(是开源出来的一个分布式的实时计算***)和S4(Simple ScalableStreaming System的简称,其是一个分布式流处理引擎)都是当前比较典型的数据流计算***。
其中,Storm是一个分布式的、容错的实时流计算***,可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm可以很方便的对无边界的数据流进行实时处理。Storm保证每个消息都会得到处理,而且处理速度很快,即使在一个小集群中,每秒都可以处理数以百万计的消息。Storm可以用于实时分析(Realtime Analytics)、在线机器学习(Online Machine Learning)、连续计算(ContinuousComputation)、分布式远程调用(DRPC)和ETL等。
SAMOA作为一个新兴的流数据处理引擎受到了业界的广泛重视,因为SAMOA不仅是一个平台而且也是一个流数据的机器学***台MOA(MassiveOnline Analysis)等。不仅如此,SAMOA允许开发人员根据问题的需要集成新的流处理引擎或者其它流数据机器学习组件于***中。这些功能使得使用SAMOA开发流数据机器学习算法不仅方便,而且开发的分布式流数据机器学习算法,可以根据实际需要运行在多种流处理引擎上而无需任何更改。
分类是机器学习中的一个重要研究课题。它的目标是构造一个分类器,对未知类标记的属性集指定最适合的类标签。但是流数据的机器学习不同于传统的机器学习,流数据机器学习在传统机器学习的基础上结合流数据的特性又提出了新的基本要求,例如:一次处理一条数据而且只处理一次;使用有限的内存;有限的时间内完成数据处理;随时可以进行预测等等。因此在流数据机器学习设计的时候也需要将这些基本要求考虑进去。
总之,在一般的基于Hadoop构建的云服务和应用中,快速实时与大数据量往往不可兼得。如何更好更快实时地处理大量流数据,就成为云计算服务和应用必须解决的问题之一。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种流数据的分类方法及其装置和***,用于解决现有技术Hadoop无法处理实时数据的问题。
为实现上述目的及其他相关目的,本发明提供以下技术方案:
一种流数据分类装置,包括:分布处理器模块,用于接收包括内容事件的流数据,并将所述流数据分别标记为测试数据和训练数据,及将所述测试数据和训练数据依次予以随机均衡地分发出去;属性统计处理器模块,用于将接收所述训练数据,并对所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;聚合处理器模块,用于接收所述属性统计信息和所述测试数据,根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出。
优选地,在上述流数据分类装置中,所述测试数据和所述训练数据为同一流数据。
优选地,在上述流数据分类装置中,所述属性统计处理器模块包括:多个本地机器学习模块,分别用于对应接收所述训练数据,并对所接收到的所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息予以输出;全局机器学习模块,用于接收所述属性统计信息,并将予以实时地输出。
优选地,在上述流数据分类装置中,包括一个或者至少多个所述聚合处理器模块,且每个所述聚合处理器模块彼此独立。
作为上述流数据分类装置及其优选方案的进一步优化,所述属性统计信息包括:所述训练数据中每个内容事件的属性值、及其类标记和权重。
另外,本发明还提供了一种流数据分类***,包括:数据源处理器模块,用于接收外部数据流,且将所述数据流包装成包括多个内容事件的流数据,并予以实时输出;分布处理器模块,用于接收包括多个内容事件的所述流数据,并将所述流数据分别标记为测试数据和训练数据,及将所述测试数据和训练数据依次予以随机均衡地分发出去;属性统计处理器模块,用于接收所述训练数据,并对所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;聚合处理器模块,用于接收所述属性统计信息和所述测试数据,根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出。
优选地,在上述流数据分类***中,所述流数据分类***还包括:评价处理器模块,用于接收所述分类判定结果,并利用时间窗的方法对所述分类判定结果进行实时的评价和判断,以得到所述分类判定结果的正确率并予以输出。
最后,本发明还提供了一种流数据分类方法,包括:接收外部数据流,且将所述数据流包装成包括多个内容事件的流数据,并予以实时输出;将所述流数据分别标记为测试数据和训练数据,并将所述测试数据和训练数据依次予以随机均衡地分发出去;对所述训练数据中每个内容事件的属性信息进行统计,以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出。
优选地,在上述流数据分类方法中,所述流数据分类方法还包括:利用时间窗的方法对所述分类判定结果进行实时的评价和判断,以得到所述分类判定结果的正确率并予以输出。
优选地,在上述流数据分类方法中,利用贝叶斯公式计算得到所述测试数据的后验概率,并假设所述每个所述内容事件的属性值对给定类的影响独立于其它属性的值。
综上所述,本发明具有以下有益效果:
第一,本发明提出的一种流数据的分类方法及其装置和***与现有的技术相比具有可以在线处理高速流数据的特性和先测试再训练的特点。Storm和SAMOA是流数据处理架构,数据水平扩展的加入可以使得模型适用于高速数据的处理。虽然Prequential评价本身提供了先测试再训练的功能,但是在流数据分类***中,通过在分布处理器模块中令测试数据流和训练数据流都为源数据流,只不过先处理测试数据流,而后处理训练数据流,而且训练数据流要经过属性统计处理器模块后转化为属性流进入聚合处理器模块,由此而实现了先测试在训练的架构。
第二,本发明与经典的流数据处理平台MOA的朴素贝叶斯分类方法相比具有分布式的特性,分布式首先体现在数据的底层处理平台Storm是分布式处理架构,另外,体现在该模型采用的SAMOA架构是分布式的,而且,利用数据水平扩展实现了相关组建的分布式快速处理。
第三,本发明采用了数据的水平化分割方法,实现了数据的横向扩展,数据的水平扩展体现在属性统计处理器模块和聚合处理器模块中,用户可以根据任务问题的需要进行相关处理器模块的扩展来实现高速流数据的分类。
附图说明
图1显示为Storm的是***架构原理图。
图2为Storm的拓扑结构示意图。
图3为SAMOA的框架结构示意图。
图4为SAMOA的拓扑结构示意图。
图5为本发明一种流数据分类装置的原理图。
图6为聚合处理器模块中数据水平并行处理的原理图。
图7为本发明一种流数据分类***的原理示意图。
图8为本发明一种流数据分类方法的流程图。
附图标号说明
S10~S90方法步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
本发明以朴素贝叶斯方法为基础,利用Storm和SAMOA平台构建了一个分布式水平并行朴素贝叶斯流数据分类模型。该模型不同于传统的朴素贝叶斯分类方法,传统的分类算法,需要将数据集切分为训练集和测试集,而且训练集的数据一般不参与模型的性能测试。分布式水平并行朴素贝叶斯分类模型采用了流数据处理中典型的先测试再训练的方法来进行数据的测试和训练。该方法也不同于典型的流数据处理平台MOA中的朴素贝叶斯分类方法,因为MOA是一个非分布式的流数据处理平台,MOA中的朴素贝叶斯分类器仅适用于非分布式的流数据分类。分布式水平朴素贝叶斯流数据分类模型采用数据水平并行化方法来进行数据的并行处理,水平并行化就是将大的数据集等量地分割到对应的数据子集中,并交由***的相应的子处理单元进行数据的处理。在本文提出流数据分类模型中,采用了SAMOA中的Prequential评价任务的数据源处理模块进行外部流数据的接收和发射,使用分类评价模块对分布式朴素贝叶斯分类模型的输出结果进行实时的评价。使用Storm作为分布式水平并行朴素贝叶斯模型的底层处理平台。实验结果表明,基于Storm和SAMOA的水平朴素贝叶斯流数据分类模型不仅满足了流数据处理的基本要求,而且分类效果几乎接近传统的朴素贝叶斯方法和经典的非分布式流数据处理平台MOA中朴素贝叶斯分类方法的效果。
Storm是一个分布式的、容错的实时流计算***,可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它的处理速度很快,在一个小集群中,每秒可以处理数以百万计的消息,而且可以使用任意编程语言来开发。
Storm的集群表面上看和Hadoop的集群非常相似。但是在Hadoop上运行的是MapReduce的Job,而在Storm上运行的是Topology。它们根本的区别就是,一个MapReduce Job最终会结束,而一个Topology永远不会结束(除非显式的终止)。Storm作为典型的流处理引擎,它的应用场景有实时分析、在线机器学习、连续计算、分布式RPC、分布式ETL等。
Storm采用的是主从***架构,如图1所示。在Storm的集群里面有两种节点:即控制节点(master node)和工作节点(worker node)。其中,在控制节点上面运行一个后台程序Nimbus,它的作用类似Hadoop里面的JobTracker。Nimbus负责全局的资源分配、任务调度、状态监控和故障检测等;而每一个工作节点上面运行一个叫做Supervisor的节点,Supervisor负责监听分配给它的那台机器的工作,根据需要启动或者关闭工作进程。每一个工作进程执行一个Topology的一个子集;一个运行的Topology由运行在很多机器上的很多工作进程组成。Nimbus和Supervisor都能快速失败,因为它们是无状态的,***的状态信息保存在Zookeeper或者磁盘设备上,这样一来它们就变得十分健壮,两者的协调工作是由Zookeeper来完成的,ZooKeeper用于管理集群中的不同组件。
Topology是Storm的逻辑单元,所有组件的排列(Spouts和Bolts)及它们的连接被称为Topology。Storm中一个实时应用的计算任务打包为Topology后发布,Topology一旦提交永远运行,除非显式地去终止。一个Topology是由一系列Spout和Bolt构成的有向无环图,通过数据流(stream)实现Spout和Bolt之间的关联,如图2所示。其中,Spout负责从外部数据源不间断地读取流数据,并以Tuple元组的形式发送给相应的Bolt,Bolt负责对接收到的数据流进行计算,实现过滤、聚合、查询等具体功能,可以级联,也可以向外发送数据流。
SAMOA(Scalable Advanced Massive Online Analysis)是由雅虎开源的流数据在线机器学习的框架,和其它绝大多数大数据处理框架一样,SAMOA也是用Java编写的。SAMOA使用了可插拔的体系架构,允许使用多种分布式流处理引擎,例如Storm和S4等。SAMOA类似于运行在Hadoop上的批处理机器学习工具Mahout,只不过SAMOA用于在线的流式机器学习。
SAMOA包含常用流处理引擎的抽象,允许开发人员方便地开发流处理和相关机器学习的应用,而无需关心具体的流处理引擎的底层逻辑细节。不仅如此,SAMOA允许开发人员根据问题的需要集成新的流处理引擎或者其它流数据机器学习组件在***中。这些功能使得使用SAMOA开发的分布式流数据机器学习算法,可以根据实际需要可以运行在多种流处理引擎上。
另外,见图3,算法模块包含了已经集成在SAMOA中的分类和聚类算法,API部分用于在SAMOA框架下开发新的算法和模型。机器学习接口模块集成了MOA(Massive OnlineAnalysis)并且允许开发人员将其它机器学习***集成到SAMOA框架中。API模块和机器学习接口模块可以极大地提高开发人员的开发速度。流数据引擎接口模块允许开发者集成新的流数据引擎进入SAMOA框架。为了集成新的流数据引擎,开发者必须使用SAMOA流数据引擎模块。当前,在SAMOA中已经集成了SAMOA-S4,SAMOA-Storm和SAMOA-Samza等。
SAMOA的基本拓扑组件有:处理器、流、内容事件和任务。在SAMOA中,处理器是最基本的逻辑组件,所有的逻辑处理都在处理器中完成,处理器通常都包装在处理器模块PI(Processing Item)中,EPI是负责数据接收的PI。SAMOA拓扑结构如图4所示,开发者可以通过继承处理器的方法实现自己的特定处理单元。SAMOA把信息或者事件定义为内容事件,顾名思义,就是包含内容的事件,内容事件通过处理器包装在流中,然后通过流传递给其它的处理器进行后续的处理。流是连接处理器的组件,流可以由产生它的处理器连接到多个处理器。任务类似于Hadoop中的工作。任务是***执行的实体,拓扑必须定义在任务中。
本发明以朴素贝叶斯方法为基础,利用Storm和SAMOA平台来实现对流数据进行分布式水平并行的分类。本发明不同于传统的朴素贝叶斯分类方法,传统的分类算法,需要将数据集切分为训练集和测试集,而且训练集的数据一般不参与分类方法的性能测试。而本发明则采用了流数据处理中典型的先测试再训练的方法来进行数据的测试和训练;同时,本发明也不同于典型的流数据处理平台MOA中的朴素贝叶斯分类方法,因为MOA是一个非分布式的流数据处理平台,MOA中的朴素贝叶斯分类器仅适用于非分布式的流数据分类,而本发明则是通过Storm流处理引擎来实现流数据的分布式处理分类;另外,本发明还采用数据水平并行化方法来进行数据的并行处理,水平并行化就是将大的数据集(也即流数据)等量地分割到对应的数据子集中,并交由***的相应的子处理单元进行数据的处理。经过实验结果表明,本发明不仅满足了流数据处理的基本要求,而且分类效果也接近传统的朴素贝叶斯方法和经典的非分布式流数据处理平台MOA中朴素贝叶斯分类方法的效果(因为,在目前技术大背景下,流数据机器学习的效果只能无限接近传统机器学习方法,而无法等价齐观)。
实施例一
请参见图5,示出了本发明一种流数据分类装置的原理图,从示图来看,所述流数据分类装置包括:
分布处理器模块,用于接收包括内容事件的流数据,并将所述流数据分别标记为测试数据和训练数据,及将所述测试数据和训练数据依次予以随机均衡地分发出去;
属性统计处理器模块,用于将接收所述训练数据,并对所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;
聚合处理器模块,用于接收所述属性统计信息和所述测试数据,根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定并予以输出。
具体地,所述分布处理器模块用于接收数据流,并且将训练数据随机分发到多个属性统计处理器模块中,同时还将测试数据随机分发到多个聚合处理器模块,以进行实时的数据分类预测。其中,分布处理器模块将以随机的方式将数据流发送出去,即将测试数据随机均衡的发送到N个独立的聚合处理器模块中,以及将训练数据随机均衡的发送到N个独立的属性统计处理器模块中。另外,所述数据流既是训练数据也是测试数据,即训练数据和测试数据属于同一数据,只不过测试数据先进入***,训练数据后进入***。需要理解的是,属性统计处理器模块和聚合处理器模块的数量是根据用户数据处理需要来进行设定,且多个所述属性统计处理器模块和聚合处理器模块是彼此独立工作的。
具体地,所述属性统计处理器模块用于接收来自分布处理器模块的训练数据流,属性统计处理器模块对数据的所有属性信息进行统计,主要是利用MOA(Massive Online Analysis)的Attribute Observer进行属性信息的统计,AttributeClassObserver是MOA中用获得属性信息统计和分布的组件,统计信息被用来计算先验概率,例如,使用NominalAttributeClassOberver来进行标称属性的统计,使用GaussianNumericAttributeClassObserver来进行数值型属性的统计。统计信息包括每一条训练数据的每一个属性的属性值、类标记及权重。并且,根据获得的属性统计信息,按照***的设计要求将属性统计信息实时地更新到聚合处理器模块。需要注意的是,属性统计处理器模块会把每一条数据发送给所有的后续链接组件(例如聚合处理器模块),而不是随机发给其中一个,即属性统计处理器模块会将所述属性统计信息流数据发送到N个聚合处理器模块中,而非其中一个。这样的目的是为了保证每个聚合处理器模块里面的统计信息是一致的,否则无法保证预测结果和合理性和一致性,或者说,如果不采用这种方式而是随机(Shuffle)地发送方式的话,则每个聚合处理器模块里面的信息都是不完整的。
进一步地,所述用户可以根据问题需要水平扩展N个聚合处理器模块,每个聚合处理器模块相互独立工作,且每个聚合处理器模块的处理模式可以参见图6,每个聚合处理器模块包括:多个本地机器学习模块,分别用于对应接收所述训练数据,并对所接收到的所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息予以输出;全局机器学习模块,用于接收所述属性统计信息,并将予以实时地输出。
具体地,聚合处理器模块接收来自属性统计处理器模块的属性统计信息和来自分布处理器模块的测试数据流,并且将最终分类的结果输出或者对分类的结果进行实时的评价。聚合处理器模块根据从属性统计处理器模块获得的属性统计信息计算属性在类条件下的后验概率(P(xi/Ci))和先验概率(P(Ci))。当有测试数据流需要被实时分类判定的时候就可以根据获得的属性信息计算后验概率(即P(Ci|X)),然后选取最大的后验概率作为对测试数据的分类判定输出到***的输出模块或者对分类结果的准确率进行实时的统计输出。
实施例二
进一步地,请参见图7,本发明还提供了一种流数据分类***,从示图来看,所述流数据分类***包括数据源处理器模块、流数据分类装置及评价处理器模块,其中,所述数据源处理器模块接收外部数据流并将数据流实时地发送到流数据分类装置中进行分类判定,所述评价处理器模块用于对所述分类判定结果进行在线评价以得到的所述分类判定结果正确率并予以输出。具体地,所述流数据分类装置与上述实施例一中一样,故所述流数据分类***具体包括:
数据源处理器模块,用于接收外部数据流,且将所述数据流包装成包括多个内容事件的流数据,并予以实时输出;
分布处理器模块,用于接收包括多个内容事件的所述流数据,并将所述流数据分别标记为测试数据和训练数据,及将所述测试数据和训练数据依次予以随机均衡地分发出去;
属性统计处理器模块,用于接收所述训练数据,并对所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;
聚合处理器模块,用于接收所述属性统计信息和所述测试数据,根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出;
评价处理器模块,用于接收所述分类判定结果,并利用时间窗的方法对所述分类判定结果进行实时的评价和判断,以得到所述分类判定结果的正确率并予以输出。
进一步地,应当理解,上述流数据分类***也可不用评价处理器模块对分类判定结果进行评价,而直接予以输出。在SAMOA中,评价处理器模块的评价任务就是一个先测试再训练的任务。
具体地,所述分布处理器模块用于接收数据流,并且将训练数据随机分发到多个属性统计处理器模块中,同时还将测试数据随机分发到多个聚合处理器模块,以进行实时的数据分类预测。其中,分布处理器模块将以随机的方式将数据流发送出去,即将测试数据随机均衡的发送到N个独立的聚合处理器模块中,以及将训练数据随机均衡的发送到N个独立的属性统计处理器模块中。另外,所述数据流既是训练数据也是测试数据,即训练数据和测试数据属于同一数据,只不过测试数据先进入***,训练数据后进入***。需要理解的是,属性统计处理器模块和聚合处理器模块的数量是根据用户数据处理需要来进行设定,且多个所述属性统计处理器模块和聚合处理器模块是彼此独立工作的。
具体地,所述属性统计处理器模块用于接收来自分布处理器模块的训练数据流,属性统计处理器模块对数据的所有属性信息进行统计,主要是利用MOA(Massive Online Analysis)的Attribute Observer进行属性信息的统计,AttributeClassObserver是MOA中用获得属性信息统计和分布的组件,统计信息被用来计算先验概率,例如,使用NominalAttributeClassOberver来进行标称属性的统计,使用GaussianNumericAttributeClassObserver来进行数值型属性的统计。统计信息包括每个属性的属性值、类标记和权重。并且,根据获得的属性统计信息,按照***的设计要求将属性统计信息实时地更新到聚合处理器模块。需要注意的是,属性统计处理器模块会把每一条数据发送给所有的后续链接组件(例如聚合处理器模块),而不是随机发给其中一个,即属性统计处理器模块会将所述属性统计信息流数据发送到N个聚合处理器模块中,而非其中一个。
进一步地,所述用户可以根据问题需要水平扩展N个聚合处理器模块,每个聚合处理器模块相互独立工作,每个聚合处理器模块包括:多个本地机器学习模块,分别用于对应接收所述训练数据,并对所接收到的所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息予以输出;全局机器学习模块,用于接收所述属性统计信息,并将予以实时地输出。
具体地,聚合处理器模块接收来自属性统计处理器模块的属性统计信息和来自分布处理器模块的测试数据流,并且将最终分类的结果输出或者对分类的结果进行实时的评价。聚合处理器模块根据从属性统计处理器模块获得的属性统计信息计算P(xi/Ci)和P(Ci)。当有测试数据流需要被实时分类判定的时候就可以根据获得的属性信息计算P(Ci|X)(即后验概率),然后选取最大的后验概率作为对测试数据的分类判定输出到***的输出模块或者对分类结果的准确率进行实时的统计输出。
具体地,评价处理器模块接收来自聚合处理器模块的分类结果输出数据流,对分类结果输出数据流利用时间窗的方法进行实时的评价和判断并给出分类的正确率。其中,滑动窗口(Sliding Window Model)是一种流数据处理方法。滑动窗口是指该窗口的起始和结束时间戳都可以变化,新的数据进入滑动窗口,而旧的数据则不断被删除。由于滑动窗口是现有的技术,这里就不再赘述。
另外,在上述实施例二中,应当理解属性统计处理器模块和聚合处理器模块的个数可以根据具体问题的需要进行并行化设定,根据并行化设定的情况,进行相应的水平数据分割。
实施例三
本发明另外还提供了一种流数据分类方法,请参考图8,示出了所述流数据分类方法的流程图,从图示来看,所述流数据分类方法包括:
步骤S10,接收外部数据流,且将所述数据流包装成包括多个内容事件的流数据,并予以实时输出;
步骤S30,将所述流数据分别标记为测试数据和训练数据,并将所述测试数据和训练数据依次予以随机均衡地分发出去;
步骤S50,对所述训练数据中每个内容事件的属性信息进行统计,以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;
步骤S70,根据所述属性统计信息计算得到所述训练数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出;
步骤S90,利用时间窗的方法对所述分类判定结果进行实时的评价和判断,以得到所述分类判定结果的正确率并予以输出。
进步地,应当理解,上述步骤S90的目的在于对对所述分类判定结果进行实时的评价和判断,在所述流数据分类方法也可以省略该步骤,即步骤S90可以作为优选方案来予以实施。
具体地,在步骤S70中,是利用贝叶斯公式计算得到所述训练数据的后验概率,并假设所述每个所述内容事件的属性值对给定类的影响独立于其它属性的值。
更进一步地,所述测试数据和所述训练数据为同一流数据。
综合上述所有实施例来看,本发明通过以Storm作为底层的流处理引擎,基于SAMOA提供的在线流数据机器学***分割和模型设计。将以往仅仅用在批处理或者非分布式流处理***上的朴素贝叶斯方法应用到了基于Storm和SAMOA的分布式流处理平台中。并利用SAMOA API中的Prequential评价任务和模型结构设计实现了不同于传统机器学***台MOA中朴素贝叶斯分类方法的效果。其重要有以下优点:
第一,本发明提出的一种流数据的分类方法及其装置和***与现有的技术相比具有可以在线处理高速流数据的特性和先测试再训练的特点。Storm和SAMOA是流数据处理架构,数据水平扩展的加入可以使得模型适用于高速数据的处理。虽然Prequential评价本身提供了先测试再训练的功能,但是在流数据分类***中,通过在分布处理器模块中令测试数据流和训练数据流都为源数据流,只不过先处理测试数据流,而后处理训练数据流,而且训练数据流要经过属性统计处理器模块后转化为属性流进入聚合处理器模块,由此而实现了先测试在训练的架构。
第二,本发明与经典的流数据处理平台MOA的朴素贝叶斯分类方法相比具有分布式的特性,分布式首先体现在数据的底层处理平台Storm是分布式处理架构,另外,体现在该模型采用的SAMOA架构是分布式的,而且,利用数据水平扩展实现了相关组建的分布式快速处理。
第三,本发明采用了数据的水平化分割方法,实现了数据的横向扩展,数据的水平扩展体现在属性统计处理器模块和聚合处理器模块中,用户可以根据任务问题的需要进行相关处理器模块的扩展来实现高速流数据的分类。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种流数据分类装置,其特征在于,包括:
分布处理器模块,用于接收包括内容事件的流数据,并将所述流数据分别标记为测试数据和训练数据,及将所述测试数据和训练数据依次予以随机均衡地分发出去;
属性统计处理器模块,用于将接收所述训练数据,并对所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;
聚合处理器模块,用于接收所述属性统计信息和所述测试数据,根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出。
2.根据权利要求1所述的流数据分类装置,其特征在于,所述测试数据和所述训练数据为同一流数据。
3.根据权利要求1所述的流数据分类装置,其特征在于,所述属性统计处理器模块包括:
多个本地机器学习模块,分别用于对应接收所述训练数据,并对所接收到的所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息予以输出;
全局机器学习模块,用于接收所述属性统计信息,并将予以实时地输出。
4.根据权利要求1所述的流数据分类装置,其特征在于,包括一个或者至少多个所述聚合处理器模块,且每个所述聚合处理器模块彼此独立。
5.根据权利要求1-4任一项所述的流数据分类装置,其特征在于,所述属性统计信息包括:所述训练数据中每个内容事件的属性值、及其类标记和权重。
6.一种流数据分类***,其特征在于,包括:
数据源处理器模块,用于接收外部数据流,且将所述数据流包装成包括多个内容事件的流数据,并予以实时输出;
分布处理器模块,用于接收包括多个内容事件的所述流数据,并将所述流数据分别标记为测试数据和训练数据,及将所述测试数据和训练数据依次予以随机均衡地分发出去;
属性统计处理器模块,用于接收所述训练数据,并对所述训练数据中每个内容事件的属性信息进行统计以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;
聚合处理器模块,用于接收所述属性统计信息和所述测试数据,根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出。
7.根据权利要求6所述的流数据分类***,其特征在于,所述流数据分类***还包括:
评价处理器模块,用于接收所述分类判定结果,并利用时间窗的方法对所述分类判定结果进行实时的评价和判断,以得到所述分类判定结果的正确率并予以输出。
8.一种流数据分类方法,其特征在于,包括:
接收外部数据流,且将所述数据流包装成包括多个内容事件的流数据,并予以实时输出;
将所述流数据分别标记为测试数据和训练数据,并将所述测试数据和训练数据依次予以随机均衡地分发出去;
对所述训练数据中每个内容事件的属性信息进行统计,以得到所述每个所述内容事件的属性统计信息,并将所述属性统计信息实时地更新输出;
根据所述属性统计信息计算得到所述测试数据的后验概率,并选取其中最大的后验概率作为待实时分类判定的所述测试数据的分类判定结果并予以输出。
9.根据权利要求8所述的流数据分类方法,其特征在于,所述流数据分类方法还包括:
利用时间窗的方法对所述分类判定结果进行实时的评价和判断,以得到所述分类判定结果的正确率并予以输出。
10.根据权利要求8所述的流数据分类方法,其特征在于,利用贝叶斯公式计算得到所述测试数据的后验概率,并假设所述每个所述内容事件的属性值对给定类的影响独立于其它属性的值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410530955.8A CN104268260A (zh) | 2014-10-10 | 2014-10-10 | 一种流数据的分类方法及其装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410530955.8A CN104268260A (zh) | 2014-10-10 | 2014-10-10 | 一种流数据的分类方法及其装置和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104268260A true CN104268260A (zh) | 2015-01-07 |
Family
ID=52159781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410530955.8A Pending CN104268260A (zh) | 2014-10-10 | 2014-10-10 | 一种流数据的分类方法及其装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268260A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104882007A (zh) * | 2015-05-19 | 2015-09-02 | 中国科学院自动化研究所 | 基于流计算的交通信号控制***搭建方法及控制*** |
CN105824618A (zh) * | 2016-03-10 | 2016-08-03 | 浪潮软件集团有限公司 | 一种关于Storm使用的实时消息处理方法 |
CN106095921A (zh) * | 2016-06-07 | 2016-11-09 | 四川大学 | 面向海量数据流的实时并行分类方法 |
CN106354753A (zh) * | 2016-07-31 | 2017-01-25 | 信阳师范学院 | 数据流中基于模式发现的贝叶斯分类器 |
CN106921742A (zh) * | 2017-03-09 | 2017-07-04 | 郑州云海信息技术有限公司 | 一种K‑UX3.0操作***上搭建storm分布式应用集群的***及方法 |
CN106934497A (zh) * | 2017-03-08 | 2017-07-07 | 青岛卓迅电子科技有限公司 | 基于深度学习的智慧小区用电量实时预测方法及装置 |
CN107111787A (zh) * | 2014-09-08 | 2017-08-29 | 皮沃塔尔软件公司 | 流处理 |
CN108108488A (zh) * | 2018-01-12 | 2018-06-01 | 中译语通科技股份有限公司 | 基于流式计算的数据统计分析方法及***、计算机程序 |
CN108959350A (zh) * | 2018-04-25 | 2018-12-07 | 江苏鸣鹤云科技有限公司 | 基于大数据分布式计算的分类预测方法 |
CN110034966A (zh) * | 2018-01-11 | 2019-07-19 | 中国科学院声学研究所 | 一种基于机器学习的数据流分类方法及*** |
CN111079942A (zh) * | 2017-08-30 | 2020-04-28 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式***及其方法 |
CN111400351A (zh) * | 2020-03-18 | 2020-07-10 | 威讯柏睿数据科技(北京)有限公司 | 一种基于分布式并行架构对流数据进行查询的方法和设备 |
CN111796923A (zh) * | 2019-04-09 | 2020-10-20 | Oppo广东移动通信有限公司 | 数据处理方法、装置、存储介质及服务器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719147A (zh) * | 2009-11-23 | 2010-06-02 | 合肥兆尹信息科技有限责任公司 | 一种基于罗切斯特模型-朴素贝叶斯模型的数据分类*** |
CN102081655A (zh) * | 2011-01-11 | 2011-06-01 | 华北电力大学 | 基于贝叶斯分类算法的信息检索方法 |
CN103729428A (zh) * | 2013-12-25 | 2014-04-16 | 中国科学院计算技术研究所 | 一种大数据分类方法及*** |
-
2014
- 2014-10-10 CN CN201410530955.8A patent/CN104268260A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719147A (zh) * | 2009-11-23 | 2010-06-02 | 合肥兆尹信息科技有限责任公司 | 一种基于罗切斯特模型-朴素贝叶斯模型的数据分类*** |
CN102081655A (zh) * | 2011-01-11 | 2011-06-01 | 华北电力大学 | 基于贝叶斯分类算法的信息检索方法 |
CN103729428A (zh) * | 2013-12-25 | 2014-04-16 | 中国科学院计算技术研究所 | 一种大数据分类方法及*** |
Non-Patent Citations (1)
Title |
---|
G.D.LI,G.Y.WANG,X.R.ZHANG,W.H.DENG,F.ZHANG: "Forest Cover Types Classification Based on Online Machine Learning on Distributed Cloud Computing Platforms of Storm and SAMOA", 《ADVANCED MATERIALS RESEARCH 》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107111787A (zh) * | 2014-09-08 | 2017-08-29 | 皮沃塔尔软件公司 | 流处理 |
CN107111787B (zh) * | 2014-09-08 | 2020-09-04 | 皮沃塔尔软件公司 | 流处理 |
CN104882007A (zh) * | 2015-05-19 | 2015-09-02 | 中国科学院自动化研究所 | 基于流计算的交通信号控制***搭建方法及控制*** |
CN105824618A (zh) * | 2016-03-10 | 2016-08-03 | 浪潮软件集团有限公司 | 一种关于Storm使用的实时消息处理方法 |
CN106095921B (zh) * | 2016-06-07 | 2019-04-09 | 四川大学 | 面向海量数据流的实时并行分类方法 |
CN106095921A (zh) * | 2016-06-07 | 2016-11-09 | 四川大学 | 面向海量数据流的实时并行分类方法 |
CN106354753A (zh) * | 2016-07-31 | 2017-01-25 | 信阳师范学院 | 数据流中基于模式发现的贝叶斯分类器 |
CN106934497A (zh) * | 2017-03-08 | 2017-07-07 | 青岛卓迅电子科技有限公司 | 基于深度学习的智慧小区用电量实时预测方法及装置 |
CN106921742A (zh) * | 2017-03-09 | 2017-07-04 | 郑州云海信息技术有限公司 | 一种K‑UX3.0操作***上搭建storm分布式应用集群的***及方法 |
CN111079942A (zh) * | 2017-08-30 | 2020-04-28 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式***及其方法 |
CN111079942B (zh) * | 2017-08-30 | 2023-03-24 | 第四范式(北京)技术有限公司 | 执行机器学习的分布式***及其方法 |
CN110034966A (zh) * | 2018-01-11 | 2019-07-19 | 中国科学院声学研究所 | 一种基于机器学习的数据流分类方法及*** |
CN108108488A (zh) * | 2018-01-12 | 2018-06-01 | 中译语通科技股份有限公司 | 基于流式计算的数据统计分析方法及***、计算机程序 |
CN108959350A (zh) * | 2018-04-25 | 2018-12-07 | 江苏鸣鹤云科技有限公司 | 基于大数据分布式计算的分类预测方法 |
CN111796923A (zh) * | 2019-04-09 | 2020-10-20 | Oppo广东移动通信有限公司 | 数据处理方法、装置、存储介质及服务器 |
CN111400351A (zh) * | 2020-03-18 | 2020-07-10 | 威讯柏睿数据科技(北京)有限公司 | 一种基于分布式并行架构对流数据进行查询的方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268260A (zh) | 一种流数据的分类方法及其装置和*** | |
Mayer et al. | Predictable low-latency event detection with parallel complex event processing | |
US10685283B2 (en) | Demand classification based pipeline system for time-series data forecasting | |
Xu et al. | Stela: Enabling stream processing systems to scale-in and scale-out on-demand | |
US20200334293A1 (en) | Computation platform agnostic data classification workflows | |
US10459979B2 (en) | Graphically managing data classification workflows in a social networking system with directed graphs | |
Akbar et al. | Context-aware stream processing for distributed IoT applications | |
Ranjan | Modeling and simulation in performance optimization of big data processing frameworks | |
WO2017167686A1 (en) | A method and system for scaling resources, and a computer program product | |
Zygouras et al. | Insights on a scalable and dynamic traffic management system. | |
Matta | Simulation optimization with mathematical programming representation of discrete event systems | |
CN108768716A (zh) | 一种微服务路径选择方法及装置 | |
WO2015094269A1 (en) | Hybrid flows containing a continuous flow | |
Chen et al. | Semisupervised anomaly detection of multivariate time series based on a variational autoencoder | |
Wang et al. | Automating characterization deployment in distributed data stream management systems | |
CN107391365B (zh) | 一种面向软件缺陷预测的混合特征选择方法 | |
Lin et al. | A comprehensive survey on distributed training of graph neural networks | |
CN109063752B (zh) | 基于神经网络的多源高维多尺度实时数据流的分拣方法 | |
US20130247052A1 (en) | Simulating Stream Computing Systems | |
Mayer et al. | Meeting predictable buffer limits in the parallel execution of event processing operators | |
Fawzy et al. | An IoT-based resource utilization framework using data fusion for smart environments | |
Herabad | Communication-efficient semi-synchronous hierarchical federated learning with balanced training in heterogeneous IoT edge environments | |
Ye et al. | Hydrologic time series anomaly detection based on flink | |
Heinrich et al. | Zero-shot cost models for distributed stream processing | |
Yang | A SDN-based traffic estimation approach in the internet of vehicles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150107 |