【发明授权】一种基于位图数据结构的数据分析方法及装置_北京邮电大学_201710872848.7 

申请/专利权人:北京邮电大学

申请日:2017-09-25

发明/设计人:刘东岳;吴斌;王柏;卜尧;郭志红;杨祎;马艳;辜超;白德盟;林颖;秦佳峰

公开(公告)日:2020-06-23

代理机构:北京柏杉松知识产权代理事务所(普通合伙)

公开(公告)号:CN107622121B

代理人:马敬;项京

主分类号:G06F16/2458(20190101)

地址:100876 北京市海淀区西土城路10号

分类号:G06F16/2458(20190101)

优先权:

专利状态码:有效-授权

法律状态:2020.06.23#授权;2018.02.16#实质审查的生效;2018.01.23#公开

摘要:本发明实施例提供了一种基于位图数据结构的数据分析方法及装置,该方法包括:获得主节点分配的第一事务子集合;获得总数目及排序;根据排序确定每一目标项目的位图数据;统计每一目标项目的位图数据中第一数据与总数目之间的比例,根据统计的比例确定目标项目中的频繁1项集;将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至主节点和其他分布式子节点;接收统计项目和统计项目的位图数据;基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集;若目标项集为频繁项集,确定目标项集中各个项目之间的关联规则。这样,可以快速地得到关联规则以及项目之间的关联关系。

主权项:1.一种基于位图数据结构的数据分析方法,其特征在于,应用于分布式系统所包含分布式子节点中的一个分布式子节点,所述分布式系统包括:主节点和分布式子节点,所述方法包括:获得所述主节点分配的第一事务子集合,其中,所述第一事务子集合为:事务集合的子集合;获得所述事务集合中事务的总数目及所述事务集合中事务的排序;根据所述排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照所述排序与所述事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:所述第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:所述事务集合中包括该目标项目的事务;分别统计每一目标项目对应的位图数据中第一数据与所述总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,所述第一数据为:位图数据中项目的关联事务对应的比特位的取值;将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至所述主节点和其他分布式子节点;接收统计项目和所述统计项目的位图数据,其中,所述统计项目是其他分布式子节点基于所述主节点分配的第二事务子集合统计得到的,所述第一事务子集合与各个第二事务子集合的并集为所述事务集合;基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,所述目标项集中包含至少两个项目;若所述目标项集为频繁项集,确定所述目标项集中各个项目之间的关联规则;所述根据所述排序,确定每一目标项目对应的位图数据的步骤,包括:针对每一目标项目,基于所述第一事务子集合中包括该目标项目的事务、第二事务子集合中包括该目标项目的事务和预设的映射关系,将包括该目标项目的事务对应的比特位的取值设置为第一数据,将不包括该目标项目的事务对应的比特位的取值设置为第二数据,得到该目标项目的位图数据,其中,所述映射关系为:按照所述排序确定的、位图数据中比特位与所述事务集合中事务的对应关系。

