一种改进的高效用频繁集挖掘算法

2016-08-09 00:38汪峰坤张婷婷
宿州学院学报 2016年7期
关键词:关联规则数据挖掘

汪峰坤,张婷婷

安徽机电职业技术学院信息工程系,安徽芜湖,241000



一种改进的高效用频繁集挖掘算法

汪峰坤,张婷婷

安徽机电职业技术学院信息工程系,安徽芜湖,241000

摘要:运用(k-1)阶频繁集与1阶频繁集中较少项数的频繁集组合生成k阶频繁候选项、使用最大效用值系数、各阶频繁项集最大数目限制三种方法,对高效用频繁集数据挖掘经典算法Two-Phase进行了改进,研究了在低维数据集上不同数据量、高维数据集上不同数据量和不同维数数据集改进算法了运行时间。结果表明:改进方法的算法在高数据量和高维数据集中提高了算法运行效率,减少了运行时间。实验表明,在高维和百万数据级的数据集上,执行时间相对于Two-Phase算法至少节约了50%。

关键词:数据挖掘;关联规则;频繁项集;高效用项集

在经典的关联规则生成算法中,对事务数据库中所有的项集的重要性假定是同等的,仅仅是根据项集在事务集中出现的次数来判断项之间的关联情况。在实际的一些数据挖掘应用中,既要考虑项集出现的次数,又要考虑项集的重要性。例如,在职工体检中,不同的检测项的重要性是不一样的。

针对此类问题,B.Barber等提出了基于“效用”的挖掘概念[1]。项的“效用”值是用户设定的用于反应项的权重、收益、消费等内容的整数值。如果某项集的效用值不小于用户设定的阈值,则此项集被称为高效用频繁项集(HUI)。

基于效用的关联规则挖掘算法最基本的是枚举方法,其时空性能差,一般只用于验证其他算法的正确性。Ying Liu等提出了Two-Phase算法[2],此算法对效用值的计算公式进行了修改,使新定义的效用值满足“事务权重向下闭属性”性质。Erwin A等提出了CTU-Mine算法[3],通过一次扫描事务集,在内存中生成表示所有事务的树状结构,减少了事务集的读取次数。以上算法会生成非常多的频繁项目集和关联规则,算法的执行时间较长,也不利于决策者对求解的关联规则进行分析[4]。

本文针对Two-Phase算法进行改进,提出了用于生成精简频繁项集的近似算法CAMine算法。CAMine算法的改进主要体现在以下几方面:优化k阶频繁候选集的生成、使用最大效用值系数、使用各阶频繁项集限数等优化策略。经过实验仿真,本算法的运算效率大大提高。

1问题描述和相关定义

定义1设事务数据库DB={T1,T2,…,Tn},其中Ti(i∈[1,n])为DB中的一条事务。项目集合I={I1,I2,…,Im},其中Ii(i∈[1,m])为项集中的一个项目。|DB|为事务数据库中事务个数。|I|为项目集中项目个数。

定义2本地事务效用值(LocalTransactionUtilityValue),数值型数据,是客观数据,反映某事务中项出现的次数,记为o(ip,Tq),如表1中,o(E,T4)的值为15。

表1 事务数据库

定义3外部效用(ExternalUtility)是使用者主观赋予项的一个实数值,以反映此项的语义特征,记为s(ip),可用来表示项的重要性、成本、收益、价值等。例如,由表2可得E的外部效用:s(E)=10。

表2 外部效用表

定义4事务Tq中项ip的效用值表示某项在某条事务中给用户带来的效用值,记为:u(ip,Tq)。计算公式为:u(ip,Tq)=o(ip,Tq)*s(ip),例如:u(E,T4)=o(E,T4)*s(E)=15*10=150。

定义8高效用频繁候选集和高效用频繁项集:如果项集满足u′(Ik)≥MinUtilNum,则项集Ik是高效用频繁候选集。如果项集满足u(Ik)≥MinUtilNum,则项集Ik是高效用频繁集。

性质1高效用频繁项集的向下闭包性质:设Ik是k-项集,Ik-1为(k-1)项集,其中Ik-1⊂Ik。如果Ik是高效用频繁项集,则Ik-1也是高效用频繁项集。

本算法新增定义如下:

定义9各阶频繁项集最大数目MAXFI:整数值,指每一阶频繁项集的最大数目。

定义10项集X的最大效用值系数MUC:整数值,指任何项集X的最大效用值的限定系数,即u(X)=MAX(u(X),MUC×MinUtilNum)。

定义11最小效用阈值比例MinUtil:百分比值,表示最小效用阈值占数据集事务个数的比例,即MinUtilNum=MinUtil×|DB|。

2改进算法

2.1算法的基本数据结构

