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算法是一个挖掘关联规则的算法,是Agrawal等设计的一个基本算法。它采用两阶段挖掘的思想,并且基于多次扫描事务数据库来执行。 关联规则 基本概念 关联规则是形如 X → Y 的蕴涵式,表示通过 X 可以推导 “ 得到 ” Y ,其中 X 和 Y 分别称为关联规则的先导 (antecedent 或 left-hand-side, LHS) 和后继 (consequent 或 right-hand-side, RHS)。 关联规则 A-B 的支持度 support=P(AB) ,指的是事件 A 和事件 B 同时发生的概率。 置信度 confidence=P(B|A)=P(AB)/P(A), 指的是发生事件 A 的基础上发生事件 B 的概率。 同时满足最小支持度阈值和最小置信度阈值的规则称为强规则 。 如果事件 A 中包含 k 个元素,那么称这个事件 A 为 k 项集, 并且事件 A 满足最小支持度阈值 的事件称为频繁 k 项集 。 挖掘过程 第一,找出所有的频繁项集;其目标是发现满足最小支持度阈值的所有项集,这些项集称作频繁项集。 第二,由频繁项集产生强规则。其目标是从上一步发现的频繁项集中提取所有高置信度的规则,这些规则称为强规则。 通常,频繁项集产生的计算开销远大于产生规则所需的计算开销。 Apriori算法思想 Apriori 算法使用频繁项集的先验知识,使用一种称作逐层搜索的迭代方法, k 项集用于探索 (k+1) 项集。首先,通过扫描事务(交易)记录,找出所有的频繁 1 项集,该集合记做 L1 ,然后利用 L1 找频繁 2 项集的集合 L2 , L2 找 L3 ,如此下去,直到不能再找到任何频繁 k 项集。最后再在所有的频繁集中找出强规则,即产生用户感兴趣的关联规则。 其中, Apriori 算法具有这样一条性质 :任一频繁项集的所有非空子集也必须是频繁的。因为假如 P(I) 最小支持度阈值,当有元素 A 添加到 I 中时,结果项集( A ∩ I )不可能比 I 出现次数更多。因此 A ∩ I 也不是频繁的。 该算法的基本思想是:首先找出所有的频集,这些项集出现的频繁性至少和预定义的最小支持度一样。然后由频集产生强关联规则,这些规则必须满足最小支持度和最小可信度。然后使用第1步找到的频集产生期望的规则,产生只包含集合的项的所有规则,其中每一条规则的右部只有一项,这里采用的是中规则的定义。一旦这些规则被生成,那么只有那些大于用户给定的最小可信度的规则才被留下来。为了生成所有频集,使用了递归的方法。 Apriori算法步骤 Apriori算法的设计可以分解为两步骤来执行挖掘: 挖掘所有频繁项集 从事务数据库(D)中挖掘出所有频繁项集。 支持度大于最小支持度minSup的项集(Itemset)称为频集(Frequent Itemset)。 首先需要挖掘出频繁1-项集;然后,继续采用递推的方式来挖掘频繁k-项集(k1),具体做法是:在挖掘出候选频繁k-项集(Ck)之后,根据最小置信度minSup来筛选,得到频繁k-项集。最后合并全部的频繁k-项集(k0)。 挖掘频繁项集的算法描述如下: 算法 Apriori算法的频繁集产生 L1 = find_frequent_1-itemsets(D); // 挖掘频繁1-项集,比较容易 for (k=2;Lk-1 ≠Φ ;k++) { Ck = apriori_gen(Lk-1 ,min_sup); // 调用apriori_gen方法生成候选频繁k-项集 for each transaction t ∈ D { // 扫描事务数据库D Ct = subset(Ck,t); for each candidate c ∈ Ct c.count++; // 统计候选频繁k-项集的计数 } Lk ={c ∈ Ck|c.count≥min_sup} // 满足最小支持度的k-项集即为频繁k-项集 } return L= ∪ k Lk; // 合并频繁k-项集(k0) Apriori算法的频繁项集产生的部分有两个重要的特点:第一,它是一个逐层算法,即从频繁1-项集到最长的频繁项集,它每次遍历项集格中的一层;第二,它使用产生-测试策略来发现频繁项集。在每次迭代之后,新的候选项集都由前一次迭代发现的频繁项集产生,然后对每个候选的支持度进行计数,并与最小支持度阈值进行比较。该算法需要的总迭代次数是kmax+1,其中 挖掘频繁关联规则 基于第1步挖掘到的频繁项集,继续挖掘出全部的频繁关联规则。 置信度大于给定最小置信度minConf的关联规则称为频繁关联规则(Frequent Association Rule)。在这

文档评论(0)

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

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

1亿VIP精品文档

相关文档