Apriori 改进算法综述概要1.ppt

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

Apriori 改进算法综述;本文内容简介:;1. 基本的Apriori算法;Apriori的性质: 频繁项集的所有非空子集必为频繁项集。 非频繁项集的超集一定是非频繁的。 Apriori的步骤: 连接步:为找Lk ,通过将Lk-1与自身连接产生候选k项集的集合。 剪枝步:Ck是Lk 的超集,也就是说,Ck的成员可以是也可以不是频繁的,但所有的频繁k项集都包含在Ck中。 任何非频繁的(k-1)项集都不是频繁k项集的子集。 Apriori的缺点:在每一次产生候选项集时都要扫描一遍数据库D,而用于关联规则挖掘的数据库的规模通常是非常大的,所以这样就无形之中增加了额外的开销,影响了算法的效率。 ;之后,R.Agrawal等人又提出了 Apriori 算法的改进算法 AprioriTid 算法和 AprioriHybird 算法。 AprioriTid 算法对 Apriori 算法做了调整 特点:在第一次遍历数据库之后,就不再扫描数据库 ,而是用上次扫描生成的候选项集,扫描的同时还会计算出频繁项集的支持度。 该算法以候选项集来代替原数据库,从而减少了总是要扫描原数据库统计支持度计数的开销 。 AprioriHybird 算法则是 Apriori 和 AprioriTid 的结合 。 先采用Apriori算法扫描数据库,然后计算修剪后的数据库大小,若其可在内存中进行处理则采用AprioriTid 算法,直到找出所有的频繁项集。;1995年PARK等人提出了DHP算法, 即在生成频繁2-项集时由于运算量大而引入Hash技术来产生频繁2-项集。 以上 4 种算法属于宽度优先算法,还有深度优先算法 (如 FP-growth算法 、OP算法 、TreeProjection 算法)、数据集划分算法、采样算法、增量式更新算法等,由于后几种算法本质上已不同于 Apriori 算法,所以本文对其不再详述。;2. Apriori算法的改进;2.1 利用 Apriori 算法性质的改进;2004年有学者根据性质 : 若k维数据项集 X ={i1,i2,…,ik}中,存在一个 j∈X 使得|Lk-1(j)|k-1, 则 X 不是频繁项集。其中|Lk-1(j)|表示k -1维频繁项集的集合Lk-1中所包含j的个数。在修剪频繁集时进行了改进。又在连接步骤引入头、尾结点生成函数和优化连接函数改进了连接步骤,同时按事务压缩技术原理压缩了数据库容量[3]。;2006年有学者发现性质:生成候选项集Ck时 ,在Lk-1中的一个项集 I 与 Lk-1中所有项集进行连接 , 把连接得到的不同 k_项集存入 TQ,然后立即确定包含项集I 的所有符合剪枝后的候选 k_项集 。 根据这一性质省略了在 Lk-1中寻找 k_项集的所有(k-1)_子集的费时剪枝操作[4]。;2008 年有学者根据 k_维频繁项集所有k-1维子集均是频繁的且子集个数为 k 这一性质提出两点改进 如果 Ck-1中存在不符合最小支持度的元素, 则删除它;而且将项数等于(k-1)的事务与 k 项事务有交集的事务删除。 二次扫描数据库,分别产生频繁 1、2 项集 L1、L2,在生成频繁3项集时,首先由频繁2项集自乘生成候选3项集C3, 依次取出 L2中各元素,检查其是否为 C3的子集,若是则计数加1,扫描完 L2中各元素后,看C3中各元素的计数,最终计数等于3的则为3项频繁的。更多项频繁集也是这种方法的重复[5]。;2.2 数据库扫描次数和消减容量的改进;2008年有学者通过第一次扫描数据库及最小支持度确定频繁1项集,之后根据频繁1项集重新组织数据库,再次扫描,把每个子集出现的次数统计出来,再根据最小支持度筛出频繁 k_项集[8]。 该方法仅扫描 2 次数据库,节约了时间,但在处理数据库中每项事务(即拆成子集)、统计其次数等上需花费一定的空间和时间。;2009年有学者利用如果某事务项目数小于k_频繁项目集的项目个数,则在更新频繁项目集时可以不扫描的性质,压缩了数据库事务集;为提高剪枝效率,首次支持度裁剪后,比较非频繁项集项目数和频繁项集项目数,取小值进行剪枝操作[9]。 2011年有学者引入了用户兴趣项,从而可以比较大范围地缩减数据库容量 ; 同时使用数组方式表示数据库,减少了数据库的扫描次数[10]。;2.3 转换数据库存储方式;2006年有学者在以往学者提出的把数据库转为矩阵的基 础上[11], 使用自定义的矩阵运算,产生 新的数据库矩阵及完成相应的剪枝步骤。 在生成关联规则时使用了概率论的基本性质,减少了计算量[12]。 2007年有学者在以往学者提出的把数据库转为矩阵的基 础上[11], 使用行向量内积的方法搜寻频繁项集,该方法仅扫描一次数据库,但要多次使用矩阵相乘获取频繁项集[1

文档评论(0)

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

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

1亿VIP精品文档

相关文档