全文数据:一种基于位图数据结构的数据分析方法及装置技术领域[0001]本发明涉及数据挖掘技术领域,特别是涉及一种基于位图数据结构的数据分析方法及装置。背景技术[0002]随着数据爆炸式地增长,人们越来越迫切地想要从大量已有数据中挖掘出有价值的信息,进而根据这些有价值的信息制定相应的决策。[0003]例如,对于大型零售商场而言,这些商场每年都会产生数以万计的交易记录,其中,每条交易记录对应有一个订单号,一个订单号对应有多个物品名。然而,在未经数据挖掘之前,人们无法得到在交易过程中各个物品之间的关联规则例如买咖啡的人中,60%的人同时还买了糕点)。而通过数据挖掘后,便可挖掘得到交易过程中各个物品之间的购买关系,即各个物品之间的关联规则,进而可以根据得到的关联规则为商场的营销决策提供支持。[0004]其中,在数据挖掘过程中,常常通过该大型零售商场中的一条交易记录得到一个事务,并将该大型零售商场中不同的物品记为不同的项目。具体地,针对每条交易记录而言,可以将该条交易记录对应的订单号作为对应事务的事务标识,并将该订单号对应的每一种物品名作为该事务的一个项目。这样,对于该大型零售商场一年的交易记录而言,可以得到由多个事务构成的事务集合,且每个事务中可以包含一个或多个项目。然后,利用频繁项集挖掘算法=ECLAT算法来挖掘出事务集合中的频繁项集,进而,再根据频繁项集计算出各个项目之间的关联规则。[0005]具体地,假设事务集合中存在10000个事务,利用ECLAT算法计算得到:该事务集合中项集{项目A,项目B}出现了100次,即项目A和项目B同时出现的次数为100次。从而,可以算出项集{项目A,项目B}出现的概率为0.01,即项集{项目A,项目B}的支持度为0.01。若0.01大于预设最小支持度,那么项集{项目A,项目B}即为频繁2项集,进而可以根据该频繁2项集{项目A,项目B}计算出项目A和项目B之间的关联关系。[0006]但是,发明人发现,在使用ECLAT算法计算频繁项集的过程中,需要利用项目B与每个包含项目A的事务中每个项目进行匹配,若匹配成功,则表明包含项目A的事务中也包含事务B,此时对项集{项目A,项目B}出现的次数增一。然后,利用项目A与每个包含项目B的事务中每个项目进行匹配,若匹配成功,则表明包含项目B的事务中也包含事务A此时对项集{项目A,项目B}出现的次数增一,这样,可以统计得到项集{项目A,项目B}出现的次数。但是,这种的匹配速度非常慢,从而使得获得关联规则的速度较慢。发明内容[0007]本发明实施例的目的在于提供一种基于位图数据结构的数据分析方法及装置,以快速地分析得到关联规则,从而快速获得项目之间的关联关系。[0008]第一方面,本发明实施例提供了一种基于位图数据结构的数据分析方法,应用于分布式系统所包含分布式子节点中的一个分布式子节点,该分布式系统包括:主节点和分布式子节点,该方法可以包括:[0009]获得主节点分配的第一事务子集合,其中,第一事务子集合为:事务集合的子集合;[0010]获得事务集合中事务的总数目及事务集合中事务的排序;[0011]根据排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照排序与事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:事务集合中包括该目标项目的事务;[0012]分别统计每一目标项目对应的位图数据中第一数据与总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,第一数据为:位图数据中项目的关联事务对应的比特位的取值;[0013]将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至主节点和其他分布式子节点;[0014]接收统计项目和统计项目的位图数据,其中,统计项目是其他分布式子节点基于主节点分配的第二事务子集合统计得到的,第一事务子集合与各个第二事务子集合的并集为事务集合;[0015]基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,目标项集中包含至少两个项目;[0016]若目标项集为频繁项集,确定目标项集中各个项目之间的关联规则。[0017]可选地,根据排序,确定每一目标项目对应的位图数据的步骤,可以包括:[0018]针对每一目标项目,基于第一事务子集合中包括该目标项目的事务、第二事务子集合中包括该目标项目的事务和预设的映射关系,将包括该目标项目的事务对应的比特位的取值设置为第一数据,将不包括该目标项目的事务对应的比特位的取值设置为第二数据,得到该目标项目的位图数据,其中,映射关系为:按照排序确定的、位图数据中比特位与事务集合中事务的对应关系。[0019]可选地,在本发明实施例中,第一数据为1,第二数据为0。[0020]可选地,在计算目标项集是否为频繁项集的步骤之前,该方法还可以包括:[0021]接收主节点发送的针对目标项集的统计指令。[0022]可选地,在根据排序,确定每一目标项目对应的位图数据的步骤之后,该方法还可以包括:[0023]将每一目标项目对应的位图数据压缩为压缩位图数据;[0024]将为频繁1项集的目标项目和为频繁1项集的该目标项目的位图数据,广播至主节点和其他分布式子节点的步骤,包括:[0025]将为频繁1项集的目标项目和为频繁1项集的目标项目的压缩位图数据,广播至主节点和其他分布式子节点。[0026]第二方面,本发明实施例提供了一种基于位图数据结构的数据分析装置,应用于分布式系统所包含分布式子节点中的一个分布式子节点,该分布式系统包括:主节点和分布式子节点,该装置可以包括:[0027]第一获得单元,用于获得主节点分配的第一事务子集合,其中,第一事务子集合为:事务集合的子集合;[0028]第二获得单元,用于获得事务集合中事务的总数目及事务集合中事务的排序;[0029]第一确定单元,用于根据排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照排序与事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:事务集合中包括该目标项目的事务;[0030]统计单元,用于分别统计每一目标项目对应的位图数据中第一数据与总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,第一数据为:位图数据中项目的关联事务对应的比特位的取值;[0031]广播单元,用于将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至主节点和其他分布式子节点;[0032]第一接收单元,用于接收统计项目和统计项目的位图数据,其中,统计项目是其他分布式子节点基于主节点分配的第二事务子集合统计得到的,第一事务子集合与各个第二事务子集合的并集为事务集合;[0033]计算单元,用于基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,目标项集中包含至少两个项目;[0034]第二确定单元,用于当目标项集为频繁项集时,确定目标项集中各个项目之间的关联规则。[0035]可选地,第一确定单元具体可以用于:[0036]针对每一目标项目,基于第一事务子集合中包括该目标项目的事务、第二事务子集合中包括该目标项目的事务和预设的映射关系,将包括该目标项目的事务对应的比特位的取值设置为第一数据,将不包括该目标项目的事务对应的比特位的取值设置为第二数据,得到该目标项目的位图数据,其中,映射关系为:按照排序确定的、位图数据中比特位与事务集合中事务的对应关系。[0037]可选地,在本发明实施例中,该装置还可以包括:[0038]第二接收单元,用于在基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集之前,接收主节点发送的针对目标项集的统计指令。[0039]可选地,在本发明实施例中,该装置还可以包括:[0040]压缩单元,用于在根据排序,确定每一目标项目对应的位图数据之后,将每一目标项目对应的位图数据压缩为压缩位图数据;[0041]广播单元具体可以用于:[0042]将为频繁1项集的目标项目和为频繁1项集的目标项目的压缩位图数据,广播至所述主节点和所述其他分布式子节点。[0043]可选地,在本发明实施例中,第一数据为1,第二数据为0。[0044]第三方面,本发明实施例还提供了一种分布式子节点,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;[0045]存储器,用于存放计算机程序;[0046]处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一项所述的基于位图数据结构的数据分析方法的方法步骤。[0047]在本发明实施例中,分布式系统中的一个分布式子节点可以接收由主节点分配的第一事务子集合。然后,获取事务集合中包含事务的总数目,以及该事务集合中各个事务的排序。之后,确定该第一事务集合中各个事务包含的项目,作为目标项目。并将一个目标项目与总数目个比特位对应,并按照得到的排序,将每个比特位对应该事务集合中的一个事务。其中,每个比特位唯一与一个事务对应,且每两个比特位对应的事务不相同。并且,将包含该目标项目的事务确定为该目标项目的关联事务,并将该关联事务对应的比特位的取值设置为第一数据,将不是关联事务对应的比特位的取值设置为第二数据,从而得到该目标项目对应的位图数据。这样,可以通过该位图数据中第一数据的数目和总数目的比值,快速地确定出包含该目标项目的事务在事务集合中所占的比例。进而可以根据该比例确定出该目标项集是否为频繁1项集,极大地提高了获取频繁1项集的速度。[0048]当确定该目标项目为频繁1项集后,该分布式子节点可以将该目标项目和该目标项目的位图数据,广播至主节点和其他分布式子节点。并且可以接收到其他分布式子节点广播的统计项目和统计项目的位图数据。然后可以基于该目标项目的位图数据和该统计项目的位图数据,快速确定包含至少两个项目的目标项集是否为频繁项集。如果目标项集为频繁项集,进而可以根据该频繁项集确定出该目标项集中各个项目的关联规则提高了获取关联规则的速度。附图说明[0049]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0050]图1为本发明实施例提供的一种基于位图数据结构的数据分析方法的流程图;[0051]图2为本发明实施例提供的基于位图数据结构的数据分析方法的性能与现有的数据分析方法的性能比对图;[0052]图3为本发明实施例提供的基于位图数据结构的数据分析方法在多种预设最小支持度下的性能的示意图;[0053]图4为本发明实施例提供的一种基于位图数据结构的数据分析装置的结构示意图;[0054]图5为本发明实施例提供的一种分布式节点的结构示意图。具体实施方式[0055]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0056]为了解决现有技术问题,本发明实施例提供了一种基于位图数据结构的数据分析方法及装置。[0057]下面首先对本发明实施例提供的基于位图数据结构的数据分析方法进行说明。[0058]本发明实施例提供的基于位图数据结构的数据分析方法,应用于分布式系统所包含分布式子节点中的任意一个分布式子节点。其中,该分布式系统包括:主节点和分布式子节点。[0059]为了清晰说明,下面以包含1个主节点和31个分布式子节点的分布式系统为例,对本发明实施例提供的基于位图数据结构的数据分析方法进行说明。其中,该主节点和分布式子节点可以为服务器,也可以为电脑和手机等用户终端,这都是合理的。[0060]参见图1,本发明实施例提供的基于位图数据结构的数据分析方法可以包括以下步骤:[0061]SlOl:获得主节点分配的第一事务子集合,其中,第一事务子集合为:事务集合的子集合;[0062]假设该分布式系统需要对大型零售商店的75000条交易记录,S卩75000个事务进行关联规则分析,那么,该75000个事务则构成事务集合。其中,可以将每条交易记录对应的订单号作为该条交易记录对应的事务的事务标识,将该订单号对应的每种物品作为该订单号对应事务的一个项目。[0063]并假设该分布式系统中的主节点为Z,分布式子节点为Fl、F2、……、F30和F31。那么,针对分布式子节点Fl而言,主节点Z可以将该事务集合中的一分部事务形成第一事务子集合,并将该第一事务子集合分配给该分布式子节点Fl,这样,分布式子节点Fl可以获得主节点Z分配的第一事务子集合。[0064]其中,主节点Z可以按照均分的原则给该分布式子节点Fl分配第一事务子集合,例如,将该75000个事务中的任意2419个事务作为第一事务子集合分配给该分布式子节点Fl。当然,也可以基于该分布式子节点Fl的计算能力,给该分布式子节点Fl分配第一事务子集合,例如,将该75000个事务中任意5000个事务作为第一事务子集合分配给该分布式子节点Fl,这都是合理的。[0065]S102:获得事务集合中事务的总数目及事务集合中事务的排序;[0066]S103:根据排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照排序与事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:事务集合中包括该目标项目的事务;[0067]该分布式子节点Fl在接收到该第一事务子集合后,该分布式子节点Fl可以确定该第一事务子集合中的事务包含有哪些目标项目,例如,当确定该第一事务子集合中包含事务1项目A、项目B、项目C和事务2项目A、项目D时,则可以确定该第一事务子集合中的事务包含有目标项目A、目标项目B、目标项目C和目标项目D。然后,确定每个目标项目对应的位图数据。[0068]下面以确定目标项目A的位图数据为例进行说明:[0069]该分布式子节点Fl可以从主节点Z获得事务集合中包含的事务的总数目,以及该事务集合中各个事务的排序。例如排序为:第1个事务的事务标识、第2个事务的事务标识、……、第75000个事务的事务标识。[0070]然后,确定总数目个比特位,即确定75000个比特位,并将该总数目个比特位依次排列。之后,按照获得的排序将一个事务与一个比特位唯一对应,且任意两个比特位对应的事务不相同。然后,确定事务集合中的每个事务是否包含该目标项目A,若某一事务包含该目标项目A,那么该事务即为该目标项目A的关联事务。此时,可以将该总数目个比特位中与该关联事务对应的比特位的取值设置为第一数据,例如可以设置为1。若一个事务中不包含该目标项目A,那么该事务不为该目标项目A的关联事务,此时可以将该总数目个比特位中与该事务对应的比特位的取值设置为第二数据,例如可以设置为0。这样,在将该总数目个比特位的取值都设定后,即可获得该目标项目A对应的位图数据,然后可以建立该目标项目A和该位图数据的对应关系。[0071]其中,分布式子节点Fl可以与该分布式系统中的其他分布式子节点进行通信,从而获知该事务集合中哪些事务为该目标项目A的关联事务。当然,各个分布式子节点也可以向主节点Z上报自身统计得到的各个目标项目的关联事务,然后该主节点对各个目标项目的关联事务进行汇总。从而,该分布式子节点Fl可以从主节点得到该目标项目A的所有关联事务的事务标识,这也是合理的。[0072]同理,该分布式子节点Fl可以确定目标项目B、目标项目C和目标项目D对应的位图数据,在此不做详述。[0073]另外,由于其他分布式子节点分配得到的事务中可能也包含有项目A,例如分布式子节点F2分配得到的事务10项目A、项目E中包含有项目A。因此,为了避免分布式子节点F2也将项目A作为目标项目,并确定目标项目A的位图数据,然后对目标项目A的位图数据进行重复计算的问题出现,主节点Z可以向各个分布式子节点分配位图数据确定指令,以指示各个分布式子节对不同项目的位图数据进行确定。例如,指示分布式子节点Fl确定项目A的位图数据,那么该分布式系统中的其他分布式子节点就不会再确定项目A的位图数据,避免了计算资源的浪费。[0074]S104:分别统计每一目标项目对应的位图数据中第一数据与总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,第一数据为:位图数据中项目的关联事务对应的比特位的取值;[0075]延续上述示例,在获得目标项目A的位图数据后,可以确定该位图数据中第一数据的数量,然后计算该数量与总数目的比值,得到第一数据和总数目之间的比例。然后,可以判断该比例是否大于预设最小支持度,若大于,则确定该目标项目A为频繁1项集。若小于等于,则确定该目标项目A不为频繁1项集。这样,极大的降低的计算频繁1项集的计算量,提高了运算效率。[0076]其中,本领域技术人员可以根据实际情况来设置该预设最小支持度。例如,可以将该预设最小支持度设置为〇.8,当然并不局限于此。[0077]S105:将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至主节点和其他分布式子节点;[0078]S106:接收统计项目和统计项目的位图数据,其中,统计项目是其他分布式子节点基于主节点分配的第二事务子集合统计得到的,第一事务子集合与各个第二事务子集合的并集为事务集合;[0079]假设该目标项目A为频繁1项集,那么,该分布式子节点Fl可以将该目标项目A和该目标项目A的位图数据广播其他分布式子节点。当然,为了降低存储位图数据的内存消耗和传输位图数据的传输消耗,该分布式子节点Fl也可以将该目标项目A的位图数据压缩为压缩位图数据,然后将该目标项目A和该目标项目A的压缩位图数据广播至主节点和其他分布式子节点,这也是合理的。[0080]当然,该分布式子节点Fl也会接收其他分布式设备计算得到统计项目和统计项目的位图数据。其中,该统计项目可以是其他分布式子节点基于主节点分配的第二事务子集合统计得到的频繁1项集。例如,分布式子节点F2接收到主节点分配的第二事务子集合,然后基于该第二事务子集合计算得到统计项目E为频繁1项集,然后将该统计项目E和统计项目E的位图数据进行广播,从而,该分布式子节点Fl能够接收到该统计项目E和该统计项目E的位图数据。当然,该统计项目也可以是其他分布式子节点未确定是否为频繁1项集的项目,这也是合理的。[0081]需要说明的是,分布式子节点F3至F31均可接收到主节点Z发送的第二事务子集合,但是为了避免重复计算,每个分布式子节点接收到的第二事务子集合中包含的事务互不相同。[0082]S107:基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,目标项集中包含至少两个项目;[0083]S108:若目标项集为频繁项集,确定目标项集中各个项目之间的关联规则。[0084]举例而言,分布式子节点Fl在接收到分布式子节点F2广播的统计项目E和统计项目E的位图数据之后,可以确定项集{项目A,项目E}是否为频繁2项集,即确定同时出现项目A和项目E的事务的数量与总数目的比值是否大于预设最小支持度,若大于,则确定项集{:项目A,项目E}为频繁2项集。[0085]其中,确定同时出现项目A和项目E的事务的数量的方式具体可以为:对项目ABP目标项目A的位图数据和项目E即统计项目E的位图数据进行比对,当同一次序的比特位例如两个位图数据的第10个比特位对应的取值都为第一数据例如都为1时,说明该第10个比特位对应的事务同时包含项目A和项目B。按照该种方式,确定出两个位图数据中,相同次序的比特位都为1的比特位数目,这样,即可获得同时出现项目A和项目E的事务的数量。由于该种计算方式计算量极小,因而能够快速地确定出同时出现项目A和项目E的事务的数量,进而快速地确定出项集{项目A,项目E}是否为频繁2项集。[0086]假设确定出项集{项目A,项目E}是否为频繁2项集,那么,可以利用同时出现项目A和项目E的事务的数量除以出现项目A的事务的数量,假设得到置信度70%。那么即可得到关联规则:买项目A的人中,70%的人还会买项目E。该关联规则仅为示例,生成的关联规则当然并不局限于此。[0087]综上,应用本发明实施例,提高了获取频繁项集的速度,进而能够快速的分析得到数据中的隐含的关联规则。其中,该频繁项集包括频繁1项集和频繁多项集。[0088]下面结合表一、表二、图2和图3对本发明实施例提供的基于位图数据结构的数据分析方法分析出关联规则的性能进行说明。[0089][0090]表一[0091]参见表一,发明人将本发明实施例提供的基于位图数据结构的数据分析方法记为RBM-Eclat算法,设定预设最小支持度为0.8,然后利用该RBM-Eclat算法对包含100万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为81秒。同样,发明人同样设定预设最小支持度为〇.8,并利用现有技术中的Eclat算法对该包含100万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为182秒。另外,发明人同样设定预设最小支持度为0.8,然后利用现有技术中的Apriori对该包含100万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为151秒。[0092]按照上述方式,发明人还利用上述三种算法分别对包含200万个事务的事务集合、包含400万个事务的事务集合、包含800万个事务的事务集合,以及包含1600万个事务的事务集合进行关联规则分析,得到如表1和图2所示结果。从表一和图2可以看出,相对于现有的关联规则分析方法,本发明实施例提供的基于位图数据结构的数据分析方法可以较快地分析出关联规则。[0093]另外,本发明实施例提供的基于位图数据结构的数据分析方法在不同预设最小支持度下的性能是不同的,具体可参见表二和图3。[0094][0095]表二[0096]参见表二和图3可知,当设定预设最小支持度为0.6时,利用本发明实施例提供的基于位图数据结构的数据分析方法,对包含50万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为222秒。当设定预设最小支持度为0.65时,同样对该包含50万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为113秒。当设定预设最小支持度为〇.7时,同样对该包含50万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为84秒,等等。在此不做说明。[0097]另外,当设定预设最小支持度为0.6时,利用本发明实施例提供的基于位图数据结构的数据分析方法,对包含100万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为486秒。当设定预设最小支持度为0.65时,同样对该包含100万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为182秒。当设定预设最小支持度为〇.7时,同样对该包含100万个事务的事务集合进行关联规则分析,分析得到所有关联规则的用时为126秒,等等。在此不做一一说明。[0098]由上可知,对同样的事务集合进行管理规则分析时,预设最小支持度的值设置得越小,本发明实施例提供的基于位图数据结构的数据分析方法的计算速度越快。[0099]相应于上述方法实施例,本发明实施例还提供了一种基于位图数据结构的数据分析装置,应用于分布式系统所包含分布式子节点中的一个分布式子节点,该分布式系统包括:主节点和分布式子节点,参见图4,该装置可以包括:[0100]第一获得单元401,用于获得主节点分配的第一事务子集合,其中,第一事务子集合为:事务集合的子集合;[0101]第二获得单元402,用于获得事务集合中事务的总数目及事务集合中事务的排序;[0102]第一确定单元403,用于根据排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照排序与事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:事务集合中包括该目标项目的事务;[0103]统计单元404,用于分别统计每一目标项目对应的位图数据中第一数据与总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,第一数据为:位图数据中项目的关联事务对应的比特位的取值;[0104]广播单元405,用于将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至主节点和其他分布式子节点;[0105]第一接收单元406,用于接收统计项目和统计项目的位图数据,其中,统计项目是其他分布式子节点基于主节点分配的第二事务子集合统计得到的,第一事务子集合与各个第二事务子集合的并集为事务集合;[0106]计算单元407,用于基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,目标项集中包含至少两个项目;[0107]第二确定单元408,用于当目标项集为频繁项集时,确定目标项集中各个项目之间的关联规则。[0108]在本发明实施例中,分布式系统中的一个分布式子节点可以接收由主节点分配的第一事务子集合。然后,获取事务集合中包含事务的总数目,以及该事务集合中各个事务的排序。之后,确定该第一事务集合中各个事务包含的项目,作为目标项目。并将一个目标项目与总数目个比特位对应,并按照得到的排序,将每个比特位对应该事务集合中的一个事务。其中,每个比特位唯一与一个事务对应,且每两个比特位对应的事务不相同。并且,将包含该目标项目的事务确定为该目标项目的关联事务,并将该关联事务对应的比特位的取值设置为第一数据,将不是关联事务对应的比特位的取值设置为第二数据,从而得到该目标项目对应的位图数据。这样,可以通过该位图数据中第一数据的数目和总数目的比值,快速地确定出包含该目标项目的事务在事务集合中所占的比例。进而可以根据该比例确定出该目标项集是否为频繁1项集,极大地提高了获取频繁1项集的速度。[0109]当确定该目标项目为频繁1项集后,该分布式子节点可以将该目标项目和该目标项目的位图数据,广播至主节点和其他分布式子节点。并且可以接收到其他分布式子节点广播的统计项目和统计项目的位图数据。然后可以基于该目标项目的位图数据和该统计项目的位图数据,快速确定包含至少两个项目的目标项集是否为频繁项集。如果目标项集为频繁项集,进而可以根据该频繁项集确定出该目标项集中各个项目的关联规则提高了获取关联规则的速度。[0110]可选地,第一确定单元403具体可以用于:[0111]针对每一目标项目,基于第一事务子集合中包括该目标项目的事务、第二事务子集合中包括该目标项目的事务和预设的映射关系,将包括该目标项目的事务对应的比特位的取值设置为第一数据,将不包括该目标项目的事务对应的比特位的取值设置为第二数据,得到该目标项目的位图数据,其中,映射关系为:按照排序确定的、位图数据中比特位与事务集合中事务的对应关系。[0112]可选地,在本发明实施例中,该装置还可以包括:[0113]第二接收单元,用于在基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集之前,接收主节点发送的针对目标项集的统计指令。[0114]可选地,在本发明实施例中,该装置还可以包括:[0115]压缩单元,用于在根据排序,确定每一目标项目对应的位图数据之后,将每一目标项目对应的位图数据压缩为压缩位图数据;[0116]广播单元405具体可以用于:[0117]将为频繁1项集的目标项目和为频繁1项集的目标项目的压缩位图数据,广播至主节点和其他分布式子节点。[0118]可选地,在本发明实施例中,第一数据为1,第二数据为0。[0119]相应于上述方法实施例,本发明实施例还提供了一种分布式子节点,参见图5,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信;[0120]存储器503,用于存放计算机程序;[0121]处理器501,用于执行存储器503上所存放的程序时,实现上述任一方法实施例提供的基于位图数据结构的数据分析方法的方法步骤。[0122]在本发明实施例中,分布式系统中的一个分布式子节点可以接收由主节点分配的第一事务子集合。然后,获取事务集合中包含事务的总数目,以及该事务集合中各个事务的排序。之后,确定该第一事务集合中各个事务包含的项目,作为目标项目。并将一个目标项目与总数目个比特位对应,并按照得到的排序,将每个比特位对应该事务集合中的一个事务。其中,每个比特位唯一与一个事务对应,且每两个比特位对应的事务不相同。并且,将包含该目标项目的事务确定为该目标项目的关联事务,并将该关联事务对应的比特位的取值设置为第一数据,将不是关联事务对应的比特位的取值设置为第二数据,从而得到该目标项目对应的位图数据。这样,可以通过该位图数据中第一数据的数目和总数目的比值,快速地确定出包含该目标项目的事务在事务集合中所占的比例。进而可以根据该比例确定出该目标项集是否为频繁1项集,极大地提高了获取频繁1项集的速度。[0123]当确定该目标项目为频繁1项集后,该分布式子节点可以将该目标项目和该目标项目的位图数据,广播至主节点和其他分布式子节点。并且可以接收到其他分布式子节点广播的统计项目和统计项目的位图数据。然后可以基于该目标项目的位图数据和该统计项目的位图数据,快速确定包含至少两个项目的目标项集是否为频繁项集。如果目标项集为频繁项集,进而可以根据该频繁项集确定出该目标项集中各个项目的关联规则提高了获取关联规则的速度。[0124]上述电子设备提到的通信总线可以是外设部件互连标准PeripheralComponentInterconnect,PCI总线或扩展工业标准结构(ExtendedIndustryStandardArchitecture,EISA总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。[0125]通信接口用于上述电子设备与其他设备之间的通信。[0126]存储器可以包括随机存取存储器RandomAccessMemory,RAM,也可以包括非易失性存储器Non-VolatileMemory,NVM,例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。[0127]上述的处理器可以是通用处理器,包括中央处理器CentralProcessingUnit,CPU、网络处理器NetworkProcessor,NP等;还可以是数字信号处理器DigitalSignalProcessing,DSP、专用集成电路ApplicationSpecificIntegratedCircuit,ASIC、现场可编程门阵列Field-ProgrammableGateArray,FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。[0128]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0129]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、分布式子节点实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。[0130]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

