Apriori算法分析和探讨.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文档。上传文档
查看更多
Apriori算法分析和探讨

Apriori算法分析和探讨   摘要:本文详细分析了关联规则数据挖掘Apriori算法的思想和步骤,给出了算法的伪代码。现在Apriori算法已广泛应用于金融、医疗以及教育等领域,所以,作为教育工作者,有必要对其进行进一步的研究。   关键字:Apriori算法;数据挖掘;关联规则   中图分类号:TP 391   文献标识符:A   引 言   Apriori算法[1]是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。目前,Apriori算法广泛应用于各个领域,所以对其进行研究具有很重要的意义。   1.Apriori算法的思想   Apriori算法是由Agrawal和 Strikant提出的一种最有影响的关联规则挖掘算法。该算法的过程是针对给定的交易数据库DB,用户在初始阶段设定最小支持度Smin和最小置信度Cmin,然后找出频繁 1-项集的集合L1,使用逐层搜索的迭代方法,通过k-项集生成(k+1)-项集,而找每个 Lk都需要扫描一次数据库[1][2]。   2. Apriori算法的步骤   2.1生成频繁项集   在数据挖掘过程中为生成Lk,可通过连接和剪枝两步过程来完成[3] [4]。   1、连接:为找 Lk,通过 Lk - 1与自己连接产生候选 k-项集的集合。该候选项集的集合记作 Ck。设l1和 l2是 Lk - 1中的项集。记号Li[j]表示 li的第 j 项。为方便计,假定事务或项集中的项按字典次序排序。执行连接 Lk ?C 1 Lk - 1;其中,Lk - 1的元素是可连接的, 如果它们前(k-2)个项相同; 即, Lk - 1的元素 l1和 l2是可连接的,如果(l1 [1] = l2 [1])∧(l1 [2] = l2 [2])∧ ... ∧(l1 [k-2] = l2 [k-2])∧(l1 [k-1] l2 [k-1])。条件(l1 [k-1] l2 [k-1])是简单地保证不产生重复。连接 l1和 l2产生的结果项集是 l1 [1] l1 [2]... l1 [k-1] l2 [k-1]。   2、剪枝:Ck是 Lk的超集;即,它的成员可以是,也可以不是频繁的,但所有的频繁 k-项集都包含在 Ck中。扫描数据库,确定 Ck中每个候选的计数,从而确定 Lk(即,根据定义,计数值不小于最小支持度计数的所有候选是频繁的,从而属于Lk)。然而,Ck可能很大,这样所涉及的计算量??很大。为压缩 Ck,可以用以下办法使用 Apriori 性质:任何非频繁的(k-1)-项集都不是可能是频繁 k-项集的子集。因此,如果一个候选 k-项集的(k-1)-子集不在 Lk - 1中,则该候选也不可能是频繁的,从而可以由 Ck中删除[3][4]。   生成频繁项集的算法描述:   输入:事务数据库 D;最小支持度阈值。   输出:D 中的频繁项集F。   SetOfItemsets generateFrequentItemsets(Integer minimumSupport)   {   F[1]={frequent items};   For (k=1,F[k]0;k++)   {   C[k+1]=generateCandidates(k,F[k]);   For each transaction t in databases   {   For each candidate c in C[k+1]   {   If t contains c then c.count++   }   } //扫描数据库   For each candidate c in C[k+1]   {   If c.count=minimum_support F[k+1]= F[k+1] U {c} //选择符合条件的候选项   }   }   While k=1 do   {   F=F U F[k];   k- -;   } //合并候选集   }   2.2产生强关联规则   一旦从数据库 D 中找出频繁项集,可从中产生强关联规则,强关联规则满足最小支持度和最小置信度。对于置信度,可以用下式,其中条件概率用项集支持度计数表示。   其中,support_count(A∪B)是包含项集 A∪B 的事务数,support_count(A)是包含项集 A 的事务数。根据该式,关联规则可以产生如下:   (1)对于每个频繁项集L,产生 L 的所有非空子集。   (2)对于L的每个非空子集 s,如果 ,

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档