关联规则挖掘算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
I2:1
Null
I1:1
2010-9-6
11
加入第二个事务(I2,I4)
Item-name I2 I1 I3 I4 I5
I5:1
Node-head
I2:2
Null
I1:1
I4:1
Null
2010-9-6
12
加入第三个事务(I2,I3)
Item-name I2 I1 I3 I4 I5
I5:1
Node-head
2010-9-6 20
第二步、FP-growth
接着考虑I4,得到条件模式基 <(I2,I1:1)>、<I2:1> 构造条件FP-tree Null
Item-name I2 Node-head
I2:2
I1:1
得到I4频繁项集:{{I2,I4:2}}
2010-9-6 21
第二步、FP-growth
I5:1
19
第二步、FP-growth
首先考虑I5,得到条件模式基 <(I2,I1:1)>、<I2,I1,I3:1> 构造条件FP-tree Null
Item-name I2 I1 Node-head
I2:2 I1:2 I3:1
得到I5频繁项集:{{I2,I5:2},{I1,I5:2},{I2,I1,I5:2}}
加入第七个事务(I1,I3)
Item-name I2 I1 I3 I4 I5
I5:1 I4:1
Node-head
I2:5
Null
I1:2
I1:2
I3:2
I4:1
I3:2
2010-9-6
17
加入第八个事务(I2,I1,I3,I5)
Item-name I2 I1 I3 I4 I5
I5:1 I3:1 I4:1
I2:3
Null
I1:1
I4:1
I3:1
2010-9-6
13
加入第四个事务(I2,I1,I4)
Item-name I2 I1 I3 I4
I4:1
Node-head
I2:4
Null
I1:2
I4:1
I3:1
I5
I5:1
Leabharlann Baidu
2010-9-6
14
加入第五个事务(I1,I3)
Item-name I2 I1 I3 I4
2010-9-6 2
关联规则的基本概念
支持度:P(AUB),即A和B这两个项集在事 务集D中同时出现的概率. 置信度:P(B I A),即在出现项集A的事务 集D中,项集B也同时出现的概率.
2010-9-6
3
关联规则的基本概念
bread=>milk[支持度--7%,置信度--65%] P(breadUmilk)=7% P(milkIbread)=65% 如果一条关联规则同时满足最小支持度阈值和最 小置信度阈值,那么就认为它是有趣的,并称为 强关联规则。 给定一个事务集D,挖掘关联规则问题就是产生 支持度和可信度分别大于用户给定的最小支持度 和最小可信度的关联规则,也就是产生强规则的 问题。
9
创建根结点和频繁项目表
Item-name I2 I1 I3 I4 I5 Node-head Null Null Null Null Null
Null
2010-9-6
10
加入第一个事务(I2,I1,I5)
Item-name I2 I1 I3 I4 I5 Null Null
I5:1
Node-head
I2:4
得到I1的频繁项目集{{I2,I1:4}
2010-9-6 24
Thank you!
2010-9-6 25
Item-name I2 Node-head
I2:2
得到I3的频繁项目集{{I2,I3:4},{I1,I3:4},{I2,I1,I3:2}}
2010-9-6 23
第二步、FP-growth
最后考虑I1,得到条件模式基 <(I2:4)> 构造条件FP-tree Null
Item-name I2 Node-head
然后考虑I3,得到条件模式基 <(I2,I1:2)>、<I2:2>、 <I1:2> 构造条件FP-tree Null
Item-name I2 I1 Node-head
I2:4 I1:2 I1:2
由于此树不是单一路径,因此需要递归挖掘I3
2010-9-6 22
第二步、FP-growth
递归考虑I3,此时得到I1条件模式基 <(I2:2)>,即I1I3的条件模式基为<(I2:2)> 构造条件FP-tree Null
I4:1
Node-head
I2:4
Null
I1:1
I1:2
I4:1
I3:1
I3:1
I5
I5:1
2010-9-6
15
加入第六个事务(I2,I3)
Item-name I2 I1 I3 I4
I4:1
Node-head
I2:5
Null
I1:1
I1:2
I4:1
I3:2
I3:1
I5
I5:1
2010-9-6
16
2010-9-6 5
FP-growth算法
1. 2. 3. 4. Procedure FP-growth(Tree,a) if Tree包含单个路径 p then for路径P中每个节点组合(记做β) 产生模式β∪a,其支持度support=β中节点的最小 支持度; 5. else for each ai在tree的头部{ 6. 产生一个模式β=ai∪a,其支持度support=ai.support; 7. 构造β的条件模式基,构建β的条件FP-tree Treeβ; 8. if Tree β≠Φ then 9. 调用FP-growth(Treeβ,β); 10. }
2010-9-6 6
事务数据库
Tid 1 2 3 4 5 6 7 8 9
2010-9-6
Items I1,I2,I5 I2,I4 I2,I3 I1,I2,I4 I1,I3 I2,I3 I1,I3 I1,I2,I3,I5 I1,I2,I3
7
第一步、构造FP-tree
扫描事务数据库得到频繁1-项目集F
4
2010-9-6
FP-tree构造算法
扫描事务数据库一次。收集频繁项的集合F和它们 的支持度。对F按支持度降序排序,结果为频繁项 表L。 创建FP-tree的根结点(null)。对于D中每个事务:选 择事务中的频繁项,并按L中的次序排序。设排序 后的频繁项表为[p|P],其中p是第一个元素,而P是 剩余元素的表.调用insert_tree([p| P] T) insert_tree([p| P],T)。 如果T有子女N使得N.item-name=p.item-name,则 N的计数增加1;否则创建一个新节点N,将其计数 设置为1,连接到他的父节点T,并通过节点链结构 将其连接到具有相同item-name的节点.如果P非 空,递归的调用insert_tree(P,N).
Node-head
I2:6
Null
I1:2
I1:3
I3:2
I4:1
I3:2
2010-9-6
I5:1
18
加入第九个事务(I2,I1,I3)
Item-name I2 I1 I3 I4 I5
I5:1 I3:2 I4:1
Node-head
I2:7
Null
I1:2
I1:4
I3:2
I4:1
I3:2
2010-9-6
关联规则挖掘算法 FP-growth
2010-9-6
1
关联规则的基本概念
数据挖掘是指从大量的、不完全的、有噪 声的、模糊的、随机的数据中,提取隐含 在其中的、人们事先不知道的但又是潜在 有用的信息和知识的过程. 数据关联是数据库中存在的一类重要的可 被发现的知识。若两个或多个变量的取值 之间存在某种规律性,就称为关联.关联 分析的目的是找出数据库中隐藏的关联网。
I1 6 I2 7 I3 6 I4 2 I5 2
定义minsup=20%,即最小支持度为2 重新排列F
I2 7 I1 6 I3 6 I4 2 I5 2
2010-9-6
8
重新调整事务数据库
Tid 1 2 3 4 5 6 7 8 9
2010-9-6
Items I2, I1,I5 I2,I4 I2,I3 I2, I1,I4 I1,I3 I2,I3 I1,I3 I2, I1,I3,I5 I2, I1,I3
Null
I1:1
2010-9-6
11
加入第二个事务(I2,I4)
Item-name I2 I1 I3 I4 I5
I5:1
Node-head
I2:2
Null
I1:1
I4:1
Null
2010-9-6
12
加入第三个事务(I2,I3)
Item-name I2 I1 I3 I4 I5
I5:1
Node-head
2010-9-6 20
第二步、FP-growth
接着考虑I4,得到条件模式基 <(I2,I1:1)>、<I2:1> 构造条件FP-tree Null
Item-name I2 Node-head
I2:2
I1:1
得到I4频繁项集:{{I2,I4:2}}
2010-9-6 21
第二步、FP-growth
I5:1
19
第二步、FP-growth
首先考虑I5,得到条件模式基 <(I2,I1:1)>、<I2,I1,I3:1> 构造条件FP-tree Null
Item-name I2 I1 Node-head
I2:2 I1:2 I3:1
得到I5频繁项集:{{I2,I5:2},{I1,I5:2},{I2,I1,I5:2}}
加入第七个事务(I1,I3)
Item-name I2 I1 I3 I4 I5
I5:1 I4:1
Node-head
I2:5
Null
I1:2
I1:2
I3:2
I4:1
I3:2
2010-9-6
17
加入第八个事务(I2,I1,I3,I5)
Item-name I2 I1 I3 I4 I5
I5:1 I3:1 I4:1
I2:3
Null
I1:1
I4:1
I3:1
2010-9-6
13
加入第四个事务(I2,I1,I4)
Item-name I2 I1 I3 I4
I4:1
Node-head
I2:4
Null
I1:2
I4:1
I3:1
I5
I5:1
Leabharlann Baidu
2010-9-6
14
加入第五个事务(I1,I3)
Item-name I2 I1 I3 I4
2010-9-6 2
关联规则的基本概念
支持度:P(AUB),即A和B这两个项集在事 务集D中同时出现的概率. 置信度:P(B I A),即在出现项集A的事务 集D中,项集B也同时出现的概率.
2010-9-6
3
关联规则的基本概念
bread=>milk[支持度--7%,置信度--65%] P(breadUmilk)=7% P(milkIbread)=65% 如果一条关联规则同时满足最小支持度阈值和最 小置信度阈值,那么就认为它是有趣的,并称为 强关联规则。 给定一个事务集D,挖掘关联规则问题就是产生 支持度和可信度分别大于用户给定的最小支持度 和最小可信度的关联规则,也就是产生强规则的 问题。
9
创建根结点和频繁项目表
Item-name I2 I1 I3 I4 I5 Node-head Null Null Null Null Null
Null
2010-9-6
10
加入第一个事务(I2,I1,I5)
Item-name I2 I1 I3 I4 I5 Null Null
I5:1
Node-head
I2:4
得到I1的频繁项目集{{I2,I1:4}
2010-9-6 24
Thank you!
2010-9-6 25
Item-name I2 Node-head
I2:2
得到I3的频繁项目集{{I2,I3:4},{I1,I3:4},{I2,I1,I3:2}}
2010-9-6 23
第二步、FP-growth
最后考虑I1,得到条件模式基 <(I2:4)> 构造条件FP-tree Null
Item-name I2 Node-head
然后考虑I3,得到条件模式基 <(I2,I1:2)>、<I2:2>、 <I1:2> 构造条件FP-tree Null
Item-name I2 I1 Node-head
I2:4 I1:2 I1:2
由于此树不是单一路径,因此需要递归挖掘I3
2010-9-6 22
第二步、FP-growth
递归考虑I3,此时得到I1条件模式基 <(I2:2)>,即I1I3的条件模式基为<(I2:2)> 构造条件FP-tree Null
I4:1
Node-head
I2:4
Null
I1:1
I1:2
I4:1
I3:1
I3:1
I5
I5:1
2010-9-6
15
加入第六个事务(I2,I3)
Item-name I2 I1 I3 I4
I4:1
Node-head
I2:5
Null
I1:1
I1:2
I4:1
I3:2
I3:1
I5
I5:1
2010-9-6
16
2010-9-6 5
FP-growth算法
1. 2. 3. 4. Procedure FP-growth(Tree,a) if Tree包含单个路径 p then for路径P中每个节点组合(记做β) 产生模式β∪a,其支持度support=β中节点的最小 支持度; 5. else for each ai在tree的头部{ 6. 产生一个模式β=ai∪a,其支持度support=ai.support; 7. 构造β的条件模式基,构建β的条件FP-tree Treeβ; 8. if Tree β≠Φ then 9. 调用FP-growth(Treeβ,β); 10. }
2010-9-6 6
事务数据库
Tid 1 2 3 4 5 6 7 8 9
2010-9-6
Items I1,I2,I5 I2,I4 I2,I3 I1,I2,I4 I1,I3 I2,I3 I1,I3 I1,I2,I3,I5 I1,I2,I3
7
第一步、构造FP-tree
扫描事务数据库得到频繁1-项目集F
4
2010-9-6
FP-tree构造算法
扫描事务数据库一次。收集频繁项的集合F和它们 的支持度。对F按支持度降序排序,结果为频繁项 表L。 创建FP-tree的根结点(null)。对于D中每个事务:选 择事务中的频繁项,并按L中的次序排序。设排序 后的频繁项表为[p|P],其中p是第一个元素,而P是 剩余元素的表.调用insert_tree([p| P] T) insert_tree([p| P],T)。 如果T有子女N使得N.item-name=p.item-name,则 N的计数增加1;否则创建一个新节点N,将其计数 设置为1,连接到他的父节点T,并通过节点链结构 将其连接到具有相同item-name的节点.如果P非 空,递归的调用insert_tree(P,N).
Node-head
I2:6
Null
I1:2
I1:3
I3:2
I4:1
I3:2
2010-9-6
I5:1
18
加入第九个事务(I2,I1,I3)
Item-name I2 I1 I3 I4 I5
I5:1 I3:2 I4:1
Node-head
I2:7
Null
I1:2
I1:4
I3:2
I4:1
I3:2
2010-9-6
关联规则挖掘算法 FP-growth
2010-9-6
1
关联规则的基本概念
数据挖掘是指从大量的、不完全的、有噪 声的、模糊的、随机的数据中,提取隐含 在其中的、人们事先不知道的但又是潜在 有用的信息和知识的过程. 数据关联是数据库中存在的一类重要的可 被发现的知识。若两个或多个变量的取值 之间存在某种规律性,就称为关联.关联 分析的目的是找出数据库中隐藏的关联网。
I1 6 I2 7 I3 6 I4 2 I5 2
定义minsup=20%,即最小支持度为2 重新排列F
I2 7 I1 6 I3 6 I4 2 I5 2
2010-9-6
8
重新调整事务数据库
Tid 1 2 3 4 5 6 7 8 9
2010-9-6
Items I2, I1,I5 I2,I4 I2,I3 I2, I1,I4 I1,I3 I2,I3 I1,I3 I2, I1,I3,I5 I2, I1,I3