数据挖掘概念与技术第5章挖掘频繁模式、关联和相关
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
根据规则中设计的数据维
◦ 单维关联规则
E.g.(仅涉及buys这个维)
buys ( X , "computer") buys ( X , " antivirus_ software")
◦ 多维关联规则 age ( X , "30...39") income ( X , "42k...48k") buys ( X , " high _ resolution TV ")
Hale Waihona Puke Baidu
揭示数据集的内在的、重要的特性 作为很多重要数据挖掘任务的基础
◦ ◦ ◦ ◦ ◦ ◦ 关联、相关和因果分析 序列、结构(e.g.子图)模式分析 时空、多媒体、时序和流数据中的模式分析 分类:关联分类 聚类分析:基于频繁模式的聚类 数据仓库:冰山方体计算
如果问题的全域是商店中所有商品的集合,则对每种商品 都可以用一个布尔量来表示该商品是否被顾客购买,则每 个购物篮都可以用一个布尔向量表示;而通过分析布尔向 量则可以得到商品被频繁关联或被同时购买的模式,这些 模式就可以用关联规则表示(e.g. 0001001100,这种方法丢失了 什么信息?) 关联规则的两个兴趣度度量
根据规则集所涉及的抽象层
◦ 单层关联规则 ◦ 多层关联规则 (挖掘的规则集由多层关联规则组成)
E.g. 下例购买的商品涉及不同的抽象级
buys ( X , " computer" ) buys ( X , " HP _ pr int er" ) buys( X , " laptop _ computer" ) buys( X , " HP _ p int er" )
A C (50%, 66.6%) C A (50%, 100%)
项的集合 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
如果不存在真超项集Y 使得Y 与X 在S 中有相同的支持度计 数,则称项集X 在数据集S 中是闭的。项集X 是数据集S 中 的闭频繁项集,如果X 在S 中是闭的和频繁的。项集X 是S 中的极大频繁项集(或极大项集),如果X 是频繁的,并且 不存在超项集Y 使得 X Y 并且Y 在S 中是频繁的。 设C 是数据集S 中满足min_sup的闭频繁项集的集合,令M 是S 中满足min_sup的极大频繁项集的集合。假定我们有C 和M 中每个项集的支持度计数,则C 和他的计数信息可以用 来导出频繁项集的完整集合(我们称C 包含了关于频繁项集 的完整信息)。 E.g.
根据挖掘的模式的完全性分类:给定min_sup, 可以挖掘频繁项集的完全集,闭频繁项集和极大 频繁项集。也可以挖掘被约束的频繁项集(即满 足用户指定的一组约束的频繁项集)、近似的频 繁项集(只推导被挖掘的频繁项集的近似支持度 计数)、接近匹配的频繁项集(即与接近或几乎 匹配的项集的支持度计数符合的项集)、top-k 频繁项集 不同的应用对挖掘的模式的完全性有不同的要求, 我们主要研究挖掘频繁项集的完全集、闭频繁项 集和被约束的频繁项集
Database TDB
Tid
10 20 30 40
Itemset
sup 2 3 3
Items
A, C, D B, C, E A, B, C, E B, E Itemset {A, C} {B, C} {B, E} {C, E} sup 2 2 3 2
C1 1st scan C2
{A} {B} {C}
C3
Itemset {A,B,C} {B, C, E}
3rd scan
L3
{C, E}
Itemset {B, C, E} sup 2
1 .连接: ◦ C3=L2 L2= {{A,C},{B,C},{B,E}{C,E}} {{A,C},{B,C},{B,E}{C,E}} = {{A,B,C},{A,C,E},{B,C,E}} 2.使用Apriori性质剪枝:频繁项集的所有子集必须是频繁的,
3.这样,剪枝后得到C3={{B,C,E}}
同时满足最小支持度和最小置信度的才是强关联规 则,从频繁项集产生的规则都满足支持度要求,而 其置信度则可由一下公式计算:
confidence( A C) P(C | A) P( A C) / P( A) sup port( A C) / sup port( A) 66.6%
Apriori算法是挖掘布尔关联规则频繁项集的算法 Apriori算法利用频繁项集性质的先验知识(prior knowledge),通过逐层搜索的迭代方法,即将 k-项集用于探察(k+1)-项集,来穷尽数据集中的 所有频繁项集。
L1
Itemset {A} {B} {C} {E}
sup 2 3 3 3
{D}
{E} Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E}
1
3 sup 1 2 1 2 3 2
L2
C2 2nd scan
Itemset {A, B} {A, C} {A, E} {B, C} {B, E}
Ck是Lk的超集,即它的成员可能不是频繁的,但是所 有频繁的k-项集都在Ck中(为什么?)。因此可以通 过扫描数据库,通过计算每个k-项集的支持度来得到 Lk 。
◦ 为了减少计算量,可以使用Apriori性质,即如果一个k-项集 的(k-1)-子集不在Lk-1中,则该候选不可能是频繁的,可以直 接从Ck删除。
confidence( A B) P( B | A)
sup port( A B) sup port _ count( A B) sup port( A) sup port _ count( A)
一般来说,关联规则的挖掘可以看作两步的过程:
◦ 找出所有频繁项集 ◦ 由频繁项集产生强关联规则
根据规则中所处理的值类型
◦ 布尔关联规则(规则考虑的关联为项是否出现)
computer antivirus_ software [sup port 2%, confidence 60%]
◦ 量化关联规则(规则描述量化的项或属性间的关联)
age ( X , "30...39") income ( X , "42k...48k") buys ( X , " high _ resolution TV ")
该项集的每一个出现的频繁性 ≥ min_sup
主要挑战:会产生大量满足min_sup的项集, 尤其当min_sup设置得低的时候
即满足最小支持度和最小置信度的规则
◦ E.g. 一个长度为100的频繁项集{a1,a2,…,a100} 包含的 频繁项集的总个数为
1 2 100 C100 C100 ... C100 2100 1 1.27 1030
对候选项C3,我们可以删除其子集为非频繁的选项:
◦
{A,B,C} 的2项子集是{A,B},{A,C},{B,C},其中{A,B} 不是L2 的元素,
所以删除这个选项;
◦
◦
{A,C,E} 的2项子集是{A,C},{A,E},{C,E},其中{A,E} 不是L2 的元素,
所以删除这个选项;
{B,C,E} 的2项子集是{B,C},{B,E},{C,E},它的所有2-项子集都是 L2 的元素,因此保留这个选项。
滕少华
频繁模式是频繁的出现在数据集中的模式
◦ 如项集、子序或者子结构
动机:发现数据中蕴含的内在规律
◦ ◦ ◦ ◦
那些产品经常被一起购买?---啤酒和尿布? 买了PC之后接着都会买些什么? 哪种DNA对这种新药敏感 我们能够自动的分类WEB文档吗?
应用
◦ 购物篮分析、WEB日志(点击流)分析、捆绑销售、DNA 序列分析等
◦ DB中只有两个事务{<a1,a2,…,a100>; <a1,a2,…,a50>}, min_sup=1,则 C= {<a1,a2,…,a100>:1; <a1,a2,…,a50>:2}, M= {<a1,a2,…,a100>:1} (显然{a1,a2,…,a50} 有个频繁超集 {a1,a2,…,a100} )。
◦ 先找到频繁1-项集集合L1,然后用L1找到频繁2-项集集合 L2,接着用L2找L3,直到找不到频繁k-项集,找每个Lk需 要一次数据库扫描。
Apriori算法利用的是Apriori性质:频繁项集的所 有非空子集也必须是频繁的。 ◦ A B 模式不可能比A更频繁的出现
◦ Apriori算法是反单调的,即一个集合如果不能通过测试, 则该集合的所有超集也不能通过相同的测试。 ◦ Apriori性质通过减少搜索空间,来提高频繁项集逐层产生 的效率
◦ 支持度 ◦ 置信度 ◦ 通常,如果关联规则同时满足最小支持度阈值和最小置信度阈值, 则此关联规则是有趣的
computer antivirus_ software [sup port 2%, confidence 60%]
给定:
◦ 项的集合:I={i1,i2,...,in} ◦ 任务相关数据D是数据库事务的集合,每个事务T 则是项 的集合,使得 ◦ 每个事务由事务标识符TID标识; T I ◦ A,B为两个项集,事务T 包含A当且仅当 A T ◦ 其中 A I , B I 并且 A B ,规则 A B 在事务 集D 中成立,并且具有支持度s 和置信度c
则关联规则是如下蕴涵式:
A B [s, c]
Customer buys both
Customer buys diaper
◦ 支持度s是指事务集D中包 含 A B 的百分比
sup port( A B) P( A B)
◦ 置信度c是指D中包含A的事 务同时也包含B的百分比
Customer buys beer
Items Bought A,B,C A,C A,D B,E,F
最小支持度 50% 最小置信度 50%
Frequent Itemset Support {A} 75% {B} 50% {C} 50% {A,C} 50%
Transaction ID 2000 1000 4000 5000
对规则A C,其支持度 sup port( A C) P( A C) =50% 置信度
confidence ( A B) P(B | A) P( A B) / P( A)
TID 2000 1000 4000 5000
购买的item A,B,C A,C A,D B,E,F
◦ 假设最小支持度阈值为50%, 最小置信度阈值为50%,则 有如下关联规则 ◦ 同时满足最小支持度阈值和 最小置信度阈值的规则称作 强规则
基本概念
◦ k-项集:包含k个项的集合 {牛奶,面包,黄油}是个3-项集 ◦ 项集的频率是指包含项集的事务数,简称为项集的频率、 支持度计数或计数 ◦ 项集的支持度有时称为相对支持度,而出现的频率称作绝 对支持度。如果项集I的频率大于(最小支持度阈值×D中 的事务总数),则称该项集I为频繁项集。频繁k项集的集 合通常记作Lk。
根据所挖掘的规则类型分类
◦ 关联规则 ◦ 相关规则 ◦ 强梯度联系
根据所挖掘的模式类型分类
◦ 频繁项集挖掘
从事务或关系数据集中挖掘频繁项集
◦ 序列模式挖掘
从序列数据集中搜索频繁子序列
◦ 结构模式挖掘
在结构化数据集中搜索频繁子结构
最简单的关联规则挖掘,即单维、单层、布尔关联规 则的挖掘。
Apriori算法由连接和剪枝两个步骤组成。 连接:为了找Lk,通过Lk-1与自己连接产生候选k-项 集的集合,该候选k项集 记为Ck。
◦ Lk-1中的两个元素L1和L2可以执行连接操作 l1 l2的条件是
(l1 [1] l2 [1]) (l1 [2] l2 [2]) ... (l1[k 2] l2 [k 2]) (l1 [k 1] l2 [k 1])