项目结点Ii包括项目名称、本地事务效用值o和项目效用值u。

项目集I={I1,I2,…,Im}的数据结构包括表示组成项目集I的所有项目的列表集合、项目效用值u、期望效用值up、本项集的支持数SupNum。

K-阶项集Ik的数据结构:用来表示所有的k-阶的频繁项和频繁候选项,主要的数据结构是双向链表,链表的每个结点是一个k阶的项目集I。

各阶频繁项集数组指针结构(Pointer):数组下标对应阶数,数组的元素是指针,指向各阶频繁项集。

2.2CAMine算法流程

当前主流的高效用频繁集计算算法有如下缺点[5-7]:(1)合适的MinUtilNum值确定困难。(2)由于高效用值u不满足反单调性,当前算法优化的主要策略是“定义更加宽松的效用期望效用值up”,利用up的向下闭包性质减少候选集数目。但是维数较多时,up值与相应的u值相差很大,生成高效用候选集时,容易造成组合爆炸情况的产生。(3)维数较多时,u值增加非常快,经常出现超过整数范围的错误。(4)在实际使用中,更期望在合理的时间内得到适量的高效用频繁集,用于决策支持。而当前的主流算法是生成所有的高效用频繁集,在数据量较大或维数较多时,算法运行时间过长。

本算法的改进方法主要有:(1)生成k阶频繁候选集时,比较(k-1)阶频繁候选集的长度与一阶频繁候选集长度,利用长度低的候选集与(k-1)阶频繁候选集组合生成阶频繁候选集。当候选集长度越长,阶数越多时,此优化方法效果越明显。(2)定义项集X的最大效用值系数MUC,当频繁集的效用值远大于最小效用阈值MinUtilNum时,为了防止计算溢出,将频繁集的效用值设为MUC×MinUtilNum。这样,既保证了计算不会溢出,又表示频繁集的效用。(3)本算法引入了各阶频繁项集最大数目MAXFI,通过对各阶频繁项集按效用值u降序排序,只保留前MAXFI项,避免了由于最小效用阈值MinUtilNum过小造成的各阶频繁项集组合爆炸问题。

CAMine算法流程如下:

(1)第一遍扫描事务数据库DB,统计每一项目结点的效用值u,生成一阶频繁候选集。

(3)第二遍扫描事务数据库DB,计算二阶高效用频繁候选集每一个候选项的效用值u、期望效用值up和支持数SupNum。

(4)扫描二阶频繁高效用候选集,去除期望效用值up小于最小效用阈值MinUtilNum的候选项。

(5)对于k阶(k>2)高效用频繁候选集,设(k-1)阶高效用频繁集长度为nk-1。如果nk-1>n1,则k阶高效用频繁候选集由(k-1)阶高效用频繁集与1阶高效用频繁候选集组合生成。否则,k阶高效用频繁候选集由(k-1)阶高效用频繁集与自身组合生成。

(6)扫描事务数据库DB,计算k阶高效用频繁候选集每一个候选项的效用值u、期望效用值up和支持数SupNum。

(7)k阶高效用频繁候选集按u值排序,扫描生成的k阶高效用频繁候选集,删除up小于MinUtilNum的候选项。如果u值大于MUC×MinUtilNum,则u值取MUC×MinUtilNum,并且只保留前MAXFI项。

如果k阶高效用频繁候选集不为空,则转向步骤(5),计算下一阶,否则转向步骤8。

(8)遍历所有阶中的候选项,删除u小于MinUtilNum的项,剩余的项就是高效用频繁集。

3CAMine算法实验与分析

3.1算法流程实验

事务数据库DB如上表1所示,外部效用表如上表2。CAMine算法的参数设置为:最小效用阈值MinUtilNum为30,各阶频繁项集最大数目MAXFI为100,项集X的最大效用值系数MUC为10。

一阶高效用频繁项为:[D,(u:48)],[E,(u:600)]。

二阶高效用频繁项为:[D,(u:48)][E,(u:600)]:[A,D,(u:47)],[A,E,(u:357)],[B,E,(u:229)],[C,D,(u:30)],[C,E,(u:102)],[D,E,(u:352)],[E,F,(u:82)]。

三阶高效用频繁项为:[A,D,E,(u:248)],[C,D,E,(u:110)],[A,E,F,(u:84)],[A,B,E,(u:78)],[B,D,E,(u:31)]。

四阶高效用频繁项为:[A,B,D,E),(u:32)]。

从挖掘的结果可以看出,外部效用值E和D在高效用频繁项集中出现的次数较多,符合外部效用值的含义。

3.2算法性能比较

本文主要比较算法CAMine和经典的Two_Phase算法的时间性能。测试数据集由修改后的IBM数据生成器生成。

