浙江大学本科生《数据挖掘导论》课件.ppt
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目的: 发现数据中的规律 超市数据中的什么产品会一起购买?— 啤酒和尿布 在买了一台PC之后下一步会购买? 哪种DNA对这种药物敏感? 我们如何自动对Web文档进行分类?
2019年8月25
感谢你的观看
4
频繁模式挖掘的重要性
许多重要数据挖掘任务的基础
关联、相关性、因果性 序列模式、空间模式、时间模式、多维 关联分类、聚类分析
support (XY)=P (X Y)
confidence (XY)=P (Y | X)
2019年8月25
感谢你的观看
9
规则度量:支持度与可信度
二者都买 的客户
买尿布的客 户
查找所有的规则 X & Y
具有最小支持度和可信度
Z
买啤酒的客户
支持度, s, 一次交易中包含 {X 、 Y 、 Z}的可能性
2019年8月25
感谢你的观看
23
建立 FP-tree树
TID Items bought (ordered) frequent items
100 {f, a, c, d, g, i, m, p}
{f, c, a, m, p}
200 {a, b, c, f, l, m, o}
{f, c, a, b, m}
Items bought A, B, C
Min. support 50% Min. confidence 50%
20
A, C
30
A, D
40
B, E, F
Frequent pattern {A} {B}
Support 75% 50%
For rule A C:
{C} {A, C}
50% 50%
support = support({A}{C}) = 50%
2019年8月25
感谢你的观看
16
Apriori算法
(1) L1={频繁1项集};
(2) for(k=2;Lk-1;k++) do begin (3) Ck=apriori_gen(Lk-1); //新的潜在频繁项集
(4) for all transactions tD do begin
PARTITION,FPGrowth。
2019年8月25
感谢你的观看
22
挖掘频繁集 不用生成候选集
用Frequent-Pattern tree (FP-tree) 结构压缩数据库, 高度浓缩,同时对频繁集的挖掘又完备的 避免代价较高的数据库扫描
开发一种高效的基于FP-tree的频繁集挖掘算法 采用分而治之的方法学:分解数据挖掘任务为 小任务 避免生成关联规则: 只使用部分数据库!
(5) (6) (7)
Ct=subset(Ck,t); //t中包含的潜在频繁项集 for all candidates cCt do
c.count++;
(8) end;
(9) Lk={cCk|c.countminsup}
(10) end;
(11) Answer=
2019年8月25
k Lk
感谢你的观看
17
实例
Database TDB
Tid Items 10 A, C, D 20 B, C, E 30 A, B, C, E
C1 1st scan
Itemset sup
{A}
2 L1
{B}
3
{C}
3
{D}
1
{E}
3
Itemset sup
{A}
2
{B}
3
{C}
3
{E}
给定一组事务 产生所有的关联规则 满足最小支持度和最小可信度
2019年8月25
感谢你的观看
7
关联规则基本模型(续)
设I={i1, i2,…, im}为所有项目的集合,D为事务数 据库,事务T是一个项目子集(TI)。每一个事 务具有唯一的事务标识TID。设A是一个由项目构 成的集合,称为项集。事务T包含项集A,当且仅 当AT。如果项集A中包含k个项目,则称其为k项 集。项集A在事务数据库D中出现的次数占D中总 事务的百分比叫做项集的支持度。如果项集的支
共享的机会也高
决不会比原数据库大(如果不计算树节点的 额外开销)
2019年8月25
感谢你的观看
25
用FP-tree挖掘频繁集
基本思想 (分而治之)
用FP-tree递归增长频繁集
方法
对每个项,生成它的 条件模式库, 然后是它的 条件 FP-tree
对每个新生成的条件FP-tree,重复这个步骤 直到结果FP-tree为空, 或只含唯一的一个路径
典型的关联规则发现问题是对超市中的货篮数据 (Market Basket)进行分析。通过发现顾客放入 货篮中的不同商品之间的关系来分析顾客的购买 习惯。
2019年8月25
感谢你的观看
3
什么是关联规则挖掘
关联规则挖掘 首先被Agrawal, Imielinski and Swami在1993年的SIGMOD会议上提出 在事务、关系数据库中的项集和对象中发现频繁模式、关联规则、相关 性或者因果结构 频繁模式: 数据库中频繁出现的项集
2019年8月25
感谢你的ຫໍສະໝຸດ Baidu看
20
提高Apriori算法的方法
Hash-based itemset counting(散列项集计数) Transaction reduction(事务压缩) Partitioning(划分) Sampling(采样)
2019年8月25
感谢你的观看
21
confidence = support({A}{C})/support({A}) = 66.6%
2019年8月25
感谢你的观看
13
II. Apriori算法的步骤
Apriori算法命名源于算法使用了频繁项集性质的先 验(Prior)知识。
Apriori算法将发现关联规则的过程分为两个步骤:
(此路径的每个子路径对应的项集都是频繁集)
2019年8月25
感谢你的观看
26
挖掘 FP-tree的主要步骤
1) 为FP-tree中的每个节点生成条件模式库 2) 用条件模式库构造对应的条件FP-tree 3) 递归构造条件 FP-trees 同时增长其包含的频繁集
头表
Item frequency head
f
4
c
4
a
3
b
3
m
3
p
3
{}
f:4 c:1
c:3 b:1 b:1
a:3
p:1
m:2 b:1
2019年8月25
感谢你的观看
p:2 m:1 24
FP-tree 结构的好处
完备:
不会打破交易中的任何模式 包含了频繁模式挖掘所需的全部信息
紧密
去除不相关信息—不包含非频繁项 支持度降序排列: 支持度高的项在FP-tree中
持度超过用户给定的最小支持度阈值,就称该项 集是频繁项集(或大项集)。
2019年8月25
感谢你的观看
8
关联规则基本模型(续)
关联规则是形如XY的逻辑蕴含式,其中XI, YI,且XY=。如果事务数据库D中有s%的事 务包含XY,则称关联规则XY的支持度为s%, 实际上,支持度是一个概率值。若项集X的支持度 记为support (X),规则的信任度为support (XY)/ support (X)。这是一个条件概率P (Y | X)。 也就是:
{C, E}
C3 Itemset
3rd scan L3 Itemset sup
{B, C, E}
2019年8月25
感谢你的{观B看, C, E} 2
18
Visualization of Association Rules: Pane Graph
2019年8月25
感谢你的观看
19
Visualization of Association Rules: Rule Graph
浙江大学本科生《数据挖掘导论》课件
第3课 频繁模式及关 联规则挖掘技术
2019年8月25
xx副教授 浙江大学人工智能研究所
感谢你的观看
1
内容提纲
关联规则挖掘简介 关联规则基本模型 关联规则价值衡量与发展 参考文献
2019年8月25
感谢你的观看
2
I. 关联规则简介
关联规则反映一个事物与其他事物之间的相互依 存性和关联性。如果两个或者多个事物之间存在 一定的关联关系,那么,其中一个事物就能够通 过其他事物预测到。
2019年8月25
感谢你的观看
15
关联规则的性质:
性质1:频繁项集的子集必为频繁项集。 性质2:非频繁项集的超集一定是非频繁的。 Apriori算法运用性质1,通过已知的频繁项集构成
长度更大的项集,并将其称为潜在频繁项集。潜在 频繁k项集的集合Ck 是指由有可能成为频繁k项集的 项集组成的集合。以后只需计算潜在频繁项集的支 持度,而不必计算所有不同项集的支持度,因此在 一定程度上减少了计算量。
通过迭代,检索出事务数据库中的所有频繁项集,即支持 度不低于用户设定的阈值的项集;
利用频繁项集构造出满足用户最小信任度的规则。
挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
2019年8月25
感谢你的观看
14
频繁项集
为了避免计算所有项集的支持度(实际上频 繁项集只占很少一部分),Apriori算法引入 潜在频繁项集的概念。若潜在频繁k项集的 集合记为Ck ,频繁k项集的集合记为Lk ,m 个项目构成的k项集的集合为 ,则三者之间 满 遵循足的关原系则Lk 是C“k 频繁。C项mk构集成的潜子C在集mk 频必繁为项频集繁所项 集”。
感谢你的观看
10
关联规则基本模型(续)
关联规则就是支持度和信任度分别满足用 户给定阈值的规则。
发现关联规则需要经历如下两个步骤:
找出所有频繁项集。 由频繁项集生成满足最小信任度阈值的规则。
2019年8月25
感谢你的观看
11
Transaction-id 10 20 30 40
Items bought A, B, C A, C A, D B, E, F
3
40
B, E
L2 Itemset sup
{A, C} 2 {B, C} 2 {B, E} 3 {C, E} 2
C2 Itemset sup
{A, B} 1 {A, C} 2 {A, E} 1 {B, C} 2 {B, E} 3 {C, E} 2
C2 2nd scan
Itemset {A, B} {A, C} {A, E} {B, C} {B, E}
300 {b, f, h, j, o}
{f, b}
400 {b, c, k, s, p}
{c, b, p}
500 {a, f, c, e, l, p, m, n}
{f, c, a, m, p}
最小支持度 = 0.5
步骤:
1. 扫描数据库一次,得到频繁 1-项集
2. 把项按支持度递减排序
3. 再一次扫描数据库,建立FPtree
可信度, c, 包含{X 、 Y}的交 易中也包含Z的条件概率
交易ID 2000 1000 4000 5000
购买的商品 A,B,C A,C A,D B,E,F
设最小支持度为50%, 最小可 信度为 50%, 则可得到
A C (50%, 66.6%)
C A (50%, 100%)
2019年8月25
更加广泛的用处
购物篮分析、交叉销售、直销 点击流分析、DNA序列分析等等
2019年8月25
感谢你的观看
5
II. 关联规则基本模型
关联规则基本模型 Apriori算法 Fp-Tree算法
2019年8月25
感谢你的观看
6
I. 关联规则基本模型
IBM公司Almaden研究中心的R.Agrawal首先 提出关联规则模型,并给出求解算法AIS。 随后又出现了SETM和Apriori等算法。其中, Apriori是关联规则模型中的经典算法。
Customer buys both
Customer buys diaper
Customer buys beer
Let min_support = 50%, min_conf = 50%: A C (50%, 66.7%) C A (50%, 100%)
2019年8月25
感谢你的观看
12
Transaction-id 10
关联规则挖掘算法
Agrawal等人提出的AIS,Apriori和AprioriTid Cumulate和Stratify,Houstsma等人提出的SETM Park等人提出的DHP Savasere等人的PARTITION Han等人提出的不生成候选集直接生成频繁模式
FPGrowth 其中最有效和有影响的算法为Apriori,DHP和
2019年8月25
感谢你的观看
4
频繁模式挖掘的重要性
许多重要数据挖掘任务的基础
关联、相关性、因果性 序列模式、空间模式、时间模式、多维 关联分类、聚类分析
support (XY)=P (X Y)
confidence (XY)=P (Y | X)
2019年8月25
感谢你的观看
9
规则度量:支持度与可信度
二者都买 的客户
买尿布的客 户
查找所有的规则 X & Y
具有最小支持度和可信度
Z
买啤酒的客户
支持度, s, 一次交易中包含 {X 、 Y 、 Z}的可能性
2019年8月25
感谢你的观看
23
建立 FP-tree树
TID Items bought (ordered) frequent items
100 {f, a, c, d, g, i, m, p}
{f, c, a, m, p}
200 {a, b, c, f, l, m, o}
{f, c, a, b, m}
Items bought A, B, C
Min. support 50% Min. confidence 50%
20
A, C
30
A, D
40
B, E, F
Frequent pattern {A} {B}
Support 75% 50%
For rule A C:
{C} {A, C}
50% 50%
support = support({A}{C}) = 50%
2019年8月25
感谢你的观看
16
Apriori算法
(1) L1={频繁1项集};
(2) for(k=2;Lk-1;k++) do begin (3) Ck=apriori_gen(Lk-1); //新的潜在频繁项集
(4) for all transactions tD do begin
PARTITION,FPGrowth。
2019年8月25
感谢你的观看
22
挖掘频繁集 不用生成候选集
用Frequent-Pattern tree (FP-tree) 结构压缩数据库, 高度浓缩,同时对频繁集的挖掘又完备的 避免代价较高的数据库扫描
开发一种高效的基于FP-tree的频繁集挖掘算法 采用分而治之的方法学:分解数据挖掘任务为 小任务 避免生成关联规则: 只使用部分数据库!
(5) (6) (7)
Ct=subset(Ck,t); //t中包含的潜在频繁项集 for all candidates cCt do
c.count++;
(8) end;
(9) Lk={cCk|c.countminsup}
(10) end;
(11) Answer=
2019年8月25
k Lk
感谢你的观看
17
实例
Database TDB
Tid Items 10 A, C, D 20 B, C, E 30 A, B, C, E
C1 1st scan
Itemset sup
{A}
2 L1
{B}
3
{C}
3
{D}
1
{E}
3
Itemset sup
{A}
2
{B}
3
{C}
3
{E}
给定一组事务 产生所有的关联规则 满足最小支持度和最小可信度
2019年8月25
感谢你的观看
7
关联规则基本模型(续)
设I={i1, i2,…, im}为所有项目的集合,D为事务数 据库,事务T是一个项目子集(TI)。每一个事 务具有唯一的事务标识TID。设A是一个由项目构 成的集合,称为项集。事务T包含项集A,当且仅 当AT。如果项集A中包含k个项目,则称其为k项 集。项集A在事务数据库D中出现的次数占D中总 事务的百分比叫做项集的支持度。如果项集的支
共享的机会也高
决不会比原数据库大(如果不计算树节点的 额外开销)
2019年8月25
感谢你的观看
25
用FP-tree挖掘频繁集
基本思想 (分而治之)
用FP-tree递归增长频繁集
方法
对每个项,生成它的 条件模式库, 然后是它的 条件 FP-tree
对每个新生成的条件FP-tree,重复这个步骤 直到结果FP-tree为空, 或只含唯一的一个路径
典型的关联规则发现问题是对超市中的货篮数据 (Market Basket)进行分析。通过发现顾客放入 货篮中的不同商品之间的关系来分析顾客的购买 习惯。
2019年8月25
感谢你的观看
3
什么是关联规则挖掘
关联规则挖掘 首先被Agrawal, Imielinski and Swami在1993年的SIGMOD会议上提出 在事务、关系数据库中的项集和对象中发现频繁模式、关联规则、相关 性或者因果结构 频繁模式: 数据库中频繁出现的项集
2019年8月25
感谢你的ຫໍສະໝຸດ Baidu看
20
提高Apriori算法的方法
Hash-based itemset counting(散列项集计数) Transaction reduction(事务压缩) Partitioning(划分) Sampling(采样)
2019年8月25
感谢你的观看
21
confidence = support({A}{C})/support({A}) = 66.6%
2019年8月25
感谢你的观看
13
II. Apriori算法的步骤
Apriori算法命名源于算法使用了频繁项集性质的先 验(Prior)知识。
Apriori算法将发现关联规则的过程分为两个步骤:
(此路径的每个子路径对应的项集都是频繁集)
2019年8月25
感谢你的观看
26
挖掘 FP-tree的主要步骤
1) 为FP-tree中的每个节点生成条件模式库 2) 用条件模式库构造对应的条件FP-tree 3) 递归构造条件 FP-trees 同时增长其包含的频繁集
头表
Item frequency head
f
4
c
4
a
3
b
3
m
3
p
3
{}
f:4 c:1
c:3 b:1 b:1
a:3
p:1
m:2 b:1
2019年8月25
感谢你的观看
p:2 m:1 24
FP-tree 结构的好处
完备:
不会打破交易中的任何模式 包含了频繁模式挖掘所需的全部信息
紧密
去除不相关信息—不包含非频繁项 支持度降序排列: 支持度高的项在FP-tree中
持度超过用户给定的最小支持度阈值,就称该项 集是频繁项集(或大项集)。
2019年8月25
感谢你的观看
8
关联规则基本模型(续)
关联规则是形如XY的逻辑蕴含式,其中XI, YI,且XY=。如果事务数据库D中有s%的事 务包含XY,则称关联规则XY的支持度为s%, 实际上,支持度是一个概率值。若项集X的支持度 记为support (X),规则的信任度为support (XY)/ support (X)。这是一个条件概率P (Y | X)。 也就是:
{C, E}
C3 Itemset
3rd scan L3 Itemset sup
{B, C, E}
2019年8月25
感谢你的{观B看, C, E} 2
18
Visualization of Association Rules: Pane Graph
2019年8月25
感谢你的观看
19
Visualization of Association Rules: Rule Graph
浙江大学本科生《数据挖掘导论》课件
第3课 频繁模式及关 联规则挖掘技术
2019年8月25
xx副教授 浙江大学人工智能研究所
感谢你的观看
1
内容提纲
关联规则挖掘简介 关联规则基本模型 关联规则价值衡量与发展 参考文献
2019年8月25
感谢你的观看
2
I. 关联规则简介
关联规则反映一个事物与其他事物之间的相互依 存性和关联性。如果两个或者多个事物之间存在 一定的关联关系,那么,其中一个事物就能够通 过其他事物预测到。
2019年8月25
感谢你的观看
15
关联规则的性质:
性质1:频繁项集的子集必为频繁项集。 性质2:非频繁项集的超集一定是非频繁的。 Apriori算法运用性质1,通过已知的频繁项集构成
长度更大的项集,并将其称为潜在频繁项集。潜在 频繁k项集的集合Ck 是指由有可能成为频繁k项集的 项集组成的集合。以后只需计算潜在频繁项集的支 持度,而不必计算所有不同项集的支持度,因此在 一定程度上减少了计算量。
通过迭代,检索出事务数据库中的所有频繁项集,即支持 度不低于用户设定的阈值的项集;
利用频繁项集构造出满足用户最小信任度的规则。
挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
2019年8月25
感谢你的观看
14
频繁项集
为了避免计算所有项集的支持度(实际上频 繁项集只占很少一部分),Apriori算法引入 潜在频繁项集的概念。若潜在频繁k项集的 集合记为Ck ,频繁k项集的集合记为Lk ,m 个项目构成的k项集的集合为 ,则三者之间 满 遵循足的关原系则Lk 是C“k 频繁。C项mk构集成的潜子C在集mk 频必繁为项频集繁所项 集”。
感谢你的观看
10
关联规则基本模型(续)
关联规则就是支持度和信任度分别满足用 户给定阈值的规则。
发现关联规则需要经历如下两个步骤:
找出所有频繁项集。 由频繁项集生成满足最小信任度阈值的规则。
2019年8月25
感谢你的观看
11
Transaction-id 10 20 30 40
Items bought A, B, C A, C A, D B, E, F
3
40
B, E
L2 Itemset sup
{A, C} 2 {B, C} 2 {B, E} 3 {C, E} 2
C2 Itemset sup
{A, B} 1 {A, C} 2 {A, E} 1 {B, C} 2 {B, E} 3 {C, E} 2
C2 2nd scan
Itemset {A, B} {A, C} {A, E} {B, C} {B, E}
300 {b, f, h, j, o}
{f, b}
400 {b, c, k, s, p}
{c, b, p}
500 {a, f, c, e, l, p, m, n}
{f, c, a, m, p}
最小支持度 = 0.5
步骤:
1. 扫描数据库一次,得到频繁 1-项集
2. 把项按支持度递减排序
3. 再一次扫描数据库,建立FPtree
可信度, c, 包含{X 、 Y}的交 易中也包含Z的条件概率
交易ID 2000 1000 4000 5000
购买的商品 A,B,C A,C A,D B,E,F
设最小支持度为50%, 最小可 信度为 50%, 则可得到
A C (50%, 66.6%)
C A (50%, 100%)
2019年8月25
更加广泛的用处
购物篮分析、交叉销售、直销 点击流分析、DNA序列分析等等
2019年8月25
感谢你的观看
5
II. 关联规则基本模型
关联规则基本模型 Apriori算法 Fp-Tree算法
2019年8月25
感谢你的观看
6
I. 关联规则基本模型
IBM公司Almaden研究中心的R.Agrawal首先 提出关联规则模型,并给出求解算法AIS。 随后又出现了SETM和Apriori等算法。其中, Apriori是关联规则模型中的经典算法。
Customer buys both
Customer buys diaper
Customer buys beer
Let min_support = 50%, min_conf = 50%: A C (50%, 66.7%) C A (50%, 100%)
2019年8月25
感谢你的观看
12
Transaction-id 10
关联规则挖掘算法
Agrawal等人提出的AIS,Apriori和AprioriTid Cumulate和Stratify,Houstsma等人提出的SETM Park等人提出的DHP Savasere等人的PARTITION Han等人提出的不生成候选集直接生成频繁模式
FPGrowth 其中最有效和有影响的算法为Apriori,DHP和