- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
关联规则挖掘算法分析和探讨
关联规则挖掘算法分析和探讨
摘要:关联规则挖掘算法是数据挖掘领域的主要研究方向之一。对几种经典的关联规则挖掘算法进行了分析、探讨和比较,给出了一种基于支持矩阵的、不需要产生候选项目集的算法设计思想。算法为事务数据库中的每个项目设置二进制向量,利用逻辑与运算构造支持矩阵来挖掘频繁项目集,极大地节省了存储空间,提高了算法运行效率。
关键词:关联规则;候选项目集;频繁项目集;支持度
中图分类号:TP312 文献标识码:A 文章编号2013)007006603
0 引言
关联规则挖掘在商业等领域中的成功应用,使其成为数据挖掘中最活跃、最主要、最成熟的研究课题之一。通过对关联规则的挖掘,可以得到隐藏在海量数据集中的有趣的、有价值的信息。自从Agrawal等人[1]提出关联规则挖掘的概念和经典的关联规则挖掘算法-Apriori算法以来,众多国内外研究者对关联规则挖掘算法进行了广泛深入的研究,提出了许多在运行效率及伸缩性等方面均有进一步提高的改进算法。本文首先给出了关联规则的基本概念,然后对几种经典的关联规则挖掘算法进行了分析比较,最后提出了一种改进的关联规则挖掘算法的设计思想。
1 基本概念
关联规则挖掘的目标是从事务数据库D中挖掘出所有满足用户事先给定的最小支持度阈值和最小可信度阈值的关联规则,也可以说是挖掘出所有的强关联规则。关联规则挖掘的过程最终都可以归纳为两步:
(1)找出事务数据库D中的所有频繁项目集,根据定义1.4,找出的这些项目集出现的频率至少和用户给定的最小支持度阈值一样。
(2)根据频繁项目集和最小可信度阈值产生所有有用的强关联规则。
如何提高频繁项目集的挖掘效率是关联规则挖掘的核心任务。因此,目前几乎所有的关联规则挖掘算法都是针对第一步提出的。
2 经典的关联规则挖掘算法
2.1 Apriori算法
Apriori算法能比较有效地产生关联规则,挖掘和识别所有的频繁项目集是该算法的核心。但Apriori算法存在两个致命的性能瓶颈:一是算法扫描事务数据库次数过多,产生每个侯选k项集C\-k都需要扫描事务数据库一次;二??当事务数据库或候选项目集规模太大时将会产生庞大的候选项目集,由L\-\{k1\}产生侯选项目集C\-k的数量是指数增长的,这对于时间和主存空间来说都是一种挑战。另外,由于事务数据库太大或支持度、可信度阈值设置太低,算法会产生太多的冗余规则。所以,Apriori算法不能直接用于关系数据库的关联规则挖掘,也不适用于海量数据环境下的关联规则挖掘。
2.2 基于Apriori的改进算法
为了克服Apriori算法存在的缺陷,研究者提出了许多基于Apriori算法的改进算法,以期能够找出更高效、更可靠的频繁项目集挖掘算法。下面讨论了一些有代表性的变形算法。
(1)基于散列技术的算法。Park等人提出的DHP算法采用了基于散列的技术对候选项目集进行修剪达到提高关联规则挖掘效率的目的。该算法利用散列函数将候选项目集映射到散列表结构的不同桶中,并设置对应的桶计数。在散列表中对应的桶计数小于最小支持度阈值的候选项目集都不可能是频繁项目集,所以应当从候选项目集中删除。这种基于散列的技术极大地压缩了要考察的候选项目集,尤其是对候选2项集数量的控制特别突出。DHP算法的关键是构造一个有效的散列函数。散列函数直接影响着候选项目集在散列表中的计数效率,也就是说,散列表的大小直接影响算法的运行效率。
DHP算法仍然存在许多缺点,例如,在散列表中存放项目集计数值的桶计数与存放候选项目集的桶内容之间存在内存争用的问题;不同的候选项目集映射到散列表中,映射的桶地址相同时如何处理的问题。此外,DHP算法属于宽度优先算法,所以仍然存在需要生成大量候选项目集,需要多次扫描事务数据库的问题。
(2)基于划分技术的算法。A.Savasere等人提出的Partition算法和S.Brin等人提出的DIC算法都属于基于划分技术的算法。这类算法为了节省访问外存时的I/O开销,从逻辑上将事务数据库D中的事务划分为n个非重叠的部分,然后将其分别存放在内存中进行处理。
Partition算法只需要扫描数据库两次,第一遍扫描事务数据库时,将所有事务划分为n个数据块,分别找出局部于每个数据块的频繁项目集(称为局部频繁项目集),再利用这些局部频繁项目集合并形成全局候选项目集;然后再次扫描数据库,计算全局候选项目集的支持度,找出其中的全局频繁项目集。
DIC算法也是将事务数据库划分为若干个数据块,在遍历每个数据块的过程中计算每个项目集出现的次数,同时找出所有可能的频繁项目集,形成候选项目集。所有数据块遍历结束后,再重复执行算法,直到
文档评论(0)