Chapter 6. 挖掘频繁模式、关联与相关

合集下载

数据挖掘中的频繁模式与关联分析

数据挖掘中的频繁模式与关联分析
• 哪些商品经常一同被购买?——啤酒和尿布? • 购买电脑后会再买什么? • 怎样的DNA对新药敏感?
应用:购物篮分析、交叉营销、网络日志分析等
频繁模式与关联规则
TID
购物篮
10
啤酒, 坚果, 尿布
20
啤酒, 咖啡, 尿布
30
啤酒, 尿布, 鸡蛋
40
坚果, 鸡蛋, 牛奶
50
坚果, 咖啡, 尿布, 鸡蛋, 牛奶
两种都买 购买尿布的人 的人
购买啤酒的人
购物篮分析
• 项集(itemset):一个或多个项的集合
• k-项集X={x1,…,xk}
• 项集绝对支持度(support_count): 项集X的出现频度(即包含项集的事务 数)
• 项集相对支持度(support):包含项 集X的事务所占比例(即一条事务中包 含项集X的概率)
• 设最小支持度minsup=50%,最小置信度 minconf=50%
• 频繁项集:啤酒:3,坚果:3,尿布:4,鸡蛋:3,{ 啤酒,尿布}:3
• 强关联规则:
• 啤酒→尿布(60%, 100%) • 尿布→啤酒(60%, 75%)
频繁模式与关联规则
关联规则X→Y:
confidence( X →Y ) P(Y | X ) support( X Y ) support _ count(X Y ) ,( X Y )
数据挖掘中的频繁模式与关联分析
演讲人:XXX
Contents
1
数据挖掘
2
频繁模式与关联规则
3
挖掘方法
数据挖掘
数据 科学
20世纪70年代
• 关系型数据库 • DBMS
2000年后

频繁模式挖掘与关联规则挖掘

频繁模式挖掘与关联规则挖掘



一个项集X是闭模式,如果X是频繁的,且不存在超模式 Y ‫ כ‬X具有与X同样的支持度(Pasquier,ICDT’99)
一个项集X是一个最大模式,如果X是频繁的,并且不存在 频繁超模式 Y ‫ כ‬X (Bayardo,SIGMOD’98) 闭模式是频繁模式集的无损压缩



压缩了模式与规则的数目

为找到频繁项集 i1i2…i100

扫描遍数:100 产生的候选项集数目:C1001 + C1002 + … + C110000 = 2100-1 = 1.27*1030 !

瓶颈:候选的产生与验证 能否不生成候选项集?
数 据 挖 掘 23
2015-4-21
无候选生成的频繁模式挖掘

基于短模式,使用局部频繁项得到长模式

重新扫描数据库,找出遗漏的频繁项集
数 据 挖 掘 21
2015-4-21
提高Apriori的有效性
ABCD ABC ABD ACD BCD

动态项集计数:减少扫描次数 一旦 A 与 D 都被确定是频繁的,马上 开始对 AD 的计数 一旦项集 BCD 的所有长度为2的子集 都被确定是频繁的,马上开始对 BCD 的计数
数 据 挖 掘 11

2015-4-21
Apriori 方法

逐层搜索:由 K-项集到 k+1-候选项集 方法:

扫描数据集一次,得到所有长度为1的频繁项 集 基于长度为 K 的频繁项集,生成长度为 k+1 的候选项集 扫描数据集,检测候选项集是否频繁 当没有频繁项集或候选项集生成时,中止算法。

由 abc 与 abd 得到 abcd

【智能信息处理】CHAPTER6-挖掘关联规则

【智能信息处理】CHAPTER6-挖掘关联规则

