CN102662948A - 一种快速发现效用模式的数据挖掘方法 - Google Patents
一种快速发现效用模式的数据挖掘方法 Download PDFInfo
- Publication number
- CN102662948A CN102662948A CN2012100425708A CN201210042570A CN102662948A CN 102662948 A CN102662948 A CN 102662948A CN 2012100425708 A CN2012100425708 A CN 2012100425708A CN 201210042570 A CN201210042570 A CN 201210042570A CN 102662948 A CN102662948 A CN 102662948A
- Authority
- CN
- China
- Prior art keywords
- pattern
- node
- prefix
- project
- effectiveness
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000007418 data mining Methods 0.000 title abstract description 6
- 239000011159 matrix material Substances 0.000 claims abstract description 39
- 238000005516 engineering process Methods 0.000 claims abstract description 16
- 238000005065 mining Methods 0.000 claims abstract description 13
- 101100377706 Escherichia phage T5 A2.2 gene Proteins 0.000 claims description 2
- 238000009412 basement excavation Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 235000015170 shellfish Nutrition 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明“一种快速发现效用模式的数据挖掘方法”能从海量数据中发现既具有显著统计特征又符合用户期望与目标的效用模式,在网络信息搜索与知识发现中有广泛应用前景。针对现有方法采用生成候选模式的两阶段法、造成时间与空间开销瓶颈的问题,本发明提出了三项创新技术。一是基于稀疏矩阵和虚拟投影的数据表示,二是前缀生长策略与前缀生长树及其剪裁方法,三是深度优先的动态搜索法,从而设计出单阶段、不生成候选模式、挖掘效用模式的全新挖掘方法。本发明挖掘方法的时间效率比三个参照挖掘方法高1至3个数量级,并且内存使用量少40%到90%。本发明挖掘方法所具有的高性能使得海量Web挖掘、多媒体挖掘、文本挖掘等各种应用成为可能。
Description
技术领域
本发明涉及智能化信息处理领域。本发明设计了一种能从海量数据中发现既具有显著统计特征又符合用户期望与目标的效用模式挖掘方法,在海量数据挖掘特别是网络信息搜索与知识发现,包括Web挖掘、文本挖掘、多媒体挖掘中,有着广泛应用前景。
背景技术
传统数据挖掘技术,特别是频繁模式挖掘技术[1][2],主要根据统计显著性来进行数据分析,比如从超市销售数据中挖掘出购买频率较高的产品组合等,没有考虑到用户的期望或目标,比如用户可能对利润回报较高的产品组合感兴趣。也就是说,在数据挖掘中不仅要考虑数据的统计显著性,还要考虑用户的兴趣或目标[3]。效用模式挖掘技术作为频繁模式挖掘技术的新发展应运而生[4][5][6][7][8].
然而,效用模式挖掘技术还不成熟,只有很少量成果,均采用两阶段法。两阶段法TP首先是由Liu等[4]提出。第一阶段根据事务加权效用TWU向下闭合性质,先找出具有较高TWU的模式从而生成候选模式集合,第二阶段再次扫描数据库来计算各个候选模式的实际效用从而找出效用高于给定阀值的模式。Li等[5]提出了孤立项剔除策略,用于逐层挖掘候选模式的第一阶段,以减少多余候选模式,这样也能提高效率,因为每一层候选模式的计算都可以在一个递减的数据集上进行。
最近,为避免逐层生成候选模式时多遍扫描数据库[4][5]的缺点、以使第一阶段能高效率地生成候选模式,多个研究小组提出基于树的效用模式挖掘方法[6][7][8]。Erwin等[6]提出CTU-PROL挖掘方法,运用事务加权效用TWU向下闭合性质[4]、基于效用模式树CUP-tree和FP-Growth[2]来进行挖掘。Ahmed等[7]提出IHUP挖掘方法,采用IHUP-tree来存储各个事务的TWU信息,改进FP-Growth[2]来挖掘效用模式的候选模式集。CTU-PROL挖掘方法[6]和IHUP挖掘方法[7]在第一阶段生成的候选模式数量和TP[4]相同。Tseng等[8]设计出另一个基于树的UPG挖掘方法,利用UP-tree压缩表达事务的效用信息,提出树结点效用剔除/递减策略来改进事务加权效用TWU向下闭合性质,因而生成较少数量的候选模式。
然而,现有成果都没有跳出两阶段法的框架,尽管也有工作[5][8]试图降低第一阶段生成的候选模式数量。当数据库存在较长的事务记录或给定效用阀值较小时,候选模式的数量还是巨大的。这不仅造成存储空间开销过大,导致第一阶段的可伸缩性瓶颈,对于第二阶段也是如此,并最终导致运行的时间效率低下。
为克服以往挖掘方法的缺陷,本发明提出以下三项创新技术,以摆脱两阶段法的框架,并设计出“一种快速发现效用模式的数据挖掘方法”,从而解决可伸缩性与效率的瓶颈问题。
第一项是基于稀疏矩阵和虚拟投影的数据表示。具体讲,提出稀疏矩阵来表达各个事务效用的完整信息,使得单阶段挖掘成为可能。这种稀疏矩阵表示方法比基于FP-tree[2]的表示方法[6][7][8]更紧凑,避免多遍扫描数据库[4][5]。采用虚拟投影,在不增加任何存储开销的情况下,计算任意模式的效用值。
第二项是前缀生长策略与前缀生长树及其剪裁方法。前缀生长策略与相应的前缀生长树,用于引导效用模式的挖掘过程,并得到效用模式搜索空间剪裁技术的支撑,即通过估算任意子空间的效用值上界,可以有效地剪裁前缀生成树。
第三项是深度优先的动态搜索法。在搜索前缀生长树来发现效用模式的过程中,采用深度优先法来构造当前搜索的分枝,无需在内存中存留完整的前缀生长树、也无需在内存中储存效用模式,因而能进一步降低存储开销。
本发明挖掘方法的时间效率比三个参照挖掘方法[4][7][8]高1至3个数量级,并且内存使用量少40%到90%。本发明挖掘方法具有高性能,可在海量Web挖掘、多媒体挖掘、文本挖掘等各种应用中广泛使用。
参考文献:
[1]R.Agrawal and R.Srikant.Fast algorithms for mining association rules[A].In Proc.of VLDB 1994[C].1994,487-499..
[2]J.Han,J.Pei,Y.Yin.Mining frequent patterns without candidate generation[A].In Proc.of ACM SIGMOD2000[C].Dallas,USA,2000,1-12.
[3]H.Yao,H.J.Hamilton,L.Geng.A unified framework for utility-based measures for mining itemsets[A].InProc.of ACM SIGKDD 2nd Workshop on Utility-Based Data Mining[C].2006,28-37.
[4]Y.Liu,W.Liao,and A.Choudhary.A fast high utility itemsets mining algorithm[A].In Proc.of theUtility-Based Data Mining Workshop in conjunction with the 11th ACM SIGKDD[C].2005,253-262.
[5]Y.-C.Li,J.-S.Yeh,and C.-C.Chang.Isolated items discarding strategy for discovering high utility itemsets[J].Data&Knowledge Engineering,2008,64(1):198-217.
[6]A.Erwin,R.P.Gopalan,and N.R.Achuthan.Efficient mining of high utility itemsets from large datasets[A].In Proc.ofPAKDD 2008[C].2008,554-561.
[7]C.F.Ahmed,S.K.Tanbeer,B.-S.Jeong,and Y.-K.Lee.Efficient tree structures for high utility patternmining in incremental databases[J].IEEE Transactions on Knowledge and Data Engineering,2009,21(12):1708-1721.
[8]V.S.Tseng,C.-W.Wu,B.-E.Shie,P.S.Yu.UP-Growth:an efficient algorithm for high utility itemsetmining[A].In Proc.ofthe 16th ACM SIGKDD[C].2010,253-262.
发明内容
本发明的目的是设计一种能够以最少存貯空间和最快速度、从事务数据库中发现(高)效用模式的挖掘方法,实现在海量数据中的知识发现。
本发明“一种快速发现效用模式的数据挖掘方法”包括三项核心技术:A基于稀疏矩阵和虚拟投影的数据表示,B前缀生长策略与前缀生长树及其剪裁方法,C深度优先的动态搜索法。
本发明挖掘方法根据事务数据库D、效用信息表UT、效用阀值minutil,找出效用值不低于minutil的模式。
本发明内容之一:
给定I={i1,i2,...,im}是所有项目的集合,给定D={t1,t2,...,tn}为数据库,即事务记录的集合。每个事务记录t是一个项目集,即u(i,t)=iu(i,t)·eu(i)是项目i在事务记录t中的效用值,其中iu(i,t)是项目i在事务记录t中的份额,eu(i)是项目i独立于任何事务记录的外生效用。模式X是I的一个子集,如果模式X中的每个项目i在事务t中的份额非0,即iu(i,t)≠0,则模式X被事务记录t所支持,即u(X,t)是模式X在事务记录t中的效用值,取值为则是支持模式X的所有事务记录的集合。u(X)是模式X的总效用,是按公式(A)计算X在所有支持X事务记录中的效用之和。
A基于稀疏矩阵和虚拟投影的数据表示
A1采用一种由线性链表实现的稀疏矩阵,来合并表达数据库D和效用信息表UT,也就是支持空模式{}的事务记录集TS({})及其效用的完整信息。在此矩阵中,行按项目编排、其次序Ω则采用各个项目i的总效用值上界ubound1(i,{})降序,列按事务记录编排、其次序采用事务记录在数据库中的自然序,第i行第t列元素是项目i在事务记录t的效用,即u(i,t)=iu(i,t)·eu(i)。具体步骤如下:
A1.1扫描数据库D第一遍并根据效用信息表UT,按“发明内容B1”的公式(B1.1)计算出各个项目i的效用值上界ubound1(i,{})、并按降序排序后得到项目次序Ω。
A1.2扫描数据库D第二遍,对于读入的每个事务记录t,建立线性链表,一个链表元素存储t中一个项目i的效用值u(i,t),各元素按Ω序排列。该链表即稀疏矩阵的第t列的所有非0元素,称为列链表,记作Φ(t)。
A1.3将各个列链表的元素(即,稀疏矩阵的非0元素)按行链接起来,由Ω兼作稀疏矩阵的行表头。行表头项Ω(i)指向矩阵第i行的首个非0元素。Ω(i)所链接的元素形成行链表。如果Ω(i)所指行链表与列链表Φ(t)具有共同元素,则Φ(t)称作被Ω(i)穿线的列链表。
A2通过虚拟投影,获得任意模式X的支持事务记录集TS(X)。按照项目排序Ω的逆序,对于X中的每个项目i,选取子矩阵的第i行各非零元素所在列组成新的子矩阵,最终得到的子矩阵为TS(X)。由于该子矩阵是嵌入在表示整个数据库的原始矩阵中的,不需要独立的存储空间。具体步骤如下:
A2.1按Ω的逆序,取X中的每个项目i。
A2.1.1将排在i前的矩阵行表头项清空,即对于k<i,Ω(k)置空。
A2.1.2对于Ω(i)穿线的矩阵列链表Φ(t)的排列在i前的各个元素k,将k加入Ω(k)所指的行链表。
A2.2令X按Ω序的第一个元素为i0,则Ω(i0)所穿线的所有列链表细成的子矩阵就是TS(X),即支持模式X的事务记录集。
本发明内容之一的关键点是TS(X)嵌入在TS({})中,因而是一种虚拟投影,无需独立的存储空间,大大提高挖掘方法的空间可伸缩性。
本发明内容之二:
挖掘效用模式的基本思路是枚举每个模式,计算并判定其效用值是否超过阀值minutil。本发明提出一种前缀生长策略来进行模式枚举,这相当于构造一棵前缀生长树,并采用基于效用值定界法来剪裁前缀生长树。
B前缀生长策略与前缀生长树以及剪裁方法
按照构造稀疏矩阵的项目排序Ω,一个模式也可以表示为一个有序列。比如,{a,b,c}也可以当作<a,b,c>,如果Ω正好也符合字典序。因此,集合表示法与序列表示法可以混合使用,集合并操作∪也可以用于两个序列的拼接,比如<a>∪<b,c,d>=<a,b,c,d>。本发明枚举模式的思路是,通过拼接前缀从一个模式得到另一个模式。比如<b,c,d>拼接前缀<a>可以得到<a,b,c,d>。具体讲,前缀生长策略就是将空模式拼接前缀得到长度为1的模式,将长度为1的模式拼接前缀得到长度为2的模式,以此类推。
按前缀生长策略枚举模式相当于构造一棵前缀生长树(Prefix Growth Tree,简称PGT)。每个PGT结点node表示一个项目,记作node.item。树根结点表示“空白”项目,对应“空”模式{}。从node到树根结点的所有项目的集合表示一个模式,记作node.pattern。按Ω序排列在node.item前的每个项目i,都会有node的一个子女结点child来表示,即child.item取i。
B1剪裁前缀生长树PGT结点node的具体操作如下。
B1.1计算node为根的前缀生长子树中各个项目的效用值上界。也就是,对于排列在node.item前的项目i,按公式(B1.1)计算i在模式node.pattern的前缀生长子树中效用值上界,
其中X=node.pattern,TS(X)按“发明内容A2”确定,preEXT(X,t)是事务记录t中所有按Ω排在X前的项目合并成前缀再拼接至X后得到的。可细化为:
B1.1.1对于按“发明内容A2”确定TS(X)中的每个事务记录t,即列链表Φ(t),如果Φ(t)中有元素存储着项目i,则将X中的所有项目以及按Ω序排在X前的所有项目在t中的效用值累计起来得出ubound1(i,X),也就是列链表Φ(t)中相应元素的效用值之和。
B1.1.2如果ubound1(i,X)<minutil,则项目i将不可能出现在作为X=node.pattern前缀的(高)效用模式中,因此将其标记为“无关”项目,否则标记为“有用”项目。
B1.2按公式(B1.2)计算node为根的PGT子树生长中有可能成为(高)效用模式的前缀模式效用值上界。
其中X=node.pattern,TS(X)按“发明内容A2”确定,ppEXT(X,t)是从preEXT(X,t)中剔除“发明内容B1.1.2”标记出来的“无关”项目后得到的。可细化为:
B1.2.1对于按“发明内容A2”确定TS(X)中的每个事务记录t,即列链表Φ(t),将按Ω序排在X前的所有“有用”项目以及X中的所有项目在列链表Φ(t)的相应元素(效用值)累计起来,得出ubound2(X)。
B1.3执行剪裁操作。如果“发明内容B1.2.1”计算出的前缀模式效用值上界低于阀值,即
ubound2(node.pattern)<minutil 公式(B1.3)
则结点node为根的前缀生长子树也以剪裁掉,因为其中不可能存在(高)效用模式。
本发明内容之二的关键点是通过计算效用值上界,剪裁掉不可能存在(高)效用模式的前缀生长子树,可以有效地缩小搜索空间,大大提高挖掘方法的时间效率。
本发明内容之三:
C深度优先的动态搜索法
搜索前缀生长树的过程也就是构造该树的过程,如果按照深度优先次序进行,不仅可以执行“发明内容B1”、剪裁不可能存在(高)效用模式的前缀生长子树,也可以及时清除已搜索完毕的子树、在内存中只存储当前搜索的分枝而不是整棵树,从而实现动态搜索。具体步骤如下:
C1构造前缀生长树PGT的根结点root,root.item置空。建立堆栈traversal,用于实现深度优先的动态搜索。将前缀生长树PGT的根root压入traversal。
C2当traversal非空,即有结点压在其中,执行:
C2.1从traversal弹出栈顶结点存入node。
C2.2如果node具有右侧兄弟结点,贝将该兄弟结点压入traversal。
C2.3执行“发明内容A2”虚拟投影获得支持nodepattern的事务记录集TS(node.pattern)。
C2.4如果u(node.pattern)≥minutil,则node.pattern是一个(高)效用模式。
C2.5执行“发明内容B1”的剪裁。
C2.6如果node没有被剪裁掉,则为“发明内容B1.1.2”标记的每个“有用”项目i建立node的子女结点child,令child.item为i。将第1个子女(从左向右序)压入traversal。
C2.7如果node没有子女结点,则沿从node至根的路径逐个清除node及其前辈结点,直至一个有其他子女的前辈结点。
本发明内容之三的关键点是深度优先搜索能够在“发明内容A”的基础上,进一步提高挖掘方法的空间可伸缩性,使得不生成候选模式而直接挖掘(高)效用模式成为可能。
附图说明
图1集成A基于稀疏矩阵和虚拟投影的数据表示、B前缀生长策略与前缀生长树及其剪裁方法、C深度优先的动态搜索法的工作流程
图2事务数据库D
图3效用信息表UT
图4各个事务记录t对应的列链表Φ(t)
图5一种由线性链表实现的稀疏矩阵
图6剪裁后的前缀生长树(部分)
图7虚拟投影TS({d})后得到的稀疏矩阵
图8控制深度优先动态搜索的traversal栈的瞬时状态
图9前缀生长树PGT的瞬时状态
具体实施方式
本发明“一种快速发现效用模式的数据挖掘方法”提出了三项创新技术。图1概括这三项创新技术的集成路线。
下面结合附图和实例(给定图2所示事务数据库D、图3所示效用信息表UT、效用阀值minutil=30),将技术方案分为两个过程做进一步描述。
过程一:采用一种由线性链表实现的稀疏矩阵,来合并表达数据库D和效用信息表UT,也就是支持空模式{}的事务记录集TS({})及其效用的完整信息(“发明内容A1”)。
过程一的具体步骤如下:
1.1ScanDatabaseOnceforOmega:执行“发明内容步骤A1.1”。
扫描数据库D第一遍并根据效用信息表UT,按“发明内容B1”的公式(B1,1)计算出各个项目i的效用值上界ubound1(i,{})。
例如,对于图2所示事务数据库D、图3所示效用信息表UT,计算结果为:ubound1(a,{})=96,ubound1(b,{})=88,ubound1(c,{})=65,ubound1(d,{})=61,ubound1(e,{})=58,ubound1(f,{})=38,和ubound1(g,{})=30。
按效用值上界ubound1(i,{})降序排序后得到项目次序Ω。
例如,Ω=<a,b,c,d,e,f,g>。
1.2CreateSparseMatrix:执行“发明内容步骤A1.2至A1.3”。
扫描数据库D第二遍,对于读入的每个事务记录t,建立线性链表,一个链表元素存储t中一个项目i的效用值u(i,t),各元素按Ω序排列。该链表即稀疏矩阵的第t列的所有非0元素,称为列链表,记作Φ(t)。
例如,事务记录t1到t5对应的列链表Φ(t1)到Φ(t5)如图4所示。
将各个列链表的元素按行链接起来,由Ω兼作行表头。行表头项Ω(i)指向矩阵第i行的首个非0元素。Ω(i)所链接的元素形成行链表。
例如,图5所示为按行链接后,得到的稀疏矩阵,完整地表达TS({})相关的效用信息。
过程二:采用深度优先动态搜索法(“发明内容C”),遍历前缀生长树来枚举模式(“发明内容B”),通过虚拟投影得到所枚举模式的支持事务集(“发明内容A2”),计算效用值、并按效用值上界来剪裁搜索空间(“发明内容B1”),在此过程中发现所有(高)效用模式。
例如,图6所示的经剪裁后的部分前缀生长树PGT记录着过程二的执行。图中的PGT结点的标注有两类:第一类只标项目,这类结点没有实际生长,所以还加有删除线;第二类同时标项目和支持事务记录集,这类结点实际生长并执行虚拟投影。
过程二的具体步骤如下:
2.1CreatePGTnullroot:构造前缀生长树PGT的根结点root,root.item置空。建立堆栈traversal,将root压入traversal。
例如,在图6的“空,TS({})”结点就是root。
2.2当traversal非空,执行:
2.2.1PopTopElementoutofStack:从traversal弹出栈顶结点存入node。
2.2.2PushRightSiblingintoStack:如果node具有右侧兄弟结点,则将该兄弟结点压入traversal。
例如,在访问到图6的“d,TS({d})”结点时,就会将“e,TS({e})”结点压traversal,因为后者是前者的右侧兄弟结点。
2.2.3GetTSforCurrentNode:获取支持node.pattern的事务记录集TS(node.pattern),即通过稀疏矩阵的行表头项Ω(node.item)能够访问到的所有列链表。特别需要指明,如果node.item为空,即node为前缀生长树PGT的根结点,则通过特别的行表头项“Ω(空)”访问“过程一”所建立TS({})的所有列链表。
例如,在访问到图6的“d,TS({d})”结点时,通过图5的稀疏矩阵行表头项Ω(d)可以链接到列链表Φ(t3),Φ(t4)和Φ(t5),即组成TS({d})的所有事务记录。
2.2.4ComputeUtilitiesandUpperBounds:对于排列在node.item前每个项目i,按公式(A)计算i作为前缀与node.pattern拼接得到的模式Y={i}∪node.pattern的效用值,如果u(Y)≥minutil,则Y是一个(高)效用模式;按公式(B1.1)计算ubound1(i,node.pattern),如果ubound1(i,node.pattern)<minutil,则i标记为“无关”项目,否则标记为“有用”项目。
例如,在访问到图6的“d,TS({d})”结点时,可以计算出:u({a,d})=22<minutil,u({b,d})=25<minutil,u({c,d})=9<minutil,所以{a,d}、{b,d}、{c,d}均不是(高)效用模式。同时可以计算出:ubound1(a,{d})=36≥minutil,ubound1(b,{d})=36≥minutil,ubound1(c,{d})=13<minutil,所以a和b是“有用”项目,c是“无关”项目。
2.2.5PseudoProjection:执行“发明内容A2”虚拟投影,为node的即将建立的子女结点们准备事务支持集,即首先将排在i前的矩阵行表头项清空,即对于k<i,Ω(k)置空。然后,从Ω(node.item)出发,逐一访问所链接到的每个列链表Φ(t),将Φ(t)中排列在i前的各个元素k加入Ω(k)所指的行链表。
例如,在访问到图6的“d,TS({d})”结点时,通过虚拟投影TS({d})后得到的稀疏矩阵如图7所示。需要特别说明,虚拟投影后的矩阵与原矩阵共用同一存貯空间,支持e的Φ(t1)和支持f的Φ(t2)仍可通过Ω(e)和Ω(f)访问到。
2.2.6PruneChildrenwithSmallUppersandGrowOthers:执行“发明内容B1”的剪裁。即按公式(B1.2)计算各个“有用”项目i与node.pattern拼接得到的模式Y={i}∪node.pattern的效用值上界。如果ubound2(Y)<minutil,则与Y相对应的前缀生长子树中不可能存在(高)效用模式,因此相应子女结点不必生长,即可以剪裁掉,否则为node建立子女结点child,令child.item取i。
例如,在访问到图6的“d,TS({d})”结点时,c是“无关”项目,自然被剪裁掉。按公式(B1.2)计算出:ubound2({a,d})=22<minutil和ubound2({b,d})=31≥minutil,所以不必为项目a生长子女结点,只为b生长子女结点,即图6的“b,TS(b,d)”结点。
2.2.7PushFirstChildintoStackorPurgePath:如果node有子女结点,则是将node的第1个子女压入traversal,否则沿从node至根的路径逐个清除node及其前辈结点,直至一个有其他子女的前辈结点。
例如,在访问到图6的“a,TS({a,b,d})”结点时,{a,b,d}已在上一步计算时确定为一个(高)效用模式(效用值等于31≥minutil)。由于没有子女结点,所以从此结点到根的整条路径可以删除。在此时,traversal栈中的唯一元素是“e,TS({e})”结点(实为指向该结点的地址指针),参见图8。内存中实际存储的前缀生长树分枝为根结点以及三个还没有访问的子女结点“e,TS({e})”、“f,TS({f})”和“g,TS({g})”结点,参见图9。
性能测评:本发明“一种快速发现效用模式的数据挖掘方法”的性能测评实验表明,本发明挖掘方法的时间效率比三个参照挖掘方法高1至3个数量级,并且内存使用量少40%到90%。
小结:本发明设计了“一种快速发现效用模式的数据挖掘方法”。采用基于稀疏矩阵和虚拟投影的数据表示使得支持效用模式的事务记录集使用的存贮开销最低,保证挖掘方法的空间可伸缩性。采用前缀生长策略与前缀生长树及其剪裁方法,保证挖掘方法的时间效率。采用深度优先的动态搜索法,进一步提高挖掘方法的空间可伸缩性,从而不生成候选模式集合而在单阶段直接挖掘(高)效用模式。本发明挖掘方法在海量数据挖掘特别是网络信息搜索与知识发现中有广泛应用前景。
Claims (4)
1.一种快速发现效用模式的数据挖掘方法,根据事务数据库D、效用信息表UT、效用阀值minutil,以最少存貯空间和最快速度找出效用值不低于minutil的模式,包括以下三项核心技术的具体方法流程:
A基于稀疏矩阵和虚拟投影的数据表示。
B前缀生长策略与前缀生长树及其剪裁方法。
C深度优先的动态搜索法。
2.根据权利要求1所述的一种快速发现效用模式的数据挖掘方法,核心技术A的具体方法流程如下:
A1采用一种由线性链表实现的稀疏矩阵,来合并表达数据库D和效用信息表UT,也就是支持空模式{}的事务记录集TS({})及其效用的完整信息。在此矩阵中,行按项目编排、其次序Ω则采用各个项目i的总效用值上界ubound1(i,{})降序,列按事务记录编排、其次序采用事务记录在数据库中的自然序,第i行第t列元素是项目i在事务记录t的效用,即u(i,t)=iu(i,t)·eu(i)。具体步骤如下:
A1.1扫描数据库D第一遍并根据效用信息表UT,按“发明内容B1”的公式(B1.1)计算出各个项目i的效用值上界ubound1(i{})、并按降序排序后得到项目次序Ω。
A1.2扫描数据库D第二遍,对于读入的每个事务记录t,建立线性链表,一个链表元素存储t中一个项目i的效用值u(i,t),各元素按Ω序排列。该链表即稀疏矩阵的第t列的所有非0元素,称为列链表,记作Φ(t)。
A1.3将各个列链表的元素(即,稀疏矩阵的非0元素)按行链接起来,由Ω兼作稀疏矩阵的行表头。行表头项Ω(i)指向矩阵第i行的首个非0元素。Ω(i)所链接的元素形成行链表。如果Ω(i)所指行链表与列链表Φ(t)具有共同元素,则Φ(t)称作被Ω(i)穿线的列链表。
A2通过虚拟投影,获得任意模式X的支持事务记录集TS(X)。按照项目排序Ω的逆序,对于X中的每个项目i,选取子矩阵的第i行各非零元素所在列组成新的子矩阵,最终得到的子矩阵为TS(X)。由于该子矩阵是嵌入在表示整个数据库的原始矩阵中的,不需要独立的存储空间。具体步骤如下:
A2.1按Ω的逆序,取X中的每个项目i。
A2.1.1将排在i前的矩阵行表头项清空,即对于k<i,Ω(k)置空。
A2.1.2对于Ω(i)穿线的矩阵列链表Φ(t)的排列在i前的各个元素k,将k加入Ω(k)所指的行链表。
A2.2令X按Ω序的第一个元素为i0,则Ω(i0)所穿线的所有列链表组成的子矩阵就是TS(X),即支持模式X的事务记录集。
3.根据权利要求1所述的一种快速挖掘效用模式的单阶段方法,核心技术B的具体方法流程如下:
按照构造稀疏矩阵的项目排序Ω,一个模式也可以表示为一个有序列。比如,{a,b,c}也可以当作<a,b,c>,如果Ω正好也符合字典序。因此,集合表示法与序列表示法可以混合使用,集合并操作∪也可以用于两个序列的拼接,比如<a>∪<b,c,d>=<a,b,c,d>。本发明枚举模式的思路是,通过拼接前缀从一个模式得到另一个模式。比如<b,c,d>拼接前缀<a>可以得到<a,b,c,d>。具体讲,前缀生长策略就是将空模式拼接前缀得到长度为1的模式,将长度为1的模式拼接前缀得到长度为2的模式,以此类推。
按前缀生长策略枚举模式相当于构造一棵前缀生长树(Prefix Growth Tree,简称PGT)。每个PGT结点node表示一个项目,记作node.item。树根结点表示“空白”项目,对应“空”模式{}。从node到树根结点的所有项目的集合表示一个模式,记作node.pattern。按Ω序排列在node.item前的每个项目i,都会有node的一个子女结点child来表示,即child.item取i。
B1剪裁前缀生长树PGT结点node的具体操作如下。
B1.1计算node为根的前缀生长子树中各个项目的效用值上界。也就是,对于排列在node.item前的项目i,按公式(B1.1)计算i在模式node.pattern的前缀生长子树中效用值上界,
其中X=node.pattern,TS(X)按“发明内容A2”确定,preEXT(X,t)是事务记录t中所有按Ω排在X前的项目合并成前缀再拼接至X后得到的。可细化为:
B1.1.1对于按“发明内容A2”确定TS(X)中的每个事务记录t,即列链表Φ(t),如果Φ(t)中有元素存储着项目i,则将X中的所有项目以及按Ω序排在X前的所有项目在t中的效用值累计起来得出ubound1(i,X),也就是列链表Φ(t)中相应元素的效用值之和。
B1.1.2如果ubound1(i,X)<minutil,则项目i将不可能出现在作为X=node.pattern前缀的(高)效用模式中,因此将其标记为“无关”项目,否则标记为“有用”项目。
B1.2按公式(B1.2)计算node为根的PGT子树生长中有可能成为(高)效用模式的前缀模式效用值上界。
其中X=node.pattern,TS(X)按“发明内容A2”确定,ppEXT(X,t)是从preEXT(X,t)中剔除“发明内容B1.1.2”标记出来的“无关”项目后得到的。可细化为:
B1.2.1对于按“发明内容A2”确定TS(X)中的每个事务记录t,即列链表Φ(t),将按Ω序排在X前的所有“有用”项目以及X中的所有项目在列链表Φ(t)的相应元素(效用值)累计起来,得出ubound2(X)。
B1.3执行剪裁操作。如果“发明内容B1.2.1”计算出的前缀模式效用值上界低于阀值,即
ubound2(node.pattern)<minutil 公式(B1.3)
则结点node为根的前缀生长子树也以剪裁掉,因为其中不可能存在(高)效用模式。
4.根据权利要求1所述的一种快速挖掘效用模式的单阶段方法,核心技术C的具体方法流程如下:
搜索前缀生长树的过程也就是构造该树的过程,如果按照深度优先次序进行,不仅可以执行“发明内容B1”、剪裁不可能存在(高)效用模式的前缀生长子树,也可以及时清除已搜索完毕的子树、在内存中只存储当前搜索的分枝而不是整棵树,从而实现动态搜索。具体步骤如下:
C1构造前缀生长树PGT的根结点root,root.item置空。建立堆栈traversal,用于实现深度优先的动态搜索。将前缀生长树PGT的根root压入traversal。
C2当traversal非空,即有结点压在其中,执行:
C2.1从traversal弹出栈顶结点存入node。
C2.2如果node具有右侧兄弟结点,则将该兄弟结点压入traversal。
C2.3执行“发明内容A2”虚拟投影获得支持node.pattern的事务记录集TS(node.pattern)。
C2.4如果u(node.pattern)≥minutil,则node.pattern是一个(高)效用模式。
C2.5执行“发明内容B1”的剪裁。
C2.6如果node没有被剪裁掉,则为“发明内容B1.1.2”标记的每个“有用”项目i建立node的子女结点child,令child.item为i。将第1个子女(从左向右序)压入traversal。
C2.7如果node没有子女结点,则沿从node至根的路径逐个清除node及其前辈结点,直至一个有其他子女的前辈结点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100425708A CN102662948A (zh) | 2012-02-23 | 2012-02-23 | 一种快速发现效用模式的数据挖掘方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012100425708A CN102662948A (zh) | 2012-02-23 | 2012-02-23 | 一种快速发现效用模式的数据挖掘方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102662948A true CN102662948A (zh) | 2012-09-12 |
Family
ID=46772439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100425708A Pending CN102662948A (zh) | 2012-02-23 | 2012-02-23 | 一种快速发现效用模式的数据挖掘方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662948A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607412A (zh) * | 2013-12-04 | 2014-02-26 | 西安电子科技大学 | 基于树的内容中心网络多个兴趣包处理方法 |
CN105868296A (zh) * | 2016-03-24 | 2016-08-17 | 银江股份有限公司 | 一种基于快速剪枝策略的高效用序列模式的用药ddd值数据分析方法 |
CN106250549A (zh) * | 2016-08-14 | 2016-12-21 | 重庆大学 | 一种基于内存的频繁模式挖掘方法 |
CN107870939A (zh) * | 2016-09-27 | 2018-04-03 | 腾讯科技(深圳)有限公司 | 一种模式挖掘方法及装置 |
WO2018059298A1 (zh) * | 2016-09-27 | 2018-04-05 | 腾讯科技(深圳)有限公司 | 模式挖掘方法、高效用项集挖掘方法及相关设备 |
CN108153859A (zh) * | 2017-12-24 | 2018-06-12 | 浙江工商大学 | 一种基于Hadoop与Spark的效用次序并行确定方法 |
CN108733705A (zh) * | 2017-04-20 | 2018-11-02 | 哈尔滨工业大学深圳研究生院 | 一种高效用序列模式挖掘方法及装置 |
-
2012
- 2012-02-23 CN CN2012100425708A patent/CN102662948A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103607412A (zh) * | 2013-12-04 | 2014-02-26 | 西安电子科技大学 | 基于树的内容中心网络多个兴趣包处理方法 |
CN103607412B (zh) * | 2013-12-04 | 2016-07-06 | 西安电子科技大学 | 基于树的内容中心网络多个兴趣包处理方法 |
CN105868296A (zh) * | 2016-03-24 | 2016-08-17 | 银江股份有限公司 | 一种基于快速剪枝策略的高效用序列模式的用药ddd值数据分析方法 |
CN105868296B (zh) * | 2016-03-24 | 2019-02-05 | 银江股份有限公司 | 一种基于快速剪枝策略的高效用序列模式的用药ddd值数据分析方法 |
CN106250549A (zh) * | 2016-08-14 | 2016-12-21 | 重庆大学 | 一种基于内存的频繁模式挖掘方法 |
CN106250549B (zh) * | 2016-08-14 | 2019-09-20 | 重庆大学 | 一种基于内存的频繁模式挖掘方法 |
CN107870939A (zh) * | 2016-09-27 | 2018-04-03 | 腾讯科技(深圳)有限公司 | 一种模式挖掘方法及装置 |
WO2018059298A1 (zh) * | 2016-09-27 | 2018-04-05 | 腾讯科技(深圳)有限公司 | 模式挖掘方法、高效用项集挖掘方法及相关设备 |
CN108733705A (zh) * | 2017-04-20 | 2018-11-02 | 哈尔滨工业大学深圳研究生院 | 一种高效用序列模式挖掘方法及装置 |
CN108153859A (zh) * | 2017-12-24 | 2018-06-12 | 浙江工商大学 | 一种基于Hadoop与Spark的效用次序并行确定方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662948A (zh) | 一种快速发现效用模式的数据挖掘方法 | |
Lin et al. | An efficient algorithm to mine high average-utility itemsets | |
Wang et al. | On efficiently mining high utility sequential patterns | |
Liu et al. | Mining high utility itemsets without candidate generation | |
Tseng et al. | UP-Growth: an efficient algorithm for high utility itemset mining | |
US9195699B2 (en) | Method and apparatus for storage and retrieval of information in compressed cubes | |
Ahmed et al. | HUC-Prune: an efficient candidate pruning technique to mine high utility patterns | |
Yun et al. | Approximate weighted frequent pattern mining with/without noisy environments | |
CN111506621B (zh) | 一种数据统计方法及装置 | |
CN101430708A (zh) | 一种基于标签聚类的博客层次分类树构建方法 | |
Ryang et al. | Fast algorithm for high utility pattern mining with the sum of item quantities | |
TWI464608B (zh) | 快速尋找高效益項目集的資料探勘演算法 | |
CN105893382A (zh) | 一种基于先验知识的微博用户群体划分方法 | |
CN105893381A (zh) | 一种基于半监督标签传播的微博用户群体划分方法 | |
JPWO2009095981A1 (ja) | 表からツリー構造データを構築する方法及び装置 | |
Zhang et al. | On-shelf utility mining of sequence data | |
Jiang et al. | Incremental evaluation of top-k combinatorial metric skyline query | |
Kumar et al. | Sequential pattern mining with multiple minimum supports by MS-SPADE | |
KR20120078908A (ko) | NoSQL 기반 데이터 모델링 방법 | |
US20080114752A1 (en) | Querying across disparate schemas | |
CN102708285A (zh) | 基于复杂网络模型并行化PageRank算法的核心药物挖掘方法 | |
Guo et al. | HUITWU: An efficient algorithm for high-utility itemset mining in transaction databases | |
Abdullah et al. | Visualizing the construction of incremental disorder trie itemset data structure (DOSTrieIT) for frequent pattern tree (FP-Tree) | |
de Castro Lima et al. | Multidimensional cyclic graph approach: representing a data cube without common sub-graphs | |
CN107609110B (zh) | 基于分类树的最大多样频繁模式的挖掘方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120912 |