权利要求:1.一种基于位图数据结构的数据分析方法,其特征在于,应用于分布式系统所包含分布式子节点中的一个分布式子节点,所述分布式系统包括:主节点和分布式子节点,所述方法包括:获得所述主节点分配的第一事务子集合,其中,所述第一事务子集合为:事务集合的子集合;获得所述事务集合中事务的总数目及所述事务集合中事务的排序;根据所述排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照所述排序与所述事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:所述第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:所述事务集合中包括该目标项目的事务;分别统计每一目标项目对应的位图数据中第一数据与所述总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,所述第一数据为:位图数据中项目的关联事务对应的比特位的取值;将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至所述主节点和所述其他分布式子节点;接收统计项目和所述统计项目的位图数据,其中,所述统计项目是其他分布式子节点基于所述主节点分配的第二事务子集合统计得到的,所述第一事务子集合与各个第二事务子集合的并集为所述事务集合;基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,所述目标项集中包含至少两个项目;若所述目标项集为频繁项集,确定所述目标项集中各个项目之间的关联规则。2.根据权利要求1所述的方法,其特征在于,所述根据所述排序,确定每一目标项目对应的位图数据的步骤,包括:针对每一目标项目,基于所述第一事务子集合中包括该目标项目的事务、第二事务子集合中包括该目标项目的事务和预设的映射关系,将包括该目标项目的事务对应的比特位的取值设置为第一数据,将不包括该目标项目的事务对应的比特位的取值设置为第二数据,得到该目标项目的位图数据,其中,所述映射关系为:按照所述排序确定的、位图数据中比特位与所述事务集合中事务的对应关系。3.根据权利要求2所述的方法,其特征在于,所述第一数据为1,所述第二数据为O。4.根据权利要求1所述的方法,其特征在于,在所述计算目标项集是否为频繁项集的步骤之前,所述方法还包括:接收所述主节点发送的针对目标项集的统计指令。5.根据权利要求1所述的方法,其特征在于,在所述根据所述排序,确定每一目标项目对应的位图数据的步骤之后,所述方法还包括:将每一目标项目对应的位图数据压缩为压缩位图数据;所述将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至所述主节点和所述其他分布式子节点的步骤,包括:将为频繁1项集的目标项目和为频繁1项集的目标项目的压缩位图数据,广播至所述主节点和所述其他分布式子节点。6.—种基于位图数据结构的数据分析装置,其特征在于,应用于分布式系统所包含分布式子节点中的一个分布式子节点,所述分布式系统包括:主节点和分布式子节点,所述装置包括:第一获得单元,用于获得所述主节点分配的第一事务子集合,其中,所述第一事务子集合为:事务集合的子集合;第二获得单元,用于获得所述事务集合中事务的总数目及所述事务集合中事务的排序;第一确定单元,用于根据所述排序,确定每一目标项目对应的位图数据,其中,一个目标项目对应的位图数据的每一比特位,按照所述排序与所述事务集合中的一个事务对应,每一比特位的取值表示该比特位所对应的事务是否为该目标项目的关联事务;目标项目为:所述第一事务子集合中各个事务包含的项目;一个目标项目的关联事务为:所述事务集合中包括该目标项目的事务;统计单元,用于分别统计每一目标项目对应的位图数据中第一数据与所述总数目之间的比例,并根据统计的比例确定目标项目中的频繁1项集,其中,所述第一数据为:位图数据中项目的关联事务对应的比特位的取值;广播单元,用于将为频繁1项集的目标项目和为频繁1项集的目标项目的位图数据,广播至所述主节点和所述其他分布式子节点;第一接收单元,用于接收统计项目和所述统计项目的位图数据,其中,所述统计项目是其他分布式子节点基于所述主节点分配的第二事务子集合统计得到的,所述第一事务子集合与各个第二事务子集合的并集为所述事务集合;计算单元,用于基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集,其中,所述目标项集中包含至少两个项目;第二确定单元,用于当所述目标项集为频繁项集时,确定所述目标项集中各个项目之间的关联规则。7.根据权利要求6所述的装置,其特征在于,所述第一确定单元具体用于:针对每一目标项目,基于所述第一事务子集合中包括该目标项目的事务、第二事务子集合中包括该目标项目的事务和预设的映射关系,将包括该目标项目的事务对应的比特位的取值设置为第一数据,将不包括该目标项目的事务对应的比特位的取值设置为第二数据,得到该目标项目的位图数据,其中,所述映射关系为:按照所述排序确定的、位图数据中比特位与所述事务集合中事务的对应关系。8.根据权利要求6所述的装置,其特征在于,所述装置还包括:第二接收单元,用于在基于接收到的统计项目、统计项目的位图数据和为频繁1项集的目标项目的位图数据,计算目标项集是否为频繁项集之前,接收所述主节点发送的针对目标项集的统计指令。9.根据权利要求6所述的装置,其特征在于,所述装置还包括:压缩单元,用于在根据所述排序,确定每一目标项目对应的位图数据之后,将每一目标项目对应的位图数据压缩为压缩位图数据;所述广播单元具体用于:将为频繁1项集的目标项目和为频繁1项集的目标项目的压缩位图数据,广播至所述主节点和所述其他分布式子节点。10.—种分布式子节点,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。

百度查询: 北京邮电大学 一种基于位图数据结构的数据分析方法及装置

vip会员权益升级
价格优惠/年费监控/专利管家/定制微网站 关闭