Y,并
• (proposed by Bayardo @ SIGMOD’98)
11
极大频繁项集
Maximal Itemsets
极大频繁项集的真超项集不频繁
null
A
B
C
D
E
AB
AC
AD
AE
BC
BD
BE
CD
CE
DE
ABC
ABD
ABE
ACD
ACE
ADE
BCD
BCE
BDE
CDE
Infrequent Itemsets
闭频繁项集和极大频繁项集
Minimum support = 2
124
123
A
B
null
1234
C
245
D
• 驱动:发现数据中的内在规律
• 超市数据中的什么产品会一起购买?— 啤酒和尿布
• 在买了一台PC之后下一步会购买?
• 哪种DNA对这种药物敏感?
• 我们如何自动对Web文档进行分类?
• 更加广泛的用处
• 购物篮分析、交叉销售、直销
• 点击流分析、DNA序列分析等等
3
什么是频繁模式分析?
频繁模式挖掘为什么重要?
第6章 挖掘频繁模式、关联和相关 性:基本概念和方法
第6章:挖掘频繁模式、关联和相关性: 基本概念和方法
• 基本概念 • 频繁项集挖掘方法 • 那些模式是有趣的:模式评估方法 • 小结
2
什么是频繁模式分析?
• 频繁模式: 频繁出现在数据集中的模式(如项集、子序列或子结构)
• 首先被Agrawal, Imielinski and Swami在1993年的SIGMOD会议上提出,称 为频繁项集和关联规则挖掘

第6章 数据挖掘技术2(关联规则挖掘)

第6章 数据挖掘技术2(关联规则挖掘)

求L3。比较候选支持度计数与最小支持度计数得: 项集 I1,I2,I3 I1,I2,I5 支持度计数 2 2


所以 L3=C3 求C4= L3 ∞ L3={I1,I2,I3,I5} 子集{I2,I3,I5} L3,故剪去; 故C4=,算法终止。 结果为L=L1 U L2 U L3
24
19:40
定义5:强关联规则。同时满足最小支持度(min_sup) 和最小可信度(min_conf)的规则称之为强关联规 则 定义6:如果项集满足最小支持度,则它称之为频繁项 集(Frequent Itemset)。
19:40 9
2. 关联规则挖掘过程

关联规则的挖掘一般分为两个过程: (1)找出所有的频繁项集:找出支持度大于 最小支持度的项集,即频繁项集。
由L1 产生C2
项集 支持度 计数 {I1} {I2} {I3} {I4} {I5} 6 7 6 2 2
19:40
19
C2
C2
比较候 支持度 选支持 度计数 4 与最小 4 支持度 1 计数 2
4 2 2 0 1 0
L2
项集 支持度
{I1,I4} {I1,I5} {I2,I3} {I2,I4} {I2,I5} {I3,I4} {I3,I5} {I4,I5}
Apriori是挖掘关联规则的一个重要方法。 算法分为两个子问题: 找到所有支持度大于最小支持度的项集 (Itemset),这些项集称为频繁集 (Frequent Itemset)。 使用第1步找到的频繁集产生规则。
19:40
14



Apriori 使用一种称作逐层搜索的迭代方法, “K-项集”用于探索“K+1-项集”。 1.首先,找出频繁“1-项集”的集合。该集合 记作L1。L1用于找频繁“2-项集”的集合L2, 而L2用于找L3, 如此下去,直到不能找到“K-项集”。找每个 LK需要一次数据库扫描。

频繁模式及关联规则挖掘技术

频繁模式及关联规则挖掘技术

频繁模式挖掘的重要性
• 许多重要数据挖掘任务的基础
– 关联、相关性、因果性 – 序列模式、空间模式、时间模式、多维 – 关联分类、聚类分析
• 更加广泛的用处
– 购物篮分析、交叉销售、直销 – 点击流分析、DNA序列分析等等
II. 关联规则基本模型
• 关联规则基本模型 • Apriori算法 • Fp-Tree算法
• 设I={i1, i2,…, im}为所有项目的集合,D为事务数 据库,事务T是一个项目子集(T I)。每一个事 务具有唯一的事务标识TID。设A是一个由项目构 成的集合,称为项集。事务T包含项集A,当且仅 当A T。如果项集A中包含k个项目,则称其为k 项集。项集A在事务数据库D中出现的次数占D中
Custom er buys both
Custom er buys beer
min_conf =
Customer buys diaper
Transaction-id 10
Items bought A, B, C
Min. support 50% Min. confidence 50%
20
A, C
30
• 挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
频繁项集
• 为了避免计算所有项集的支持度(实际上频繁项集只占很
少一部分),Apriori算法引入潜在频繁项集的概念。若潜
在频繁k项集的集合记为Ck ,频繁k项集的集合记为Lk ,m
个项目构成的k项集的集合为 ,则三者之间满足关系Lk
II. Apriori算法的步骤
• Apriori算法命名源于算法使用了频繁项集性质的先 验(Prior)知识。
• Apriori算法将发现关联规则的过程分为两个步骤:

关联分析与频繁模式挖掘PPT文档共95页

关联分析与频繁模式挖掘PPT文档共95页
- 生成所有支持度 minsup的项集
关联规则分析 的核心
2. 构造规则
- 用每个频繁项集生成高置信度的规则
- 对频繁模式的每次分割(一分为二)就形成一条规则, 再判断该规则是否满足最小置信度阈值条件。
{Milk, Diaper, Beer} s=0.4 {Milk} s=0.8
{Milk} {Diaper,Beer} s=0.4, c=0.4/0.8=0.5
规则评估度量指标
Example:
{Mi,D lkia}p e{B r ee
支持度-Support (s)
同时包含X和Y的事务占事务总数的比 s(M,D ilk ia Bp)e ee 2r r,0.4

|T|
5
置信度-Confidence (c)
在所有包含X的事务中包含Y的事务所 占比例
c( M (M D i,lD ik ilk a,B i)a pe )p e e 3 2 e r r,r0.67
内容
简介 基本概念 关联分析基本方法
基本内容 频繁模式挖掘 关联规则生成
模式评估
关联规则分析-内容
给定一个事务数据库TD,关联规则挖掘的目标 是要找到所有支持度和置信度都不小于指定阈 值的规则。
支持度 ≥ minsup threshold 置信度 ≥ minconf threshold
关联分析与频繁模式挖掘
21、没有人陪你走一辈子,所以你要 适应孤 独,没 有人会 帮你一 辈子, 所以你 要奋斗 一生。 22、当眼泪流尽的时候,留下的应该 是坚强 。 23、要改变命运,首先改变自己。
24、勇气很有理由被当作人类德性之 首,因 为这种 德性保 证了所 有其余 的德性 。--温 斯顿. 丘吉尔 。 25、梯子的梯阶从来不是用来搁脚的 ,它只 是让人 们的脚 放上一 段时间 ,以便 让别一 只脚能 够再往 上登。

6.挖掘频繁模式、关联和相关性剖析

在事务集D中成立,并且具有支持度s和置信度c
基本概念——示例
项的集合 I={A,B,C,D,E,F} 每个事务T由事务标识符TID标识,它是项的集合
TID(2000)={A,B,C} 任务相关数据D是数据库事务的集合
TID 2000 1000 4000 5000
购买的item A,B,C A,C A,D B,E,F
繁项集
提高Apriori算法的有效性(2)
方法3:划分
挖掘频繁项集只需要两次数据扫描 D中的任何频繁项集必须作为局部频繁项集至ቤተ መጻሕፍቲ ባይዱ出现在一个部
分中。
第一次扫描:将数据划分为多个部分并找到局部频繁项集 第二次扫描:评估每个候选项集的实际支持度,以确定全局频
同时满足最小支持度阈值 和最小置信度阈值的规则 称作强关联规则
关联规则挖掘 的两步过程
一般来说,关联规则的挖掘可以看作两步的过程:
找出所有频繁项集
该项集的每一个出现的频繁性 ≥ min_sup
由频繁项集产生强关联规则 即满足最小支持度和最小置信度的规则
主要挑战:会产生大量满足min_sup的项集,尤其 当min_sup设置得低的时候
Apriori算法 (2)
Apriori算法利用的是Apriori性质:频繁项集的所有 非空子集也必须是频繁的。
AB 模式不可能比A更频繁的出现
Apriori算法是反单调的,即一个集合如果不能通 过测试,则该集合的所有超集也不能通过相同 的测试。
Apriori性质通过减少搜索空间,来提高频繁项集 逐层产生的效率
Chapter 6:挖掘频繁模式、关联和相关性
基本概念 频繁项集挖掘方法 模式评估方法 小结
1
什么是频繁模式分析?

数据挖掘 第6章--挖掘频繁模式、关联和相关性ppt课件


con (A fiB ) d P ( e B |A n ) s cu p ep _ o cr o (A t u B )nt su pp _ o cr o (A t)unt
每个关联规则可由如下过程产生
➢ 对于每个频繁项集L,产生L的所有非空子集
➢ 对于每个非空子集s,如果 suppo_rctou(l)ntmin co_nf则输出规则
最新编辑ppt
4
购物篮分析
关联规则表示
➢ 如果问题的全域是商店中所有商品的集合,则对每种商品都可以用一个布尔量来 表示该商品是否被顾客购买,则每个购物篮都可以用一个布尔向量表示;而通过 分析布尔向量则可以得到商品被频繁关联或被同时购买的模式,这些模式就可以 用关联规则表示(0001001100,这种方法丢失了什么信息?)
最新编辑ppt
13
• 频繁项集挖掘方法
最新编辑ppt
Apriori算法:通过限制候选产生发现频繁项集
Apriori算法是挖掘布尔关联规则频繁项集的算法
Apriori算法利用的是Apriori性质
➢ 频繁项集的所有非空子集也必须是频繁的
如果 {beer, diaper, nuts} 是频繁的, {beer, diaper}也是
关联规则的两个兴趣度度量
➢ 支持度 bu(X y,"scom")p u btue(X yr,"ssoft"w ) are ➢ 置信度 [su pp or2% tc,onfid 6% e 0n]ce
最新编辑ppt
5
频繁项集、闭项集和关联规则
频繁项集、闭项集基本概念
➢ k-项集:包含k个项的集合。例如:{牛奶,面包,黄油}是个3-项集 ➢ 项集的频率是指包含项集的事务数 ➢ 如果项集的频率大于最小支持度×D中的事务总数,则称该项集为频繁项集 ➢ 项集X在数据集D中是闭的,即不存在真超项集Y,使得Y与X在D中具有相同的

数据挖掘与分析学习笔记(频繁模式挖掘-项集挖掘)

深度优先
项集挖掘
频繁项集挖掘算法
2.支撑计算:
生成候选项集后,就要进一步的计算每个候选模式X的支撑,以便判断该候选模式X是否为频繁项集。计算方法如下:
BruteForce(D,I,minsup) //I为项集,D为由项集I及其子集和事务标识符集合构成的事务数据集,minsup为最小支撑阈值。
F ← ∅ //初始化频繁项集集合为空集;
规则的相对支撑为:rsup( → ) =
sup

一个项集规则的置信度是一个事务中即包含项集X,也包含项集Y的条件概率,
即 = → = =
()
()
=
sup
sup()
如果一个项集规则的支撑大于等于预先设定的阈值,即sup ≥ minsup(minsup为预定阈值),则称这个规则是频繁
的,如果一个项集规则的置信度大于等于预先设定的阈值,即 → ≥ minconf,则称这个项集规则为强规则。
5.项集和规则挖掘
项集和规则挖掘的目的就是通过枚举所有的频繁项集及其置信度,获取频繁且高置信度的规则。
项集挖掘
频繁项集挖掘算法
1.候选生成:项集I中的每个子集也被称作候选,因为每个项集都可能是一个候选的频繁模式。
子集一定也是频繁的;反之如果一个项集是不频繁的,则这个项集的所有超集集也一定是不频繁的。Apriori算法利用了项
集的这一特性,采用逐层宽度优先算法来搜索项集空间,并修剪掉所有的不频繁的候选的超集。
Apriori(D,I,minsup):
← ∅ //初始化频繁项集集合为空集
(1) ← ሼ∅ሽ //单个项集的初始化前缀树
(+1) ← ( () ) //展开前缀树

挖掘频繁模式关联和相关


5.1基本概念: 频繁模式与关联规则
Transaction-id Items bought

10
20 30 40 50
Customer buys both
A, B, D
A, C, D A, D, E B, E, F B, C, D, E, F
Customer buys diaper


项集 X = {x1, …, xk} 每个事务T是项的集合 关联规则是形如 X Y 的蕴 涵式,满足最小支持度和置 信度 支持度 s, 事务中同时包含 项X Y的概率 置信度 c, 事务包含项 X 时 也包含项Y 的条件概率
L1 = {frequent items}; for (k = 1; Lk !=; k++) do begin Ck+1 = candidates generated from Lk; for each transaction t in database do
increment the count of all candidates in Ck+1 that are contained in t Lk+1 = candidates in Ck+1 with min_support end return k Lk;
{1 3} {2 3} {2 5} {3 5} 2 2 3 2
{1 {1 {1 {2 {2 {3 2} 3} 5} 3} 5} 5} 1 2 1 2 3 2
C2 itemset {1 2} Scan D
{1 {1 {2 {2 {3 3} 5} 3} 5} 5}
C3 itemset {2 3 5}
Scan D

多次扫描数据库代价高:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.减少交易记录: 不包含任何频繁k-项集的交易也不可能包含任何
大于k的频繁集,下一步计算时删除这些记录。 3.划分: 一个项集要想在整个数据库中是频繁的,那么他至少在数 据库的一个分割上是频繁的。 两次扫描数据。(157页图5-6) 4.抽样: 使用小的支持度+完整性验证方法。在小的抽样集上找到
局部频繁项集,然后在全部数据集找频繁项集。
from Lk-1 p, Lk-1 q
where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 <
q.itemk-1

Step 2: 修剪
forall itemsets c in Ck do
forall (k-1)-subsets s of c do
C2 2nd scan
Itemset {A, B} {A, C}
L3
su p 2
{A, E} {B, C} {B, E} {C, E}
18
Apriori 算法

伪代码: Ck: 大小为k的候选集 Lk : 大小为k的频繁项集
L1 = {频繁项集}; for (k = 1; Lk !=; k++) do begin Ck+1 = 从 Lk生成的候选集 for 数据库中每个交易 t do 增加Ck+1 中包含在t的候选项集的计数 Lk+1 = Ck+1 的候选集with min_support


项集: 项的集合 k-项集 X = {x1, …, xk} (绝对) 支持度, or, 支持计数 of X: 项集X出现的频数 (相对) 支持度, s, X (如一个交易 包含X的概率)出现的百分数 项集X 是频繁的,如果 X的支持 度不小于最小支持度 阈值。
Customer buys beer
6
关联规则

所有形如X ⇒Y 蕴涵式的称为关联规则,这里X ⊂I, Y ⊂I,并且X∩Y=Φ 。 关联规则是有趣的,如果它满足最小支持度阈值与 最小置信度阈值,并称之为强规则

7
置信度与支持度

支持度,s, 一个事务中包含 XY的 项集 X={i1, …, ik} 可能性 找出所有具有最小置信 support(X⇒Y)=同时包含项目 度和支持度的关联规则 集X和Y的交易数/总交易数

17
Apriori 算法-例子
Database TDB
Tid 10 20 30
40
Itemset
su p
Items A, C, D B, C, E A, B, C, E B, E
Itemset {A, C} {B, C} {B, E} {C, E}
C1 1st scan C2
su p 2 2 3 2
Leaf node of hash-tree contains a list of itemsets and
counts

Interior node contains a hash table
22
Apriori算法足够的快吗? —瓶颈问题的产生
23
提高Apriori效率的方法
1.基于Hash的项集计数: 若 k-项集在hash-tree的路径上的一个 计数值低于阈值,那他本身也不可能是频繁的。(157页图5-6)

最大模式集是什么?


所有模式集是什么?

13
频繁模式挖掘的计

频繁项集的数量与最小支持度阈值有关
当minsup 很小时, 频繁项集的数量指数性增长 最糟糕的情形: MN where M: # distinct items, and N: max length of transactions 例. 假设Walmart 有104 种产品
if (s is not in Lk-1) then delete c from Ck
21
如何计算候选集的支持度?

为什么计数支持度是一个问题?

候选集的数量非常大 一条交易可能包含很多候选项集 Candidate itemsets are stored in a hash-tree

方法:

{Beer, Diaper}:3
Customer buys beer

关联规则: (many more!) Beer Diaper (60%, 100%) Diaper Beer (60%, 75%)
11
闭合模式和最大模式

长模式包含组合数量的子模式,即, {a1, …, a100} 包 含(1001) + (1002) + … + (110000) = 2100 – 1 = 1.27*1030 子模式! 解决方法: 挖掘闭合模式和 最大模式
5
关联规则挖掘形式化定义
给定: ������ 设I ={i1 , i2 ,…, im}是项(item)的集 合。若干项的集合,称为项集(Item Sets) ������ 记D为交易(transaction) T (或事务)的集 合,这里交易T 是项的集合,并且T ⊆I 。对 应每一个交易有唯一的标识,如交易号,记 作TID 。设X是一个I中项的集合,如果X ⊆T, 那么称交易T包含X。 寻找:有趣的关联规则(强规则).
5.动态项集计数: 在添加一个新的候选集之前,先估计一下是不是 他的所有子集都是频繁的。
2014-6-22 数据挖掘:概念和技术 24
挖掘频繁模式项集的模式增长方法

Apriori 方法的瓶颈

宽度(i.e., level-wise) 优先搜索
候选集生产与测试

经常产生巨大数量的候选集

频繁模式增长方法(J. Han, J. Pei, and Y. Yin, SIGMOD’ 00)
X ⇒Y
用于描述有用性.
两者都买 的顾客
买尿片的顾 客
置信度 c, 一个事务中 包含X 也包含Y的 条件概率.
confidence(X⇒Y)=同时购买商 品X和Y的交易数/购买商品X的交 易数
买啤酒的顾客
用于描述确定性,即”值得信赖的程 度””可靠性”
8
关联规则的基本形式

关联规则的基本形式: 前提条件⇒结论[支持度, 置信度]

buys(x, “diapers”) ⇒buys(x, “beers”) [0.5%, 60%] major(x,“CS”) takes(x, “DB”) ⇒grade(x, “A”) [1%, 75%]

包含k个项目的集合,称为k-项集 项集的出现频率是包含项集的事务个数,称为项 集的频率、支持计数或者计数
abcd from abc and abd acde from acd and ace acde is removed because ade is not in L3
20

修剪:


C4={abcd}
如何生成候选集?

假定 Lk-1 的项集被按序排列 Step 1: 连接 Lk-1
insert into Ck select p.item1, p.item2, …, p.itemk-1, q.itemk-1
15
Apriori方法

频繁项集的定义
如果项集满足最小支持度,则称之为频繁项集 (高频项集)

频繁项集的基本特征 任何频繁项集的非空子集均为频繁项集。例如: ABC是频繁项集,则AB、AC、BC均为频繁项集。 反之:如AB不是频繁项集,则ABC不可能是频繁项 集
16
Apriori方法

是一种称作逐层搜索的迭代方法。 用k-项集探求(k+1)-项集。 具体地:首先找出频繁1-项集,该集合记为L1;用 L1找出频繁2-项集的集合L2;如此继续下去,直到 找到最大频繁项集 该方法,主要有连接和剪枝两步构成。
end return k Lk;
19
Apriori的重要细节

如何生成候选集?

Step 1: self-joining Lk Step 2: pruning

如何计算候选集的支持度? 候选集生成例子

L3={abc, abd, acd, ace, bcd} 连接步: L3*L3

数据仓库与数据挖掘
第6章 挖掘频繁模式、关联和相关 性
李成安
华南理工大学经济与贸易学院 © 2013
1
June 22, 2014
Data Mining: Concepts and Techniques
2
第6章: 挖掘频繁模式、关联和相关性: 基本概念和 方法
基本概念 频繁模式挖掘方法
什么模式是有趣的?—模式评价方法
10
基本概念: 关联规则
Tid
Items bought Beer, Nuts, Diaper Beer, Coffee, Diaper
10 20

发现所有规则X Y with 最小支持
度和置信度 支持度, s,一个交易包含X Y 的概率 置信度, c,一个包含 X的交易 也包含 Y的条件概率



闭合模式是频繁模式的无损压缩

减少模式和规则的数量
12
闭合模式和最大模式

例子. DB = {<a1, …, a100>, < a1, …, a50>}

Min_sup = 1.
<a1, …, a100>: 1

闭合模式集是什么?


< a1, …, a50>: 2
<a1, …, a100>: 1 !!
相关文档
最新文档