平凡项目集求解.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
平凡项目集求解

Apriori算法实验报告 1背景 关联规则挖掘的研究工作主要包括:Apriori算法的扩展、数量关联规则挖掘、关联规则增量式更新、无须生成候选项目集的关联规则挖掘、最大频繁项目集挖掘、约束性关联规则挖掘以及并行及分布关联规则挖掘算法等,其中快速挖掘与更新频繁项目集是关联规则挖掘研究的重点,也是多种数据挖掘应用中的技术关键,已用于分类规则挖掘和网络入侵检测等方面的研究。研究者还对数据挖掘的理论进行了有益的探索,将概念格和粗糙集应用于关联规则挖掘中,获得了显著的效果到目前为止,关联规则的挖掘已经取得了令人瞩目的成绩,包括:单机环境下的关联规则挖掘算法;多值属性关联规则挖掘;关联规则更新算法;基于约束条件的关联规则挖掘;关联规则并行及分布挖掘算法等。 算法Apriori算法是一种找频繁项集的基本算法。其基本原理是逐层搜索的迭代:频繁K项Lk集用于搜索频繁(K+1)项集L,如此下去,直到不能找到维度更高的频繁项集为止。这种方法依赖连接和剪枝这两步来实现。(1) L1 = {大项目集1项目集}; (2) for (k = 2; Lk-1 != 空; k++) do begin (3) Ck = apriori-gen(Lk-1); //新的候选集 (4) for 所有事务 t ∈D do begin (5) Ct = subset ( Ck,t); //t中所包含的候选 (6) for 所有候选 c ∈Ct do (7) c.count++; (8) end (9) Lk = {c ∈Ck | c.count ≥ minsupp} (10) end (11) key = ∪Lk;Apriori-gen函数: Apriori候选产生函数Apriori-gen的参数Lk-1,即所有大型(k-1)项目集的集合。它返回所有大型k项目集的集合的一个超集(Superset)。首先,在Jion(连接)步骤,我们把Lk-1和Lk-1相连接以获得候选的最终集合的一个超集Ck接着,在Prune(修剪)步骤,我们将删除所有的项目集 c∈Ck,如果c的一些k-1子集不在Lk-1中,为了说明这个产生过程为什么能保持完全性,要注意对于Lk中的任何有最小支持度的项目集,任何大小为k-1的子集也必须有最小支持度。因此,如果我们用所有可能的项目扩充Lk-1中的每个项目集,然后删除所有k-1子集不在Lk-1中的项目集,那么我们就能得到Lk中项目集的一个超集。},{1 3 4 5}}。Prune步骤将删除项集{1 3 4 5},因为项集{1 4 5}不在L3中。 Subset函数:尽管Apriori算法已经可以压缩候选数据项集Ck,但是对于频繁项集尤其是2维的候选数据项集产生仍然需要大量的存储空间。就是对于2维的候选数据项集,Apriori算法的剪枝操作几乎不起任何作用。例如:1维高频数据项集L1的规模是O(n),则2维候选数据项集的规模将达到O(n2)。如果我们考虑一般情况,即在没有支持度的情况下1维高频数据项集L1的规模是103,则2维候选数据项集的规模C2将达到C1000≈×105.这种空间复杂度以指数形式的增长,使得这个经典的算法的执行效率很难让人满意.Apriori算法的两大缺点就是产生大量的候选集,以及需重复扫描数据库。 表1 :最小支持度=0.7 记录数 time(s) 200 1 500 4 1000 5 2000 14 4000 49 8000 90 表2 :最小支持度=0.9 记录数 time(s) 200 1 500 2 1000 4 2000 9 4000 27 8000 59 表3: 频繁项目集 记录数 Min_sup L1 L2 L3 L4 L5 L6 200 0.7 9 19 30 25 11 2 0.9 9 10 10 5 1 0 500 0.7 9 20 30 25 11 2 0.9 9 10 9 3 0 0 1000 0.7 9 15 10 2 0 0 0.9 7 1 0 0 0 0 2000 0.7 8 20 27 18 6 1 0.9 7 10 9 3 0 0 4000 0.7 8 22 26 13 2 0 0.9 8 5 2 0 0 0 8000 0.7 9 18 20 9 1 0 0.9 8 3 1 0 0 0 下图为对表1、表2中数据的绘制: 从上图可以看出当增大数据库或者减少最小支持度时,都会增加计算的时间而且是成指数增加。因为算法在每次循环时都要重新扫描数据库来计算支持度,而增大数据库和减少最小支持度都会增大计算量。 4.实验评价 针对要重复扫描数据库,提出了一个改进的Aprio

您可能关注的文档

文档评论(0)

wangsux + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档