(1)比较低维数据集、不同数据量的算法性能。数据生成器生成的数据集的维数是10,内部效用值为0~10,外部效用值为1~100,最小效用阈值比例MinUtil为30%。CAMine算法的MAXFI参数设置为500,MUC参数设置为100。数据量从1万条升到50万条。

图1 低维数据运行时间和数据量关系

从图1可见,当数据维数较低时,两种算法运行速度都比较快。数据量较少时(少于16万),两种算法性能相差不多。在数据量较大时,CAMine算法要略优于Two-Phase算法,当数据量达到50万条时,改进算法所用时间减少40%。

(2)比较高维数据集、不同数据量的算法性能。数据生成器生成的数据集共有20维,内部效用值为0~10,外部效用值为1~100,最小效用阈值比例MinUtil为30%,数据量从1万条升到10万条。

从图2可见,对于高维数据集,CAMine算法明显优于Two-Phase算法,在数据量为50万条时,改进算法运行时间仅为Two-Phase算法的1/10。

图2 高维数据运行时间和数据量关系

(3)分析给定数据量时,不同维数对算法的性能影响。数据生成器生成的数据集为5万条,内部效用值为0~10,外部效用值为1~100,最小效用阈值比例MinUtil为30%,维数从10维增加到30维。

从图3可见,Two-Phase算法对维数极其敏感,运行时间与维数接近指数关系。CAMine算法在维数较高时,算法运行时间仍然可以接受。

4结束语

Two-Phase算法求解出数据集中所有频繁集,本算法是一种近似算法,可求解出每一阶满足最小效用阈值的给定频繁项个数的

图3 不同维数据算法的性能比较

频繁集。因此,当最小效用阈值较小或维数较高时,Two-Phase算法运算时间过长,出现组合爆炸情况,而本算法可在较短的时间内完成。通过仿真,本算法性能相对于经典的Two-Phase算法有了一定的提升。

参考文献:

[1]Barber B,Hamilton H J.Extracting share frequent itemsets with infrequent subsets[J].Data Mining and Knowledge Discovery,2003,7(2):153-185

[2]Liu Y,Liao WK,Choudhary A.A Fast High Utility Itemsets Mining Algorithm[C]//New York USA:Proc of the 2005 Workshop on Utility-Based Data Mining,2005:90-99

[3]Erwin A,Gopalan R P,Achuthan N R.CTU-Mine:An Efficient High Utility Itemset Mining Algorithm Using the Pattern Growth Approach[C]//Washington DC USA:Proc.of the IEEE 7th International Conferences on Computer and Information Technology,2007:71-76

[4]祝孔涛,李兴建,王乐.高效用项集挖掘算法[J].计算机工程与设计,2013,34(12):4220-4225

[5]Agrawal R,Imielinski T,Swami A.Mining association rules between Sets of items in large databases[J].ACM SIGMOD Record,1993,22(2):207-216

[6]Agrawal R,Srikant R.Fast algorithms for mining association rules[C]//San Francisco CA USA:VLDB,94 Proceedings of the 20th International Conference on Very Large Data Bases,1994:487-499

[7]Lan G C,Hong T P,Tseng V S.Mining High Transaction-Weighted Utility Itemsets[C]//Washington DC USA:ICCEA '10 Proceedings of the 2010 Second International Conference on Computer Engineering and Applications,2010,1:314-318

[8]LAN Guo-cheng,Hong T P,Tseng V S.Efficiently mining high average-utility itemsets with an improved upper-bound strategy [J].International Journal of Information Technology & Decision Making,2012,11(5):1009-1030

(责任编辑:汪材印)

doi:10.3969/j.issn.1673-2006.2016.07.027

收稿日期:2016-02-25

基金项目:安徽省高校省级自然科学研究重点项目“基于移动客户端的教职工健康体检数据智能分析管理系统的研发”(KJ2014A038)。

作者简介:汪峰坤(1978-),安徽霍邱人,硕士,讲师,主要研究方向:数据挖掘。

中图分类号:TP301.6

文献标识码:A

文章编号:1673-2006(2016)07-0103-04

猜你喜欢
关联规则数据挖掘
探讨人工智能与数据挖掘发展趋势
基于并行计算的大数据挖掘在电网中的应用
基于Apriori算法的高校学生成绩数据关联规则挖掘分析
基于关联规则和时间阈值算法的5G基站部署研究
数据挖掘技术在中医诊疗数据分析中的应用
关联规则挖掘Apriori算法的一种改进
基于关联规则的计算机入侵检测方法
一种基于Hadoop的大数据挖掘云服务及应用
数据挖掘的分析与探索
基于GPGPU的离散数据挖掘研究