数据挖掘 Apriori 算法

学习笔记之数据挖掘 Apriori 算法

关联规则

设 A 是一个由项目构成的集合,称为项集。如果项集 A 中包含 k 个项目,则称其为 k 项集。项集 A 在事务数据库 D 中出现的次数占 D 中总事务的百分比叫做项集的支持度。如果项集的支持度超过用户给定的最小支持度阈值,就称该项集是频繁项集(或频集)。
关联规则的信任度为 Support(XY)/support(X) S u p p o r t ( X ∪ Y ) / s u p p o r t ( X )

support(XY)=P(XY)confidence(XY)=P(Y|X)(5)(6) (5) s u p p o r t ( X ⇒ Y ) = P ( X ∪ Y ) (6) c o n f i d e n c e ( X ⇒ Y ) = P ( Y | X )

关规则挖掘算法

  • Agrawal 等人提出的 AIS, Apriori 和 AprioriTid
  • Cumulate 和 Stratify, Houstsma 等人提出的 SETM
  • Park 等人提出的 DHP
  • Savasere 等人的 PARTITION
  • Han 等人提出的不生成候选集直接生成频繁模式 FPGrowth
  • 其中最有效和有影响的算法为 Apriori, DHP, PARTITION 和 FPGrowth

步骤

通过迭代,检索出事务数据库中的所有频繁项集,即支持度不低于用户设定的阈值的项集;利用频繁项集构造出满足用户最小信任度的规则;挖掘或识别出所有频繁项集是该算法的核心,占整个计算量的大部分。

  1. 连接步:为找 Lk L k 通过将 Lk1 L k − 1 自身连接产生候选 k 项集的集合。 Lk L k 表示 k 项集。
  2. 剪枝步: Ck C k Lk L k 的超集,也就是说, Ck C k 的成员可以是,也可以不是频繁的,但所有的频繁 k 项集都包含在 Ck C k 中。任何非频繁的 (k-1) 项集都不是频繁 k 项集的子集。

例子

这里写图片描述
这里写图片描述
这里写图片描述

其他例子: https://blog.csdn.net/v_july_v/article/details/6279498

性质

  1. 频繁项集的所有非空子集必为频繁项集;

    {a, b, c, d} 出现的频次很高,那么,{a}, {a, b} 出现的频次也一定高。

  2. 非频繁项集的超集一定是非频繁的。

    如果 {a, b, c} 出现 10 次,则 {a, b, c, d} 出现的频次一定是小于等于 10 的。

不足


  1. Ck C k 的项集是用来产生频繁集的候选集。
  2. 最后的频繁集 Lk L k 必须是 Ck C k 的一个子集。 Ck C k 中的每个元素在交易数据库中进行验证来决定其是否加入 Lk L k
  3. 验证过程是性能瓶颈。

交易数据库可能非常大;比如频繁集最多包含 10 个项,那么就需要扫描交易数据库 10 遍,需要很大的 I/O 负载。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值