CN101427248B - 用于基于内容的分割与挖掘的基于系统的方法 - Google Patents
用于基于内容的分割与挖掘的基于系统的方法 Download PDFInfo
- Publication number
- CN101427248B CN101427248B CN2006800543919A CN200680054391A CN101427248B CN 101427248 B CN101427248 B CN 101427248B CN 2006800543919 A CN2006800543919 A CN 2006800543919A CN 200680054391 A CN200680054391 A CN 200680054391A CN 101427248 B CN101427248 B CN 101427248B
- Authority
- CN
- China
- Prior art keywords
- tree
- detecting structure
- frequent
- processor
- project
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
Abstract
提供用于将数据库或数据仓的数据分割为几个独立部分而作为数据挖掘过程的组成部分的方法和系统。所述方法和系统使用具有基于内容的分割逻辑的挖掘应用程序来分割数据。数据一旦分割,所分割的数据就可被分组并分配到关联处理器以进一步处理。挖掘应用程序和基于内容的分割逻辑可用于计算系统中,其中包括共享内存和分布式内存多处理器计算系统。还描述了其它实施例并提出了权利要求。
Description
技术领域
在给定现代计算能力的情况下,比较容易采集和存储大量数据,例如事实、数值、文本等。于是,问题成为如何分析大量数据,以从不太重要的数据中确定重要数据。过滤数据以确定重要数据的过程通常称作数据挖掘。数据挖掘指的是采集数据并且从各个角度来分析所挖掘数据,并汇总任何相关的所得数据。在事务数据库中查找频繁项目集(itemsets)已经成为挖掘数据时的重要考虑因素。例如,频繁项目集的挖掘已被用于在顾客的事务数据库中查找有用模式(usefulpatterns)。
频繁项目集挖掘(FIM)是关联规则挖掘(ARM)的基础,并且已广泛应用于市场数据分析、蛋白序列、网站日志(web logs)、文本、音乐、股票市场等。一种用于频繁项目集挖掘的流行算法是频繁模式生长(FP生长)算法。FP生长算法用于挖掘事务数据库中的频繁项目集。FP生长算法用事务数据库的前缀树(称作“FP树”)表示,并且其速度高于例如先验挖掘算法等的其它挖掘算法。FP生长算法往往描述为递归消元方案(recursive elimination scheme)。
作为预处理步骤的组成部分,FP生长算法按照所规定阈值将所有项目从不是单独频繁的事务中删除。也就是说,FP生长算法删除没有出现在用户指定最小数量的事务中的全部项目。在预处理之后,构建FP树,然后,FP生长算法构造各频繁项目的“条件模式库”,以构造条件FP树。然后,FP生长算法以递归方式来挖掘条件FP树。通过将后缀模式与从条件FP树生成的频繁模式级联,来实现模式生长。
由于FP生长算法一直被公认为用于频繁项目集挖掘的强大工具,因此,在并行处理计算机中实现FP生长算法上作了大量的努力研究。实现FP生长主要有两种方法:多树法和单树法。多树法分别地构建多个FP树,它导致许多冗余节点的引入。图6示出通过采用1、4、8、16、32和64个线程(树)的常规的多树法所产生的多个节点。用于产生图6的示例数据库是基准数据集“accidents”,这可见于链接“http://fimi/cs/helsinki/fi/data/”(最小支持阈值为200,000)。如图所示,与只有一个线程相比,多树法将在四(4)个线程上产生两倍的树节点,而在六十四(64)个线程上产生九(9)倍的树节点。在多个树中构建冗余节点的缺点导致极大的存储器需求,并且有时存储器不够大到足以包含多个树。先前的单方法仅在存储器中构建单个FP树,但它需要生成一个与各树节点关联的锁定,由此限制了可缩放性(scalability)。
附图说明
图1是根据一实施例的、包括具有基于内容的分割功能性的挖掘应用程序的计算装置的框图。
图2A-2B是示出说明根据一实施例的、由基于内容的分割逻辑执行的各种逻辑操作的流程图。
图3表示一实施例的探测树(probe tree)数据结构。
图4A-4D示出根据一实施例的、频繁模式(FP)树的并行构建中的第一批步骤。
图5示出根据一实施例的、探测树的经分割子分支和分组结果。
图6示出通过采用1、4、8、16、32和64个线程(树)常规的多树法产生的多个节点。
具体实施方式
方法和系统的实施例可用于将数据库或数据仓(data store)的数据分割为几个独立部分作为数据挖掘过程的组成部分。方法和系统使用基于内容的分割逻辑,通过构建探测结构来分割数据。在一实施例中,探测结构包括探测树及关联探测表。一旦例如按照内容分割了数据,所得部分就可被分组并分配到关联处理器以进一步处理。基于内容的分割逻辑可用于包括共用存储和分布式内存多处理器计算系统的计算系统中,但是并不受此限制。
如上所述,在将数据分割成独立部分或分支(例如分离的子分支)之后,则可将各分支或各组分支分配给处理器(或线程)以进一步处理。在一个实施例中,在由主线程进行调度之后,将各事务分配给对应处理器,以完成构建FP树的特定分支。根据FP生长算法,数据相关性仅存在于每个子分支内,而子分支之间不存在相关性。因此,常规单树法所需的许多锁定是不必要的。在一实施例中,根据事务数据库中的事务的内容来分割数据库。基于内容的分割可节省存储,并消除构建FP树时的许多锁定。存储节省基于若干因素,包括数据库的特性、支持阈值以及处理器的数量。本文所述的技术提供对于采用多核和其它处理架构(processing architecture)的数据挖掘的有效且有价值的工具。
在一实施例中,主/从处理架构被用于有效地将处理操作分配给若干处理器(又称作“线程”)。在构建FP树时,主/从架构包括主处理器(主线程),而将任何其余处理器(线程)指定为从处理器(从线程)。主线程的任务之一是从数据库加载事务和修剪事务,并将经修剪事务分配给各从线程,以进行FP树的并行构建。每个从线程有其自己的事务队列,并且每当主线程将经修剪事务分配给关联从线程时,从该队列中获得经修剪事务。每个从线程处理其已修剪的事务,以构建FP树。这种架构允许主线程在将事务传递给从线程之前,对事务进行某些初步测量。根据初步测量的结果,主线程还可判定如何将事务分配给特定线程。在备选实施例中,所有线程单独进行工作以用探测结构来构建FP树。
在以下描述中,介绍大量具体细节,以提供对系统和方法的实施例的透彻了解并实现对它们的描述。但是,相关领域的技术人员会知道,即使没有这些具体细节的一个或多个或者采用其它元件、系统等,也可实施这些实施例。在其它情况下,未示出或者没有详细描述众所周知的结构或操作,以凸显所公开实施例的主要方面。
图1示出根据一实施例的计算装置100,包括具有基于内容的分割逻辑102的挖掘应用程序101,在执行数据挖掘操作时,基于内容的分割逻辑102与数据仓(或数据库)104交互。下面详细描述挖掘应用程序101和基于内容的分割逻辑102。计算装置100包括任何计算系统,例如手持、移动计算系统、台式计算系统、膝上型计算系统和其它计算系统。图1所示的计算装置100称作多处理器或多核装置,因为该架构包括多个处理器106a-106x。可有效地在处理器106a-106x之间分配任务,以免造成个别处理器负担过重。在其它实施例中,计算装置100可包括单处理器和其它元件。计算装置100通常包括系统内存108。根据计算装置的配置和类型,系统内存108可以是易失性(例如随机存取存储器(RAM)或其它动态存储器)、非易失性(例如只读存储器(ROM)、闪速存储器等)或某种组合。
系统内存108可包括操作系统110和一个或多个应用程序/模块112。计算装置100可包括附加计算机存储装置114,例如磁存储装置、光存储装置等。计算机存储装置包括但不限于:RAM、ROM、电可擦可编程只读存储器(EEPROM)、闪速存储器或其它存储器技术,光盘ROM(CD-ROM)、数字多功能光盘(DVD)或其它光学存储装置,盒式磁带、磁带、磁盘存储装置或其它磁存储装置,或者可用于存储信息的任何其它介质。计算装置100还可包含一个或多个输入装置116和一个或多个输出装置118。计算装置100还可包含通信连接120,它允许计算装置100例如通过有线和/或无线网络或者其它网络与其它计算装置122、处理器和/或系统进行通信。
图2A-2B是示出说明根据一实施例的、包括基于内容的分割逻辑102的挖掘应用程序101的各种逻辑操作的流程图。对于该实施例,处理器106a(本文中称作主处理器)执行包括基于内容的分割逻辑102的挖掘应用程序101,如下面所描述。下表1的事务数据库与流程图可结合使用,以用挖掘应用程序101和基于内容的分割逻辑102来提供说明性示例。例如,表1中的各项事务可代表一系列项目,例如作为基于网络的事务的一部分而购买的项目等,其中各事务项目用唯一的字母表示。
表1
事务编号 | 事务 |
1 | A,B,C,D,E |
2 | F,B,D,E,G |
3 | A,B,F,G,D |
4 | B,D,A,E,G |
5 | B,F,D,G,K |
6 | A,B,F,G,D |
7 | A,R,M,K,O |
8 | B,F,G,A,D |
9 | A,B,F,M,O |
10 | A,B,D,E,G |
11 | B,C,D,E,F |
12 | A,B,D,E,G |
13 | A,B,F,G,D |
14 | B,F,D,G,R |
15 | A,B,D,F,G |
16 | A,R,M,K,J |
17 | B,F,G,A,D |
18 | A,B,F,M,O |
在200,挖掘应用程序101使用基于内容的分割逻辑102,并通过扫描例如表1中的事务数据库等的事务数据库的前一半来开始运行,以根据所规定的支持阈值来确定频繁项目。不同的支持阈值可根据特定应用来实现。对于此示例,支持阈值为12。在一实施例中,在步骤202,事务数据库的前一半的各事务被扫描,并计算各项目在该扫描中出现的次数。由于搜索覆盖该事务数据库的一半,所以支持阈值六(6)用于根据数据库的前一半的扫描来创建FP树的标题表。在步骤204,确定是否已经扫描了数据库的前一半。如果没有,则流程返回到步骤200,并读取下一事务。如果在步骤204已经扫描了数据库的前一半,则在步骤206,逻辑102根据事务数据库的前一半的扫描来创建满足最小支持阈值的频繁项目的标题表。
逻辑102还给在第一扫描中标识的频繁项目指派排序。在一实施例中,逻辑102按照事务数据库中的发生频率,来对频繁项目进行排序。对于此示例,逻辑102按B、A、D、F、G(B≥A≥D≥F≥G)来对最频繁项目进行排序。这种排序用来创建标题表和探测结构,该结构描述如下。对于此示例,对事务数据库的前一半的扫描导致对被插入标题表(表2)的各个项目的标识。如以下所述,在初始扫描事务数据库的前一半之后,标题表包括经标识的频繁项目:项目B出现八(8)次,项目A出现七(7)次,项目D出现七(7)次,项目F出现六(6)次,以及项目G出现六(6)次。
表2
项目 | 计数 |
B | 8 |
A | 7 |
D | 7 |
F | 6 |
G | 6 |
在步骤208,逻辑102标识用于构建探测结构的频繁项目。在一实施例中,逻辑102标识用于构建包括探测树及关联探测表的探测结构的频繁项目,下面进行描述。对于此示例,项目B、A、D和F标识为要用于构建探测树的项目。在步骤210,逻辑102创建探测树的根节点,并开始构建空探测表。在步骤212,逻辑102开始用事务数据库中的第一最频繁项目从根节点开始由已标识频繁项目B、A、D和F构建探测树。在步骤214,逻辑102将具有其项目标识(ID)的子代添加到探测树。在构建探测树时,逻辑102开始填充空探测表(例如将计数设置为零,如下所示)。如上所述,通过评估已标识频繁项目来构建探测树。在步骤216,逻辑102确定是否存在要评估的任何剩余频繁项目。如果存在剩余项目,则流程返回到步骤212,并按照以上所述继续进行。如果不存在剩余项目,则流程进入步骤218。
图3表示探测树数据结构(或探测树)300,它包括从步骤208-216产生的已标识项目。探测树和探测表构建的更详细描述如下。根据一实施例,逻辑102选择前“M”个已标识频繁项目来构建探测树及关联探测表。因此,探测树及关联探测表包括2M个分支。在实验中,M=10是对于许多情况的合理选择。如以下所述,2M个分支可进一步分组,以获得基本上相等的分组或组块(chunks)供进一步处理。
对于此示例,探测树300代表已标识频繁项目(例如B、A、D、F(M=4))以及根据发生频率和内容的它们相互之间的事务关系。对于第一最频繁项目B,逻辑102创建与最频繁项目B对应的节点302。逻辑102取下一最频繁项目A,并创建与频繁项目A对应的节点304。逻辑102还创建表明A是B的“子代”的块306。由于A只是B的子代,因此,逻辑102取下一最频繁项目D,从而创建与下一最频繁项目对应的节点308。逻辑102还在确定对于探测树300中的B和A各自而言D是B和A的子代的基础上,创建块310、312和314。
对于此示例的最低最频繁项目F,逻辑102创建与频繁项目F对应的节点316。逻辑102还创建块318、320、322、324、326、328和330,说明对于探测树300中的B、A和D各自而言,F是B、A和D的子代。下面对于已标识频繁项目B、A、D和F示出对应的探测表(表3)。这里,逻辑102将各项目的计数设置为零,但是不受此限制。探测表(表3)中的各行表示基于内容的事务,包括已标识频繁项目B、A、D和F的一个或多个。数字“1”用来表示特定项目在包含该一个或多个频繁项目的事务中出现,而数字“0”用来表示没有在关联事务中出现的一个或多个项目。
表3
B | A | D | F | 计数 |
1 | 1 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 0 |
... | ||||
0 | 1 | 0 | 0 | 0 |
... | ||||
0 | 0 | 0 | 0 | 0 |
继续参照图2,在创建探测树和空探测表之后,流程进入步骤218,其中,逻辑102评估事务数据库的下一事务而继续第一扫描。对于本实施例,逻辑102扫描事务数据库的后一半(事务10-18),从而评估每个相应事务。在步骤220,根据已扫描的事务,逻辑102在探测表中提供计数,并更新满足最小支持阈值的频繁项目的标题表。下面示出已更新的探测表(表5)。在步骤222,如果在事务数据库中不再存在其它事务,则流程进入步骤224。否则,如果存在要处理的其它事务,则流程返回到步骤218。根据以上已标识频繁项目的排序(B≥A≥D≥F≥G),逻辑102更新标题表(下表4)。
表4
项目 | 计数 |
B | 16 |
A | 14 |
D | 14 |
F | 12 |
G | 12 |
下面示出已更新的探测表(表5),其中包括从事务数据库的后一半的扫描中产生的计数字段。各计数表示在扫描事务数据库的后一半之后包含各已标识频繁项目的事务的数量。表5表示在事务数据库的第一扫描之后基于内容的事务。
表5
B | A | D | F | 计数 |
1 | 1 | 1 | 1 | 3 |
1 | 1 | 1 | 0 | 2 |
1 | 1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 | 2 |
1 | 0 | 1 | 0 | 0 |
... | ||||
0 | 1 | 0 | 0 | 1 |
... | ||||
0 | 0 | 0 | 0 | 0 |
在步骤224,各事务或探测树分支(包含一个或多个已标识频繁项目)被分配给一个或多个处理器,以进一步处理。探测树和探测表可描述为事务数据的预处理,它用来分割事务数据以供数据挖掘。根据一实施例,通过标识由一个或多个项目组成的事务,探测表可用来平衡处理负荷,其中各事务包括唯一项目集。更具体来说,如下面所述,逻辑102尝试平衡工作负荷,工作负荷根据通过使用探测表和探测树所标识的特定事务的内容及关联事务计数来确定。
根据对探测表的审查,有三(3)个包含已标识频繁项目B、A、D和F的事务;有两(2)个包含已标识频繁项目B、A和D但不包含F的事务;有一个包含已标识频繁项目B、A和F但不包括D的事务;没有仅包含已标识频繁项目B和A的事务;有两(2)个包含已标识频繁项目B、D和F但不包括A的事务;有一个包含已标识频繁项目A的事务。探测表的其余事务可用相似方式确定。如下所述,与探测树的节点关联的锁定较少。注意,在常规的单树法中,每个FP树节点需要一个锁定。由于探测树不需要同样多的锁定,使用探测树功能性的系统增加了可缩放性。
通过将事务组块分配给相应处理器(例如106a-106x),使得各处理器各自构建FP树的相应部分(并行构建过程),已更新探测表可用来构造频繁模式树(FP树)。下面描述的分组算法可用来将探测树的分支分为N组,其中N是可用处理器或线程的数量。然后,可将一组分支分配给相应的处理器。在挖掘数据(包括构建FP树)时,探测树和探测表成为用于平衡多个处理器之间的计算负荷的重要工具。
在一实施例中,挖掘应用程序101将一组事务分配给特定线程,使得各线程可处理大致相同数量的事务。将组分配给处理器可使这些处理线程之间的冲突成为最小。如下所述,试探算法可用来将探测表(例如由各行的计数表示)的分支分为与用来构建FP树并执行数据挖掘操作的处理器的数量对应的若干个大约相等的组。
例如,假定计算装置100包括四个处理器106a-106d。根据一实施例,将一个处理器如处理器106a指定为主处理器,而将其余处理器如106b-106d指定为从处理器。主处理器106a读取各事务,并将各事务分配给特定的从处理器,以构建FP树。在步骤226,为FP树创建根节点。在步骤228,主处理器106a使用挖掘应用程序101,以第一事务开始再一次扫描事务数据库。
在步骤230,主处理器106a将各事务分配给特定从处理器。在步骤232,各从处理器读取由主处理器106a发送的各事务。在步骤234,各从处理器将其修剪项目集插入全FP树。在步骤236,挖掘应用程序101确定全数据库的各事务是否已经被读取和分配。如果全数据库的各事务已经被读取和分配,则流程进入步骤240,并且挖掘应用程序101开始频繁模式的FP树的挖掘。如果全数据库的各事务尚未被读取和分配,则流程返回到步骤228。如果没有要处理的更多事务,则流程继续进行到步骤240,否则流程返回到步骤232。
在图4A-4D中示出FP树的分布和并行构建。如上所述,试探算法可用于将探测树的事务分为基本上相等的组,以由四个处理器(三个从处理器构建FP树的相应部分)进行处理。对于此示例,挖掘应用程序101使用试探算法将探测树的分支分为三组,因为有三个从处理器。根据一实施例,该试探算法假定Vi是包含属于第i组的所有组块的向量。Ci是第i组的事务的数量(Vi的大小)。目标是将事务分配到(T-1)个组,使每组中事务的总数大致相等。
该算法可表示如下:
V={V1,V2,...,VT-1}
目的是找到V,以使f为最小。输入为P={P1,P2,...,Pm}。输出为V={V1,V2,...,VT-1}。
即,对于各Pi:
Findj,Cj=min(Ck,k=1,2,...,T-1)
Vj=Vj U chunk i
Cj=Cj+sizeof(chunk i)
Return V.
因此,在使用试探算法后,第一组包括含项目B、A、D和F的三(3)个事务。第二组包括有项目B、A、D但无项目F的两(2)个事务以及有项目B、A、F但无项目D的一(1)个事务(共三(3)个事务)。第三组包括有B、D、F但无项目A的两(2)个事务以及有项目A但无项目B、D、F的一(1)个事务(共三(3)个事务)。探测树中的其它分支没有计数(参见探测表),因此逻辑102仅根据试探算法的结果来分配上述五(5)个分支的分组。根据以上描述,主处理器106a将第一组分配给第一从处理器106b,将第二组分配给第二从处理器106c,并将第三组分配给第三从处理器106d,以并行构建FP树。
图4A-4D示出由三个从处理器106b-106d并行构建FP树中的第一步骤。在如上所述构建了FP树的标题表和根节点之后,主处理器106a读取第一事务(A,B,C,D,E),从而按照标题表内容将其修剪为(B,A,D)。对于此示例,主处理器106a根据基于试探算法的分组、探测树和上述的探测表,将(B,A,D)分配给从处理器106c。如图4A所示,在接收到经修剪项目(B,A,D)之后,从处理器106c依次创建节点B、A和D。从处理器106c设置从处理器106c的对应节点链接(表示为虚线),并且还将各节点计数设为一(1)。
主处理器106a读取第二事务(F,B,D,E,G),按照标题表内容将它修剪成(B,D,F,G)。然后,主处理器106a将(B,D,F,G)分配给从处理器106d。此后,如图4B所示,通过依次创建如图4B所示的节点D、F和G,从处理器106d将经修剪事务(B,D,F,G)插入FP树。从处理器106d设置对应的节点链接,对于D、F和G将节点计数设为等于一(1),而将B的节点计数加一(1)。主处理器106a读取第三事务(A,B,F,G,D),按照标题表内容将它修剪成(B,A,D,F,G)。然后,主处理器106a将经修剪事务(B,A,D,F,G)分配给从处理器106b。此后,通过依次创建节点F和G,并设置对应的节点链接,从处理器106b将经修剪事务(B,A,D,F,G)插入FP树,如图4C所示。从处理器106b对于F和G将节点计数设为等于一(1),而对于公共路径中的节点B、A和D将节点计数加一(1)。
主处理器106a读取第四事务(B,D,A,E,G),按照标题表内容将它修剪成(B,A,D,G)。然后,主处理器106a将经修剪事务(B,A,D,G)分配给从处理器106c。此后如图4D所示,通过创建节点G,并设置对应的节点链接,从处理器106c将修剪事务(B,A,D,G)插入FP树。对于节点G从处理器106c将节点计数设为等于一(1),而对于公共路径中的B、A和D将节点计数加一(1)。主处理器106a继续扫描事务数据库,并如上所述将各事务分配给相应的从处理器。各从处理器将经修剪事务插入FP树,直到构建了包括代表链接和节点计数的全FP树,如上所述。在一实施例中,当创建FP树时,多个处理器在处理不同事务的同时可不访问有锁定的节点。因此,锁定可阻止多个线程试图在FP树中创建重复节点。在一实施例中,FP树由系统内存108构建并存储到系统内存108中。在另一实施例中,FP树由分布式内存系统构建并存储到分布式内存系统中。
在构建了FP树之后,可对于已标识频繁项目来挖掘特定模式的FP树。可用各种数据挖掘算法来挖掘FP树。例如,可用FP树来执行基于条件(前缀)的挖掘操作。根据一实施例,FP树的挖掘可汇总如下。各处理器可用来单独挖掘FP树的频繁项目。对于各频繁项目,挖掘过程构造“条件模式库”(例如“子数据库”,它由随后缀模式同现的FP树中的前缀路径集合构成)。
在构造了条件FP树之后,按照已标识频繁项目以递归方式挖掘条件FP树。如上所述,基于内容的分割逻辑102用来将数据库或数据仓的数据分割为几个独立部分,以便随后分配给一个或多个处理器。基于内容的分割逻辑102用来相等地分割数据库,使得在构建和挖掘FP树时负荷得以平衡(例如,各处理器获得大致等量的要处理事务),但并不受此限制。
另一示例说明包括基于内容的分割逻辑102的挖掘应用程序101的使用。假定数据库包含八(8)个项目(A,B,C,D,E,F,G,H)。对于此示例,数据库包括总共八十(80)个事务。在检查数据库的第一部分例如前一半之后,确定项目A、B和C是数据库的第一部分中的前三(3)个最频繁项目。随后,可按照前M个最频繁项目的内容来分割事务。如上所述,可以部分根据可用处理器量来试探地确定M。对于当前示例,M设置成等于三(M=3),因为有3个最频繁项目。因此,可按照项目A、B和C将事务分割成2M即八(8)个基于内容的组块。基于内容的组块等于FP树中的子分支。下表6给出事务分配的一个示例(例如,101表示关联组块包含具有项目A和C但没有B的事务)。
表6
ABC | 事务计数 |
111 | 14 |
110 | 12 |
101 | 10 |
100 | 6 |
011 | 4 |
010 | 5 |
001 | 5 |
000 | 24 |
假定有两个可用从线程,基于内容的分割逻辑102将八个组块分为两组,每个从线程一组。如上所述,试探搜索算法可用来将八个组块分为两组,其中各组包含大致相同数量的事务。两个得到的组可包括第一组组块{111,110,101,011}和第二组组块{100,101,001,000},其中各组包含四十(40)个事务。图5示出经分割子分支和分组结果。虚线围绕的两个子分支表示分配给第一线程的第一组组块。实线围绕的其它两个子分支表示分配给第二线程的第二组组块。
由各线程处理等量的事务导致在构建FP树时负荷的有效平衡。此外,在用探测树进行分割后,对于并行树构建过程中可能的共用节点(例如,只包括FP树中的a、b、c)仅需要八(8)(23)个锁定。与常规构建的256(28)=256个锁定形成对照。因此,预先分割导致锁定数量的极大减少(例如,power(2,items_num)-power(2,N))。另外,基于内容的分割可以不需要如同常规多树法中那样的节点复制。因此,基于内容的分割和分组导致线程之间良好的负荷平衡,同时实现高的可缩放性。
下表7根据基于内容的树分割和多树法之间的比较来提供实验结果。测试平台是16处理器共享内存系统。测试基准数据库“accidents”可直接从链接“http://fimi.cs.helsinki.fi/data/”下载,而数据库“bwebdocs”和“swebdocs”从数据库“webdocs”剪下。
表7
多树 | 数据库 | 1P | 2P | 4P | 8P | 16P |
swebdocs | 1102 | 613 | 359 | 197 | 125 | |
bwebdocs | 278 | 155 | 92.7 | 52.8 | 42.9 | |
accidents | 23.2 | 14.1 | 8.44 | 6.62 | 4.95 | |
树分割 | ||||||
swebdocs | 1031 | 539 | 330 | 187 | 120 | |
bwebdocs | 278 | 155 | 92.5 | 53.7 | 40.2 | |
accidents | 22.3 | 14.3 | 8.78 | 6.20 | 5.29 |
表7示出整个应用程序的运行时间,包括第一扫描、树构造过程和挖掘阶段。下表8示出各方法对于全部三个基准数据库上的挖掘阶段的运行时间。
表8
多树 | 数据库 | 1P | 2P | 4P | 8P | 16P |
swebdocs | 1087 | 603 | 350 | 187 | 113 | |
bwebdocs | 258 | 134 | 73.5 | 32.7 | 19.9 | |
accidents | 20.3 | 11.8 | 6.44 | 4.35 | 2.95 | |
树分割 | ||||||
swebdocs | 1018 | 527 | 320 | 176 | 110 | |
bwebdocs | 250 | 129 | 70.6 | 31.9 | 17.8 | |
accidents | 18.0 | 10.5 | 5.63 | 2.66 | 1.44 |
如以上表7和表8所示,大家看到,树分割法在总运行时间上具有可与旧的多树法相比拟的性能,只是在挖掘阶段稍好一些。结果是合理的:在第一和第二阶段,树分割法对于各事务根据其内容进行附加分割。但是,树分割法应当在挖掘阶段略快,因为没有重复树节点。
本文所述的方法和系统的方面可实现为编程到任何各种电路的功能性,包括如现场可编程门阵列(“FPGA”)等可编程逻辑装置(“PLD”)、可编程阵列逻辑(“PAL”)装置、电可编程逻辑和存储器装置及基于标准单元的装置以及专用集成电路。实现方式还可包括具有存储器(例如EEPROM)的微控制器、嵌入微处理器、固件、软件等。另外,可实现在具有基于软件的电路模拟的微处理器、离散逻辑(顺序和组合)、定制装置、模糊(神经)逻辑、量子器件(quantum devices)以及上述装置类型的任一种的混合中。当然,基础器件工艺可通过各种元件类型来实现,例如互补金属氧化物半导体(“CMOS”)等金属氧化物半导体场效应晶体管(“MOSFET”)工艺、例如发射极耦合逻辑(“ECL”)等双极型工艺、聚合物技术(例如硅共轭聚合物和金属共轭聚合物金属结构)、混合模拟和数字工艺等。
本文中一般使用的术语“处理器”指的是任何逻辑处理单元,例如一个或多个中央处理器(“CPU”)、数字信号处理器(“DSP”)、专用集成电路(“ASIC”)等。虽然本文中一般使用术语“元件”,但是大家要理解,“元件”包括电路、元件、模块和/或电路、元件和/或模块的任何组合,因为这些术语是本领域已知的。
按照其行为、寄存器传送、逻辑元件和/或其它特性,本文所公开的各种元件和/或功能可用任何数量的硬件、固件的组合来描述,和/或描述为各种机器可读或计算机可读介质中包含的数据和/或指令。可包含这类格式化数据和/或指令的计算机可读介质包括(但不限于)各种形式的非易失性存储介质(例如光、磁或半导体存储介质),以及可用于通过无线、光或有线信令介质或者它们的任何组合来传送这类格式化数据和/或指令的载波。由载波来传送这类格式化数据和/或指令的示例包括(但不限于)通过互联网和/或其它计算机网络、经由一个或多个数据传输协议的传送(上载、下载、电子邮件等)。
除非上下文明确要求,在整个描述和权利要求书中,词语“包括”、“包含”等要从包含在内的意义上来理解,这与排他或穷举的意义相反,也就是说,应在“包含但不限于”的意义上理解。使用单数或复数的词语还分别包括复数或单数。此外,词语“本文”、“以下”、“以上”、“下面”以及相似意义的词语提及的是本申请的总体而不是本申请的任何特定部分。当词“或者”用于提到两个或更多项目的列表时,该词涵盖该词的如下全部解释:列表中的项目的任一个;列表中的所有项目;以及列表中的项目的任何组合。
所示实施例的以上描述不是穷举的或者受本公开限制的。虽然本文为了进行说明而描述了系统和方法的具体实施例及示例,但相关领域的技术人员当知,可进行各种等效修改。本文所提供的理论可适用于其它系统和方法,而不是仅用于以上所述的系统和方法。可组合以上所述各种实施例的元件和动作以提供其它实施例。可根据以上详细描述对方法和系统进行这些及其它变更。
一般来说,以下权利要求中所使用的术语不应理解为对说明书和权利要求书中公开的具体实施例,而是应当理解为包括本申请权利要求项下操作的所有系统和方法。因此,所述方法和系统不受本公开限制,其范围完全由权利要求书规定。尽管以某些权利要求的形式展示了某些形态,但是本发明人考虑的是任何数量的权利要求形式的各个形态。因此,本发明人保留在提交本申请后添补附加权利要求的权利,从而为其它形态追补这样的附加权利要求。
Claims (12)
1.一种用于挖掘数据库的数据的设备,包括:
用于标识所述数据库的频繁项目的部件;
锁定部件,用于锁定已标识项目以阻止其它数据挖掘过程选择所述已标识项目;
构建部件,用于根据所述已标识频繁项目来构建探测结构,其中,所述探测结构的各分支包括若干基于所述项目的内容和所述项目的发生频率的已标识频繁项目;
分组部件,用于根据各分支的所述项目的内容对所述探测结构的分支进行分组;以及
用于根据所述探测结构来构建频繁模式树的部件。
2.如权利要求1所述的设备,还包括:用于在标识所述数据库的频繁项目时扫描所述数据库的第一部分的部件,及用于在构建所述探测结构时扫描所述数据库的第二部分的部件,其中,所述探测结构包括在扫描所述数据库的第二部分之后与所述探测结构的各分支关联的若干计数。
3.如权利要求1所述的设备,还包括:用于构建所述探测结构以包括探测树和探测表的部件,及用于用所述探测树和探测表来构建所述频繁模式树用于挖掘所述频繁模式树以确定频繁数据模式的部件。
4.如权利要求1所述的设备,还包括:用于在构建所述频繁模式树之前将各组分支分配给关联处理器的部件。
5.如权利要求4所述的设备,还包括:用于用主处理器将各组分支分配给一个或多个从处理器的部件,及用于用所述一个或多个从处理器来构建所述频繁模式树的部件。
6.如权利要求1所述的设备,还包括:用于根据所述已标识频繁项目的内容来分割所述数据库以获得所述探测结构的部件,其中,所述探测结构包括所述已标识频繁项目和一个或多个基于内容的事务的发生次数的组合。
7.一种用于挖掘数据库的数据的方法,包括:
标识所述数据库的频繁项目;
锁定已标识项目以阻止其它数据挖掘过程选择所述已标识项目;
根据所述已标识频繁项目来构建探测结构;
构建所述探测结构的多个分离的分支,其中,所述探测结构的各分支包括若干基于所述项目的内容和所述项目的发生频率的已标识频繁项目;
根据各分支的所述项目的内容对所述探测结构的分支进行分组;
以及
根据所述探测结构来构建频繁模式树。
8.如权利要求7所述的方法,还包括:在标识所述数据库的频繁项目时扫描所述数据库的第一部分,并且在构建所述探测结构时扫描所述数据库的第二部分,其中,所述探测结构包括在扫描所述数据库的第二部分之后与所述探测结构的各分支关联的若干计数。
9.如权利要求7所述的方法,还包括:构建所述探测结构以包括探测树和探测表,并用所述探测树和探测表来构建所述频繁模式树,用于挖掘所述频繁模式树以确定频繁数据模式。
10.如权利要求7所述的方法,还包括:在构建所述频繁模式树之前,将各组分支分配给关联处理器。
11.如权利要求10所述的方法,还包括:用主处理器将各组分支分配给一个或多个从处理器,并用所述一个或多个从处理器来构建所述频繁模式树。
12.如权利要求7所述的方法,还包括:根据所述已标识频繁项目的内容来分割所述数据库以获得所述探测结构,其中,所述探测结构包括所述已标识频繁项目和一个或多个基于内容的事务的发生次数的组合。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2006/000829 WO2007124616A1 (en) | 2006-04-27 | 2006-04-27 | System based method for content-based partitioning and mining |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101427248A CN101427248A (zh) | 2009-05-06 |
CN101427248B true CN101427248B (zh) | 2013-05-22 |
Family
ID=38655031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800543919A Expired - Fee Related CN101427248B (zh) | 2006-04-27 | 2006-04-27 | 用于基于内容的分割与挖掘的基于系统的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8126911B2 (zh) |
EP (1) | EP2011035A4 (zh) |
CN (1) | CN101427248B (zh) |
WO (1) | WO2007124616A1 (zh) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101192227B (zh) * | 2006-11-30 | 2011-05-25 | 阿里巴巴集团控股有限公司 | 一种基于分布式计算网络的日志文件分析方法和系统 |
US7844581B2 (en) * | 2006-12-01 | 2010-11-30 | Nec Laboratories America, Inc. | Methods and systems for data management using multiple selection criteria |
US7941411B2 (en) * | 2007-06-29 | 2011-05-10 | Microsoft Corporation | Memory transaction grouping |
US8745086B2 (en) | 2008-12-05 | 2014-06-03 | New BIS Safe Luxco S.á.r.l. | Methods, apparatus and systems for data visualization and related applications |
US8452846B2 (en) | 2010-08-12 | 2013-05-28 | Talari Networks Incorporated | Adaptive private network asynchronous distributed shared memory services |
US8370394B2 (en) * | 2009-07-17 | 2013-02-05 | International Business Machines Corporation | Parallel processing of data organized in a tree structure |
US8301665B2 (en) * | 2009-09-08 | 2012-10-30 | International Business Machines Corporation | Accelerated drill-through on association rules |
US8407447B2 (en) * | 2009-12-16 | 2013-03-26 | Hewlett-Packard Development Company, L.P. | Dynamically reallocating computing components between partitions |
CN101794296B (zh) * | 2010-01-13 | 2015-10-07 | 中国电子科技集团公司第五十四研究所 | 一种基于空中活动目标数据的挖掘方法 |
CN101931570B (zh) * | 2010-02-08 | 2011-05-04 | 中国航天科技集团公司第七一○研究所 | 一种基于频繁模式增长算法的网络攻击路径重构方法 |
CN101867833A (zh) * | 2010-06-12 | 2010-10-20 | 北京东方艾迪普科技发展有限公司 | 一种视频图像格式转换方法和装置 |
US8495108B2 (en) | 2010-11-30 | 2013-07-23 | International Business Machines Corporation | Virtual node subpool management |
US9348852B2 (en) | 2011-04-27 | 2016-05-24 | Microsoft Technology Licensing, Llc | Frequent pattern mining |
US8578213B2 (en) | 2011-04-27 | 2013-11-05 | Microsoft Corporation | Analyzing software performance issues |
US8645958B2 (en) * | 2011-06-16 | 2014-02-04 | uCIRRUS | Software virtual machine for content delivery |
US20130173777A1 (en) * | 2011-12-28 | 2013-07-04 | Microsoft Corporation | Mining Execution Pattern For System Performance Diagnostics |
CN104598385B (zh) * | 2013-10-30 | 2019-05-10 | 华为技术有限公司 | 内存分配方法及装置 |
US20150293974A1 (en) * | 2014-04-10 | 2015-10-15 | David Loo | Dynamic Partitioning of Streaming Data |
EP2937794B1 (en) * | 2014-04-22 | 2016-08-17 | DataVard GmbH | Method and system for archiving digital data |
US9734179B2 (en) | 2014-05-07 | 2017-08-15 | Sas Institute Inc. | Contingency table generation |
JP6036753B2 (ja) * | 2014-06-25 | 2016-11-30 | コニカミノルタ株式会社 | 画像処理装置、同装置における画面表示方法及び画面表示プログラム |
CN104965674B (zh) * | 2015-06-08 | 2018-01-19 | 暨南大学 | 一种基于块关联的低能耗磁盘调度方法及系统 |
US10509677B2 (en) * | 2015-09-30 | 2019-12-17 | Lenova (Singapore) Pte. Ltd. | Granular quality of service for computing resources |
WO2017068481A1 (en) * | 2015-10-20 | 2017-04-27 | Jayaram Sanjay | System for managing data |
US11200501B2 (en) * | 2017-12-11 | 2021-12-14 | Adobe Inc. | Accurate and interpretable rules for user segmentation |
US11200258B2 (en) * | 2017-12-20 | 2021-12-14 | Acer Cloud Technology (Us), Inc. | Systems and methods for fast and effective grouping of stream of information into cloud storage files |
CN108346007A (zh) * | 2018-03-02 | 2018-07-31 | 深圳灵虎至真智能科技有限公司 | 一种基于FP-Growth算法的手机贴标检测数据分析方法 |
CN110750561A (zh) * | 2018-07-20 | 2020-02-04 | 深圳市诚壹科技有限公司 | 一种关联应用程序挖掘的方法及装置 |
US11036741B2 (en) | 2019-03-01 | 2021-06-15 | International Business Machines Corporation | Association rule mining system |
US11704591B2 (en) | 2019-03-14 | 2023-07-18 | Adobe Inc. | Fast and accurate rule selection for interpretable decision sets |
CN110297853B (zh) * | 2019-07-01 | 2023-11-14 | 创新先进技术有限公司 | 频繁集挖掘方法和装置 |
CN110992109B (zh) * | 2019-12-16 | 2022-09-02 | 重庆锐云科技有限公司 | 基于关联规则的房地产客户分析方法、装置及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665669B2 (en) * | 2000-01-03 | 2003-12-16 | Db Miner Technology Inc. | Methods and system for mining frequent patterns |
US6816867B2 (en) * | 2001-03-12 | 2004-11-09 | Affymetrix, Inc. | System, method, and user interfaces for mining of genomic data |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4876643A (en) * | 1987-06-24 | 1989-10-24 | Kabushiki Kaisha Toshiba | Parallel searching system having a master processor for controlling plural slave processors for independently processing respective search requests |
US5799311A (en) * | 1996-05-08 | 1998-08-25 | International Business Machines Corporation | Method and system for generating a decision-tree classifier independent of system memory size |
US5897638A (en) * | 1997-06-16 | 1999-04-27 | Ab Initio Software Corporation | Parallel virtual file system |
JP3367385B2 (ja) * | 1997-06-27 | 2003-01-14 | 日本電気株式会社 | 分散トランザクション整合方法及びプログラムを記録した機械読み取り可能な記録媒体 |
US6032146A (en) * | 1997-10-21 | 2000-02-29 | International Business Machines Corporation | Dimension reduction for data mining application |
US6230151B1 (en) * | 1998-04-16 | 2001-05-08 | International Business Machines Corporation | Parallel classification for data mining in a shared-memory multiprocessor system |
US6138117A (en) * | 1998-04-29 | 2000-10-24 | International Business Machines Corporation | Method and system for mining long patterns from databases |
US6826556B1 (en) * | 1998-10-02 | 2004-11-30 | Ncr Corporation | Techniques for deploying analytic models in a parallel |
US6941303B2 (en) * | 2000-09-20 | 2005-09-06 | Ndsu Research Foundation | System and method for organizing, compressing and structuring data for data mining readiness |
US7016887B2 (en) * | 2001-01-03 | 2006-03-21 | Accelrys Software Inc. | Methods and systems of classifying multiple properties simultaneously using a decision tree |
US7007035B2 (en) * | 2001-06-08 | 2006-02-28 | The Regents Of The University Of California | Parallel object-oriented decision tree system |
US6675164B2 (en) * | 2001-06-08 | 2004-01-06 | The Regents Of The University Of California | Parallel object-oriented data mining system |
US6829608B2 (en) * | 2001-07-30 | 2004-12-07 | International Business Machines Corporation | Systems and methods for discovering mutual dependence patterns |
US7174343B2 (en) * | 2002-05-10 | 2007-02-06 | Oracle International Corporation | In-database clustering |
JP3701633B2 (ja) * | 2002-06-21 | 2005-10-05 | 株式会社日立製作所 | 複数データベースにまたがる項目パターン抽出方法、ネットワークシステム及び処理装置 |
US7433879B1 (en) * | 2004-06-17 | 2008-10-07 | Versata Development Group, Inc. | Attribute based association rule mining |
US7430643B2 (en) * | 2004-12-30 | 2008-09-30 | Sun Microsystems, Inc. | Multiple contexts for efficient use of translation lookaside buffer |
US7328218B2 (en) * | 2005-03-22 | 2008-02-05 | Salford Systems | Constrained tree structure method and system |
US20070143759A1 (en) * | 2005-12-15 | 2007-06-21 | Aysel Ozgur | Scheduling and partitioning tasks via architecture-aware feedback information |
-
2006
- 2006-04-27 EP EP06722413A patent/EP2011035A4/en not_active Withdrawn
- 2006-04-27 US US10/594,852 patent/US8126911B2/en not_active Expired - Fee Related
- 2006-04-27 WO PCT/CN2006/000829 patent/WO2007124616A1/en active Application Filing
- 2006-04-27 CN CN2006800543919A patent/CN101427248B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6665669B2 (en) * | 2000-01-03 | 2003-12-16 | Db Miner Technology Inc. | Methods and system for mining frequent patterns |
US6816867B2 (en) * | 2001-03-12 | 2004-11-09 | Affymetrix, Inc. | System, method, and user interfaces for mining of genomic data |
Also Published As
Publication number | Publication date |
---|---|
US8126911B2 (en) | 2012-02-28 |
WO2007124616A1 (en) | 2007-11-08 |
EP2011035A4 (en) | 2011-08-24 |
CN101427248A (zh) | 2009-05-06 |
US20090228685A1 (en) | 2009-09-10 |
EP2011035A1 (en) | 2009-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101427248B (zh) | 用于基于内容的分割与挖掘的基于系统的方法 | |
Ji et al. | Mining frequent closed cubes in 3d datasets | |
Solanki et al. | A survey on association rule mining | |
Semple et al. | A supertree method for rooted trees | |
Eyal-Salman et al. | Feature-to-code traceability in a collection of software variants: Combining formal concept analysis and information retrieval | |
Gent et al. | Generalised arc consistency for the alldifferent constraint: An empirical survey | |
Sun et al. | Design and analysis of a reconfigurable platform for frequent pattern mining | |
US11768825B2 (en) | System and method for dependency analysis in a multidimensional database environment | |
Dickerson et al. | Algorithms for proximity problems in higher dimensions | |
Chatziafratis et al. | Maximizing agreements for ranking, clustering and hierarchical clustering via max-cut | |
Güvenoglu et al. | A qualitative survey on frequent subgraph mining | |
Gavruskin et al. | Dynamic algorithms for monotonic interval scheduling problem | |
CN106033447B (zh) | 项集挖掘方法及装置 | |
Yildirim et al. | Mining high-average utility itemsets with positive and negative external utilities | |
Wu et al. | A new approach to mine frequent patterns using item-transformation methods | |
Nanopoulos et al. | Mining association rules in very large clustered domains | |
Moshkov et al. | Common association rules for dispersed information systems | |
Berry et al. | Fast computation of supertrees for compatible phylogenies with nested taxa | |
Gupta et al. | Faster output-sensitive parallel algorithms for 3D convex hulls and vector maxima | |
Hendrix et al. | Theoretical underpinnings for maximal clique enumeration on perturbed graphs | |
Badal et al. | Frequent Data Itemset Mining Using VS_Apriori Algorithms | |
Bu et al. | Reversible Circuit Synthesis Method Using Sub-graphs of Shared Functional Decision Diagrams | |
Reddy et al. | Double Phased Algorithm for Frequent Sub Graph Mining with More Security | |
Bordewich et al. | Extending the limits of supertree methods | |
Roy | Mining Association Rules in Cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130522 Termination date: 20150427 |
|
EXPY | Termination of patent right or utility model |