Apriori and FP-tree(Simple Example)

1 关联规则挖掘

  • 在交易数据、关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式、关联、相关性、或因果结构。

2 应用

  • 购物篮分析、交叉销售、产品目录设计、 loss-leader analysis、聚集、分类等。

3 规则度量

查找所有的规则 X,YZ X , Y → Z 具有最小支持度和可信度

  • 支持度, Support 一次交易中包含 {XYZ} { X 、 Y 、 Z } 的可能性

Support(X,YZ)=N(X,Y,Z)N S u p p o r t ( X , Y → Z ) = N ( X , Y , Z ) N

  • 可信度, Confidence, 包含 {XY} { X 、 Y } 的交易中也包含 Z Z 的条件概率
    Confidence(X,YZ)=N(X,Y,Z)N(X,Y)

求解所有 SSmin S ≥ S m i n CCmin C ≥ C m i n 的组合


例如:

这里写图片描述

Support(ac)=2/4=50% S u p p o r t ( a ⇒ c ) = 2 / 4 = 50 %

Confidence(ac)=2/3=66.7% C o n f i d e n c e ( a ⇒ c ) = 2 / 3 = 66.7 %

ac (50%,66.7%) a ⇒ c   ( 50 % , 66.7 % )

Support(ca)=2/4=50% S u p p o r t ( c ⇒ a ) = 2 / 4 = 50 %

Confidence(ca)=2/2=100% C o n f i d e n c e ( c ⇒ a ) = 2 / 2 = 100 %

ca (50%,100%) c ⇒ a   ( 50 % , 100 % )

4 Apriori

4.1 基本思想

  • 频繁项集的任何子集也一定是频繁的

  • 如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。

4.2 算法的核心

  • 用频繁的(k – 1)项集生成候选的频繁 k项集
  • 用数据库扫描和模式匹配计算候选集的支持度

4.3 Simple Example

Smin=50% S m i n = 50 % , Cmin=90% C m i n = 90 % , 计算满足所有条件的关联规则
这里写图片描述

最小频数为: Numberofitems×Smin=4×50%=2 N u m b e r o f i t e m s × S m i n = 4 × 50 % = 2

  • C1:扫描数据库,统计 each item 的频数
  • L1:与最小频数比较,剔除 S<Smin S < S m i n 的items, 结果为一项频繁集
  • C2: L1中items 两两结合, C2n C n 2 ,扫描数据库,统计 each 二项组合item 的频数
  • L2:与最小频数比较,剔除 S<Smin S < S m i n 的items, 结果为二项频繁集
  • C3:扫描L2每项, C2n C n 2 ,注意,比每项的第一个元素,一样的就合并,不一样的pass,论文中证明了这种方法的完备性(因为频繁项的子集一定是频繁的),扫描数据库,统计 each 三项组合item 的频数

eg:AC+BC pass, AC+BE pass, AC+CE pass,BC+BE 合并 BCE,BC+CE pass,BE+CE pass,结果为 BCE

  • L3:与最小频数比较,剔除 S<Smin S < S m i n 的items, 结果为三项频繁集
    ………………

二项频繁集的强关联关系:

Confidence(AC)=2/2>Cmin C o n f i d e n c e ( A → C ) = 2 / 2 > C m i n

Confidence(CA)=2/3<Cmin C o n f i d e n c e ( C → A ) = 2 / 3 < C m i n

三项频繁集的强关联关系:

Confidence(B,CE)=2/2>Cmin C o n f i d e n c e ( B , C → E ) = 2 / 2 > C m i n

Confidence(B,EC)=2/3<Cmin C o n f i d e n c e ( B , E → C ) = 2 / 3 < C m i n

Confidence(C,EB)=2/2>Cmin C o n f i d e n c e ( C , E → B ) = 2 / 2 > C m i n

Confidence(BC,E)=2/3<Cmin C o n f i d e n c e ( B → C , E ) = 2 / 3 < C m i n

Confidence(CB,E)=2/3<Cmin C o n f i d e n c e ( C → B , E ) = 2 / 3 < C m i n

Confidence(EB,C)=2/3<Cmin C o n f i d e n c e ( E → B , C ) = 2 / 3 < C m i n

结果为:

AC A → C

B,CE B , C → E

C,EB C , E → B

4.4 Apriori 的瓶颈

  • 巨大的候选集:
    104 10 4 个频繁1-项集要生成 107 10 7 个候选 2-项集,要找尺寸为100的频繁模式,如 {a1, a2, …, a100}, 你必须先产生 21001030 2 100 ≈ 10 30 个候选集

  • 多次扫描数据库:
    如果最长的模式是 n n 的话,则需要 (n+1) 次数据库扫描

5 FP-tree

用Frequent-Pattern tree (FP-tree) 结构压缩数据库,

  • 高度浓缩,同时对频繁集的挖掘又是完备的
  • 避免代价较高的数据库扫描

5.1 基本思想

(分而治之) 用FP-tree地归增长频繁集

5.2 方法

  • 对每个项,生成它的条件模式库, 然后生成条件 FP-tree
  • 对每个新生成的条件FP-tree,重复这个步骤
  • 直到结果FP-tree为空, 或只含维一的一个路径 (此路径的每个子路径对应的相集都是频繁集)

5.3 主要步骤

  • 为FP-tree中的每个节点生成条件模式库
  • 用条件模式库构造对应的条件FP-tree
  • 递归构造条件 FP-trees 同时增长其包含的频繁集,如果条件FP-tree直包含一个路径,则直接生成所包含的频繁集。

5.4 Simple Example

这里写图片描述

扫描一次数据集,筛选出频繁一项集,根据频繁一项集,重新生成新的数据集(按频繁项递减排序)

这里写图片描述

根据新的数据集,生成FP-tree,过程如下图,统计频数

这里写图片描述

根据FP-tree生成条件模式库,条件FP-tree 和频繁项

item条件模式库条件FP-tree频繁项
A{ (C:1), (BCE:1) }{ (C:2) }|ACA:2
E{ (BC:2), (B:1) }{ (B:3,C:2) }|EBE:3,CE:2,BCE:2
C{ (B:2) }(B:2) }|CBC:2

表的生成
以item做为“尾巴(路径重点)”,根据画出的FP-tree,由尾巴往上找路径
eg:以A为尾巴,有CA,BCEA两条路径,路径的条数根据A的元素个数决定,这样就可以生成条件模式库

条件模式库到条件FP-tree,就是通过Support筛选之后加上尾巴的结果
eg:以E为尾巴,有BCE,BCE,BE三条路径,B出现三次,C出现2次,都大于等于S最小值,都是频繁项,所以结果为 { (B:3,C:2) }|E


更多关于算法的细节可以参考
数据挖掘十大算法之Apriori详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值