快速寻找高效用项目集的数据挖掘演算方法

文档序号:6349477阅读:184来源:国知局
专利名称:快速寻找高效用项目集的数据挖掘演算方法
技术领域
本发明涉及一种数据挖掘演算方法,特别是关于一种可快速寻找高效用项目集 (High Utility Itemset, HUI)的数据挖掘演算方法,亦可称之为吸附式挖掘(Adsorptive Mining)演算方法。
背景技术
数据挖掘被广泛应用在生活各个角落当中,举凡商业、医疗、教育等等,都不难见到数据挖掘的足迹。然而过去频繁项目集挖掘[I]着重在各项目出现在交易数据库中的频率,而没有考量到每笔交易中项目被购买的数量以及利润。对于一家商店来说,通过频繁项目集挖掘可以知道顾客最常购买的商品组合,可是最常购买的商品往往不是获利最高的商品,因为获利最高的商品有可能是不常被购买的商品。举例来说,牛奶跟面包一起被购买的交易可能占了 6%的交易笔数,是最常一起被购买的商品组合,但是可能只贡献了营收的 1% ;然而,含有饮料跟泡面一起被购买的交易,虽然只占了 2%交易笔数,但是可能贡献高达7%的营收。因此,商家可以把有限的行销运算,用来行销高获利商品组合,将会比行销最常被一起购买的商品来得更有助益。这些高获利商品组合,我们称之为高效用项目集(High Utility Itemset,HUI),其定义如下[5]:令I = {il,i2,· · ·,im}为所有项目的集合,X为 I的子集,称为项目集。一项目集的长度为此项目集所包含的项目个数。D= {T1,T2,..., Τη}是一交易数据库,其中Ti (I ^ i ^n)为一笔交易,包含一项目集以及此项目集中每一项目被购买的数量。交易Tq中某项目ip的被购买数量记录为ο (ip, Tq)。一个项目ip在交易 Tq 的效用(Utility)为 u(ip, Tq) = o (ip, Tq) Xs (ip)。其中 s(ip)是项目 ip 的单位利润。一个项目集X在交易Tq中的效用为X中各项目在Tq的效用总和,如下列方程式
(I)所示。若Xd Tq,则X在Tq的效用为O。项目集X在数据库D中的效用为X在包含X的所有交易的效用总和,如下列方程式(2)所示。若一项目集X在数据库D中的效用达到最小效用(Minimum Utility, MU),则X为一高效用项目集。
权利要求
1.一种快速寻找高效用项目集的数据挖掘演算方法,其特征在于,包括下列步骤(a)第一次扫描数据库,计算至少一交易数据库中各项目的交易权重效用及出现笔数, 并将该交易权重效用大于一最小效用的该项目依据该出现笔数由大到小排序;(b)第二次扫描数据库,将每笔交易依据新交易的项目顺序重新排序,并计算每一该项目在该笔交易的效用,删除该交易权重效用小于该最小效用的项目,并记录该笔交易的每一该项目及其效用,且一项目集为该项目的集合;(C)建立初始吸附挖掘树形结构,并将效用达到该最小效用的该项目集输出作为一高效用项目集;(d)该项目集的封闭效用达到该最小效用时,该项目集定义为高封闭效用项目集,并判断是否有该高封闭效用项目集未建立一条件吸附挖掘树形结构。若是,进行步骤(e);若否,进行步骤(f);(e)建立该高封闭效用项目集的条件吸附挖掘树形结构,以输出该条件吸附挖掘树形结构中所有的高效用项目集,并产生其他可能的高封闭效用项目集,以继续进行步骤(d) 的判断步骤;以及(f)所有该高效用项目集已产生完毕,结束整个流程。
2.如权利要求I所述的数据挖掘演算方法,其特征在于,于步骤(a)中,该项目的该出现笔数相同的,则依据该项目的字母由小到大排序。
3.如权利要求I所述的数据挖掘演算方法,其特征在于,该项目集X= {xl, . . . , xn} 在该笔交易Tqg X的交易封闭区段TCS,该交易封闭区段TCS (Tq,X)为在该交易Tq中排序 order小于xj(V j,l ^ j ^ η)的所有项目与项目集X所成的集合,如下列方程式所示TCS (Tq, X) = {i I i e Tq Λ order (i) < order (xl)} U X ;其中,若TCS(Tq7X) Φ Χ|,则TCS(Tq,X)为该项目集X的真交易封闭区段。
4.如权利要求3所述的数据挖掘演算方法,其特征在于,该项目集X在该交易Tq的交易封闭效用TCU,该交易封闭效用TCU(Tq,X)为该真交易封闭区段中所有项目在该交易Tq 的效用总和,如下列方程式所示
5.如权利要求4所述的数据挖掘演算方法,其特征在于,该项目集X在该交易数据库D 中的封闭效用CU,该封闭效用CU(X)为该项目集X在该交易数据库中所有该交易封闭效用的总和,如下列方程式所示
6.如权利要求I所述的数据挖掘演算方法,其特征在于,该项目集X的长度为K 时,定义该项目集X = {xl, , xk},其封闭超集为该项目集X联集任一排序小于所有 xi (I ≤ i ≤ k)的该项目所成的集合;以及该项目集X的封闭子集(Closure Subset)则为该项目集X中删除排序最小的该项目所成的集合。
7.如权利要求I所述的数据挖掘演算方法,其特征在于,于步骤(c)中输出的该高效用项目集的长度为一。
8.如权利要求I所述的数据挖掘演算方法,其特征在于,于步骤(C)建立该初始吸附挖掘树形结构的步骤更包括(1)读取交易数据,放入第一笔交易数据Tl= {il, 2,..., in};(2)建立根节点的子节点il,以及ij的子节点ij+l(Vj, I ^ j ^ n-1),并在节点 ik (2 ^ k ^ η)纪录(il :u (il, Tl),i2:u(i2, Tl),. . .,ik:u (ik, Tl));(3)将该交易数据Tl中每一项目的效用与交易封闭效用记录在一项目效用表;(4)判断是否还有下一笔交易数据Tj= {jl,j2,· · ·,jm}:(i)若否,则输出该项目效用表中,项目效用大于该最小效用MU的该项目作为该高效用项目集,并进行步骤(5);以及( )若是,则检查该根节点是否有子节点jl,若无,则回到步骤⑴;若有,则先设定k 值等于I,再继续检查节点jk是否有子节点jk+Ι,直至检查完所有该节点jk为止,以对每一该项目jk(l < k < m),分别累加jk在该交易数据Tj的该交易封闭效用与效用到jk在该项目效用表中的封闭效用与效用中,并回到步骤(4);以及(5)对该项目效用表中,每一个该高封闭效用项目集,从该项目效用表中项目X的连结取出所有项目X的节点所记录的项目效用,再以该项目集{x}为开头,形成与该项目X相关的子数据库,以完成该初始吸附挖掘树形结构的建立。
9.如权利要求8所述的数据挖掘演算方法,其特征在于,于步骤(ii)中检查节点jk是否有子节点jk+Ι的步骤中,更包括若该节点jk有子节点jk+Ι时,直接在该子节点jk+Ι各别累加jl,, jk, jk+Ι在该笔交易的效用到jk+Ι所记录的jl,. . . , jk, jk+Ι的效用上,并将k值加I,再判断该k值是否等于m值,若该k值不等于m值,则回到步骤(ii)重复进行检查该节点jk是否有该子节点jk+Ι ;若k值等于m值,即表示检查完所有该节点jk ;以及若该节点jk无子节点jk+Ι时,则建立jk的子节点jk+Ι,并在该子节点jk+Ι分别记录 jl,...,jk,jk+Ι在该交易数据Tj的效用,并将k值加I,再判断该k值是否等于m值,若该k值不等于该m值,则回到步骤(ii)重复进行检查该节点jk是否有该子节点jk+Ι ;若让值等于m值,即表示检查完所有该节点jk。
10.如权利要求8所述的数据挖掘演算方法,其特征在于,于步骤(5)中,更包括对于该子数据库的每一笔记录为{x:ux, il:ul,. . . , in:un},以预备建立该项目集{x}的条件吸附挖掘树形结构。
11.如权利要求I所述的数据挖掘演算方法,其特征在于,于步骤(e)建立该条件吸附挖掘树形结构的步骤更包括(1)读取交易数据,放入第一笔交易数据Tl= {xl, x2, . . . , xk, il, i2, . . . , in};(2)建立根节点的子节点il,以及ij的子节点ij+l(V j, I ^ j ^ n-1),并在节点 ik (2 < k < n)纪录(xl :u (xl, Tl), x2:u(x2, Tl), ...,xk:u (xk, Tl), il :u (il, Tl), i2:u(i2, Tl),· · ·,ik:u(ik, Tl));(3)将该交易数据Tl中每一项目与该项目集X的效用与交易封闭效用记录在一项目效用表中;(4)判断是否还有下一笔交易数据Tj= {xl, x2, . . . , xk, jl, j2, . . . , jm}(i)若否,则输出该项目效用表中,项目效用大于该最小效用MU的该项目作为该高效用项目集,并进行步骤(5);以及(ii)若是,则检查该根节点是否有子节点jl,若无,则回到步骤⑴;若有,则先设定k 值等于1,再继续检查节点jk是否有子节点jk+Ι,直至检查完所有该节点jk为止,以对每一该项目jk(l < k < m),分别累加{xl,x2,. . . ,xk, jk}在该交易数据Tj的该交易封闭效用与效用到jk在该项目效用表中的封闭效用与效用中,并回到步骤(4);以及(5)对该项目效用表中,每一个该高封闭效用项目集,从该项目效用表中项目X的连结取出所有项目X的节点所记录的项目效用,再以该项目集{y}为开头,形成与该项目集Xy ={y,xl,χ2, ... , xk}相关的子数据库,以完成该条件吸附挖掘树形结构的建立。
12.如权利要求11所述的数据挖掘演算方法,其特征在于,于步骤(ii)中检查节点jk 是否有子节点jk+Ι的步骤中,更包括若该节点jk有子节点jk+Ι时,直接在该子节点jk+Ι各别累加xl,x2,. . . ,xk, jl,..., jk, jk+1在该笔交易的效用到jk+Ι所记录的xl, x2, . . . , xk, jl, . . . , jk, jk+1的效用上, 并将k值加1,再判断该k值是否等于m值,若该k值不等于m值,则回到步骤(ii)重复进行检查该节点jk是否有该子节点jk+Ι ;若k值等于m值,即表示检查完所有该节点jk ;以及若节点jk无子节点jk+Ι时,则建立jk的子节点jk+Ι,并在该子节点jk+Ι分别记录 xl, x2, . . . , xk, jl, . . . , jk, jk+1在该交易数据Tj的效用,并将k值加I,再判断该k值是否等于m值,若该k值不等于该m值,则回到步骤(ii)重复进行检查该节点jk是否有该子节点jk+Ι ;若该k值等于该m值,即表示检查完所有该节点jk。
13.如权利要求11所述的数据挖掘演算方法,其特征在于,于步骤(5)中,更包括对于该子数据库的每一笔记录为{y:uy, xl :uxl, . . . , xk:uxk, il :ul, ... , in:un},以预备建立该项目集Xy = {y,xl, χ2,... , xk}的条件吸附挖掘树形结构。
14.如权利要求I所述的数据挖掘演算方法,其特征在于,该初始吸附挖掘树形结构或条件吸附挖掘树形结构更可为一压缩吸附挖掘树形结构。
15.如权利要求I所述的数据挖掘演算方法,其特征在于,建立该压缩吸附挖掘树形结构的步骤更包括(1)读取交易数据,放入第一笔交易数据Tl,并设Tl在原吸附挖掘树访问路径为根节点一il — · · · — in ;(2)建立根节点的子节点il,以及ij的子节点ij+1( Vj, I ^ j ^ n-1),并在最后一个节点in纪录所应记载的项目效用信息,并将节点ik( V k,2彡k彡n-1)设定连结指向该节点in ;(3)将该交易数据Tl中每一项目的效用与交易封闭效用记录在一项目效用表;(4)判断是否还有下一笔交易数据Tj,并设Tj在原吸附挖掘树访问路径为根节点 —i' I —i' m:若是,继续进行下一步骤,若否,则结束整个流程;(5)检查根节点是否有子节点i'I :若无,则返回步骤(I)继续读取下一笔交易数据; 若有,则表示已经存在有路径根节点一i' I —i' j(l彡j彡m),而无i' j的子节点P j+Ι,将交易项目效用信息,累加记载在该路径上原先已记载项目效用的各节点上,并假设存在节点P P为该路径上原先存有记载项目效用的最后一个节点,若该路径上无任何已经记载该项目效用的节点,也就是节点i' P不存在,则假设节点i, P为i, 1,并继续下一步骤;(6)判断该节点i' j是否已记录该项目效用信息(i)若是,直接累加所应该记录的效用于该节点Pj上;以及(ii)若否,则在该节点i,j通过指标提取所应记载项目效用信息的节点的效用信息累加该笔交易的项目效用信息记载在该节点P j,并将节点P k(Vk,p<k^ j-Ι)设定连结指向该节点i ' j ;(7)判断是否m>j :若是,进行下一步骤(8),若否,则直接进行步骤(9);(8)建立该节点i' k的子节点i ' k+1 ( Vk, j < k彡m-1),并在该节点i ' m分别记录所有项目在该交易数据Tj的效用,并在该节点i' k(Vk, j <k^m-l)建立指标连结指向该节点i' m;以及(9)将该交易数据T中每一项目的效用与交易封闭效用记录在该项目效用表中,并继续回到步骤(4)。
16.一种使用于数据挖掘演算方法的压缩吸附挖掘树形结构的建立方法,其特征在于, 包括下列步骤(1)读取交易数据,放入第一笔交易数据Tl,并设Tl在原吸附挖掘树访问路径为根节点一il — · · · — in ;(2)建立根节点的子节点il,以及ij的子节点ij+1( Vj, I ^ j ^ n-1),并在最后一个节点in纪录所应记载的项目效用信息,并将节点ik( V k,2彡k彡n-1)设定连结指向该节点in ;(3)将该交易数据Tl中每一项目的效用与交易封闭效用记录在一项目效用表;(4)判断是否还有下一笔交易数据Tj,并设Tj在原吸附挖掘树访问路径为根节点 —i' I —i' m:若是,继续进行下一步骤,若否,则结束整个流程;(5)检查根节点是否有子节点i'I :若无,则返回步骤(I)继续读取下一笔交易数据; 若有,则表示已经存在有路径根节点一i' I —i' j(l彡j彡m),而无i' j的子节点P j+Ι,将交易项目效用信息,累加记载在该路径上原先已记载项目效用的各节点上,并假设存在节点P P为该路径上原先存有记载项目效用的最后一个节点,若该路径上无任何已经记载该项目效用的节点,也就是节点i' P不存在,则假设节点i, P为i, 1, 并继续下一步骤;(6)判断该节点i'j是否已记录该项目效用信息(i)若是,直接累加所应该记录的效用于该节点Pj上;以及(ii)若否,则在该节点i,j通过指标提取所应记载项目效用信息的节点的效用信息累加该笔交易的项目效用信息记载在该节点P j,并将节点P k(Vk,p<k^ j-Ι)设定连结指向该节点i ' j ;(7)判断是否m>j :若是,进行下一步骤(8),若否,则直接进行步骤(9);(8)建立该节点i' k的子节点i ' k+1 ( Vk, j < k彡m-1),并在该节点i ' m分别记录所有项目在该交易数据Tj的效用,并在该节点ik( Vk, j < k彡m-1)建立指标连结指向该节点i' m;以及(9)将该交易数据T中每一项目的效用与交易封闭效用记录在该项目效用表中,并继续回到步骤(4)。
全文摘要
本发明提供一种快速寻找高效用项目集的数据挖掘演算方法,其将交易数据与项目的效用记录在一个树形结构,建立树形结构的方式即是自节点纪录从根节点到此节点所出现过的项目效用,并利用一些技巧缩小计算的范围,不需要产生候选项目集,就能直接从树形结构中找到高效用项目集,大幅度缩小挖掘计算范围。本发明的演算方法效率明显比目前效率最好的演算方法更有效率。再者,本发明另外提出压缩的方式,可节省大量的储存空间。
文档编号G06F17/30GK102591900SQ20111037022
公开日2012年7月18日 申请日期2011年11月18日 优先权日2010年11月18日
发明者李御玺, 陈家庆, 颜秀珍 申请人:李御玺, 王彦尧, 陈家庆, 颜秀珍
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1