基于二进制频繁项集挖掘新算法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于二进制频繁项集挖掘新算法

基于二进制频繁项集挖掘新算法   摘要:频繁项集挖掘是数据挖掘中的一个经典的问题。然而,大部分算法需要扫描数据库多次,算法效率比较低。该文提出了一个效率比较好的挖掘频繁项集的新算法,在这个算法中,所有的事务都是以二进制的形式表示,所以挖掘极大频繁项集的任务就变成了从二进制集中发现频繁模式。而且,这种算法只需要扫描原始数据库一次。最后,利用试验来证明这种算法的效率和优势。   关键词:数据挖掘;频繁项集;二进制   中图分类号:TP301文献标识码:A 文章编号:1009-3044(2009)13-3486-03      1 引言   频繁项集挖掘在诸如挖掘关联规则、强规则、相关性、多维模式挖掘和许多重要的挖掘任务中都有很多的应用,也是一个最基本的、必不可少的方法。   目前,大部分频繁项集挖掘算法都是基于Apriori算法的一些或多或少的改进。Apriori使用一种称作逐层搜索的迭代方法,k项集用于探索(k+1)项集。首先扫描数据库,积累每个项的计数,并收集满足最小支持度的项,找出频繁1项的集合。该集合记作L1。然后,L1用于找频繁2项集的集合L2,L2用于找L3,如此下去,直到不能再找到频繁k项集。找每个Lk需要一次数据库全扫描。   Apriori的问题就是需要不停的扫描数据库,这样效率就特别低下。   大部分的挖掘频繁项集算法都需要扫描数据库几次,候选项集的支持度也需要多次进行计数,很明显,这些算法的效率一般都取决于原始数据库的大小和需要考虑的候选项集的数量。在某些应用中,特别是密集型数据库,想要计算出它的频繁项集就比较困难了。因此,最近有很多人对密集型数据库的频繁项集挖掘比较感兴趣。   所有的这些因素激励着我们去寻找一个更有效率的算法。在本文中,我们提出一个基于二进制方法的极大频繁项集的挖掘算法(BMM),把每一个事务都表示为二进制,然后在这个二进制集中挖掘频繁模式。BMM只需要扫描一次数据库就能生成事务的二进制集合,而且BMM不需要生成所有可能的候选子集就能够挖掘出所有的极大频繁项集。这样,算法的效率就比较高了。首先介绍算法的实现步骤,然后举例说明算法的具体实现过程。最后利用Matlab进行试验,来证明BMM算法效率确实比Apriori算法有所提高,在挖掘极大频繁项集应用中具有一定的优势。      2 基于二进制的算法BMM   2.1 基本理论和概念   设I={I1,I2,I3,…Im}是项的集合,具有二进制的属性特征。设T是数据库中事务的集合,每个事务t是项的集合,也具有二进制的属性特征。如果t购买了项Ik,就表示为t[k]=1,反之就表示为t[k]=0。设X是I中的一些项集,如果所有的项Ik都属于X,我们就说事务t满足X,表示为t[k]=1。   关联规则是形如X?圯Y的蕴涵式,其中X∈I,Y∈I,并且X∩Y=??I,规则X?圯Y在事务集D中成立,具有支持度s,其中s是D中事务包含A∪B(即集合X和Y的并或A和B的二者的百分比)。它是概率P(A∪B)。规则X?圯Y在事务集D中具有置信度c,其中c是D中包含X的事务同时也包含Y的百分比,这是条件概率P(Y―X)。挖掘关联规则就是去找出同时满足最小支持度阈值(minsup)和最小置信度阈值(minconf)的规则。   为了方便接下来的分析,在本文中所使用的符号及其意义都在下表中说明。   2.2 基于二进制集的极大频繁项集挖掘算法   下面我们描述BMM算法挖掘极大频繁项集的过程。主要包括下面三步:   1) 扫描数据库产生二进制集及参考表。把参考表按照从数据库中扫描项的先后顺序排序。然后取出在参考表中那些支持度计数小于最小支持度的条目号,条目号对应二进制数的位置,最后在二进制集表中把二进制数与取出条目号的对应位置的值改为0(例如,取出条目号为3和5,就把二进制数的第三位和第五位改为0)。   2) 在二进制表中取出含有1最多的,并且与参考表中支持度计数最大的项的条目号所对应的位置也为1的二进制数。然后把取出的二进制数与参考表中余下的二进制数进行逻辑与运算,并把相应二进制数的支持度计数值相加。   3) 重复第二步的操作,直到找到大于或等于给定的最小支持度的二进制数为止。找出的二进制数中1所在的位置对应参考表的条目号,那些条目号下的项就是我们要找的频繁项集。   下面是BMM算法的伪代码:   算法:BMM。   输入:事务数据库和最小支持度阈值。   输出:频繁项集。   方法:   第一步:for each 事务tid in T{    for each 项 I in tid{   if 项i不在表RT中 then   //在RT中加入en   en.item=i;   en.count

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档