频繁模式挖掘与关联规则挖掘
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
所有模式
2015-4-21
挖掘大型数据库中的关联规则
6.1 关联规则挖掘 6.2 由事务数据库挖掘单维布尔关பைடு நூலகம்规则 6.3 由事务数据库挖掘多层关联规则 6.4 由关系数据库和数据仓库挖掘多维关联 规则
6.5 由关联挖掘到相关分析
6.6 基于约束的关联挖掘 6.7 小结
18
提高Apriori的有效性
基于散列的技术
对于一个长度为k 的项集,若它所对应的哈希桶计数
小于阈值,则它不可能是频繁的
可有效减少守候选项集的数目 例子:
候选项集: a, b, c, d, e 哈希桶: {ab, ad, ae} {bd, be, de} … 长度为1的频繁项集: a, b, d, e 如果 {ab, ad, ae} 的计数之和小于支持度阈值,则 ab
数 据 挖 掘 12
2015-4-21
例子:Apriori 算法
事务数据库
事务号 项
Smin = 2
项集 {A}
S 2
项集
S 2 3 3 3
C1
第一遍扫描
{B}
{C} {D} {E}
3
3 1 3 S 1
L1
{A} {B} {C} {E}
10 20
A, C, D B, C, E
30
40
A, B, C, E
AB
AC
A
BC
B C
AD
D
BD
CD
事务 Apriori 1-项集 2-项集 … 1-项集 2-项集 DIC 3-项集
{}
项集网
2015-4-21
数 据 挖 掘
22
6.2.4 不产生候选挖掘频繁项集
对数据库的多遍扫描代价昂贵(costly)
挖掘长模式需要对数据库的多遍扫描,并会产生大 量候选项集
由 abc 与 abd 得到 abcd
由 acd 与 ace 得到 acde
由于 ade 不在 L3 中,acde 被删除
数 据 挖 掘 15
修剪:
2015-4-21
C4={abcd}
如何生成候选项集?
假设 Lk-1 中的项按某个次序排列
第一步:self-joining Lk-1
insert into Ck select p.item1, p.item2, …, p.itemk-1, q.itemk-1
基本概念:频繁模式与关联规则
事务号 购买的项
10
20 30 40 50 两样都买 的顾客
A, B, D
A, C, D A, D, E B, E, F B, C, D, E, F 购买尿布的 顾客
项集 X = {x1, …, xk} 找出所有置信度与支持度超过阈 值的规则 X Y 支持度(support),s,包含 X Y的事务出现的概率 置信度(confidence),c,事 务包含X时,也包含Y的条件概 率
2015-4-21 数 据 挖 掘 9
6.2 由事务数据库挖掘单维布尔关联规则
挖掘最简单形式的关联规则: 单维 单层 布尔 两个主要方法 Apriori(Agrawal & Srikant@VLDB’94) 频繁模式增长方法(FPgrowth—Han, Pei & Yin @SIGMOD’00)
是许多重要的数据挖掘任务的基础
关联分析,相关分析,与因果分析 序列模式,结构模式(如:子图)
时空数据、多媒体数据、时序数据、流数据中的模式分析
分类:关联分类 聚类:基于频繁模式的聚类
数据仓库:冰山数据立方
语义数据压缩 广泛的应用
购物篮数据分析,Web点击流分析,打折销售分析,DNA序列分析
数 据 挖 掘 11
2015-4-21
Apriori 方法
逐层搜索:由 K-项集到 k+1-候选项集 方法:
扫描数据集一次,得到所有长度为1的频繁项 集 基于长度为 K 的频繁项集,生成长度为 k+1 的候选项集 扫描数据集,检测候选项集是否频繁 当没有频繁项集或候选项集生成时,中止算法。
加1 Lk+1 = Ck+1 中所有计数超过支持度阈值的候选项集 end return k Lk;
2015-4-21 数 据 挖 掘 14
Apriori 中的重要细节
如何生成候选项集?
第一步:self-joining Lk 第二步:修剪
生成候选项集的例子
L3={abc, abd, acd, ace, bcd} Self-joining: L3*L3
一个项集X是闭模式,如果X是频繁的,且不存在超模式 Y כX具有与X同样的支持度(Pasquier,ICDT’99)
一个项集X是一个最大模式,如果X是频繁的,并且不存在 频繁超模式 Y כX (Bayardo,SIGMOD’98) 闭模式是频繁模式集的无损压缩
压缩了模式与规则的数目
不是长度为2的候选项集
2015-4-21 数 据 挖 掘 19
提高Apriori的有效性
事务压缩 不包含任何k-项集的事务不可能包含任何(k+1)- 项集 划分方法:仅扫描数据库两次
将数据库中的数据划分为几个子集,原数据库中任意
一个频繁项集至少在一个子集中是频繁的
第一遍扫描:划分数据库,并找到各个子集中的频繁项 第二遍扫描:计算全局频繁项
数 据 挖 掘
第六章 挖掘大型数据库中的关联规则
孙玉芬 yufen@whut.edu.cn
武汉理工大学 计算机科学与技术学院 计算机科学系
2015-4-21 数 据 挖 掘 1
挖掘大型数据库中的关联规则
6.1 关联规则挖掘 6.2 由事务数据库挖掘单维布尔关联规则 6.3 由事务数据库挖掘多层关联规则 6.4 由关系数据库和数据仓库挖掘多维关联 规则
2015-4-21 数 据 挖 掘 16
6.2.2 由频繁项集产生关联规则
强关联规则:满足支持度阈值和置信度阈值的规 则 基于频繁项集生成关联规则 对每个频繁项集L,产生L的所有非空子集 对于L的每个非空子集 S,如果支持度(L)/ 支持度(S)大于或等于置信度阈值,则输出 规则“S (L-S)‖ 事务号 项 例子:支持度阈值为2, 10 A, C, D 置信度阈值为70% 20 B, C, E 30 A, B, C, E BCE
mining)
动机:找出数据中存在的规则 A B
哪些产品总是被同时购买?—啤酒与尿布?! 顾客购买PC后,还会购买哪些商品?
哪种DNA会对某种新药敏感?
先挖掘频繁模式,然后挖掘关联规则
频繁模式:在一个数据集中频繁出现的模式 (数据项集, 子序列,子结构,等)
数 据 挖 掘 3
2015-4-21
2015-4-21
数 据 挖 掘
7
闭模式与最大模式
例子:DB = {<a1, …, a100>, < a1, …, a50>}
最小支持度 = 1 <a1, …, a100>: 1
< a1, …, a50>: 2
有哪些闭模式?
有哪些最大模式?
<a1, …, a100>: 1 !!
数 据 挖 掘 8
6.5 由关联挖掘到相关分析
6.6 基于约束的关联挖掘 6.7 小结
2015-4-21 数 据 挖 掘 2
6.1 关联规则挖掘
由Agrawal,Imielinski,与Swami [AIS93]首次提出频繁项集
(frequent itemsets)与关联规则挖掘(association rule
B, E 项集 {A, C} {B, C} {B, E} S 2 2 3
C2
项集 {A, B}
L2
C2
第二遍扫描
项集 {A, B} {A, C} {A, E}
{A, C}
{A, E} {B, C} {B, E} {C, E}
2
1 2 3 2
{C, E}
2
{B, C}
{B, E} 项集 S {C, E}
―abc‖ 是一个频繁模式 找出所有包含 “abc‖ 的事务: DB|abc ―d‖ 是 DB|abc 中的局部频繁项 abcd 是一个频 繁模式
2015-4-21
数 据 挖 掘
24
构建事务数据库的 FP-tree
事务号 购买的项 (有序)频繁项
100 200 300 400 500
from Lk-1 p, Lk-1 q
where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 <
q.itemk-1
第二步:修剪
For all 项集 c in Ck do For all (k-1)- 子集 s of c do
if (s is not in Lk-1) then delete c from Ck
2015-4-21
数 据 挖 掘
10
6.2.1 Apriori:一个基于候选集的方法
Apriori性质: 一个频繁项集的所有非空子集都必定是频繁的 如果 {啤酒,尿布,坚果} 是频繁的,则 {啤酒, 尿布}必定是频繁的 每个包含 {啤酒,尿布,坚果} 的事务,必定包含 {啤酒,尿布} 反单调 Apriori 修剪原则: 如果某个项集是不频繁的,则它 的超集不需要被考虑
2015-4-21
数 据 挖 掘
20
提高Apriori的有效性
选样
从原数据库中选取一个样本,使用 Apriori 算法
挖掘此样本中的频繁项集(使用较小的支持度阈
值)
扫描数据库,验证样本中的频繁项集在原数据库
中是否频繁。仅验证频繁项集闭包的边界
例子:仅检查 abcd, 不用检查 ab, ac, …, 等
数 据 挖 掘 5
2015-4-21
关联规则的分类
布尔关联规则与量化关联规则 计算机 财务管理软件 年龄(X,‖30…39‖) 收入(X,‖42k…48k‖) 购买(X,‖高清晰电视”) 单维关联规则与多维关联规则 单层关联规则与多层关联规则 年龄(X, ‖30…39‖ ) 购买(X,‖笔记本”) 年龄(X, ‖30…39‖ ) 购买(X,‖计算机”) 闭模式与最大模式
数 据 挖 掘 6
2015-4-21
闭模式与最大模式
一个长模式包含大量子模式。例如:{a1, …, a100} 包含 C1001 + C1002 + … + C110000 = 2100 – 1 = 1.27*1030子模式! 解决方法:挖掘闭模式( closed patterns )与最大模式 ( max-patterns)
C3
2015-4-21
项集 {B, C, E}
第三遍扫描
L3
{B, C, E}
2
13
数 据 挖 掘
Apriori 算法
伪码:
Ck :长度为 k 的候选项集 Lk : 长度为 k 的频繁项集
L1 = {频繁项}; for (k = 1; Lk !=; k++) do begin Ck+1 = 由 Lk 生成的候选项集; 对数据库中的每个事务 t do 将 Ck+1 中所有在 t 中出现的候选项集的计数分别
置supmin = 50%, confmin = 50% 频繁模式: {A:3, B:3, D:4, E:3, AD:3} 关联规则: A D (60%, 100%) D A (60%, 75%)
数 据 挖 掘 4
购买啤酒的顾客
2015-4-21
为什么频繁模式挖掘是重要的?
能发现数据集中内在的特性
为找到频繁项集 i1i2…i100
扫描遍数:100 产生的候选项集数目:C1001 + C1002 + … + C110000 = 2100-1 = 1.27*1030 !
瓶颈:候选的产生与验证 能否不生成候选项集?
数 据 挖 掘 23
2015-4-21
无候选生成的频繁模式挖掘
基于短模式,使用局部频繁项得到长模式
40
数 据 挖 掘
2015-4-21
B, E
17
6.2.3 提高Apriori的有效性
挑战
多遍事务数据库扫描
候选频繁项集的数目巨大 候选项集的计数工作量较大
改进 Apriori:思路
减少事务数据库扫描次数 减少候选项集数目 有效支持候选项集的计数
2015-4-21
数 据 挖 掘
重新扫描数据库,找出遗漏的频繁项集
数 据 挖 掘 21
2015-4-21
提高Apriori的有效性
ABCD ABC ABD ACD BCD
动态项集计数:减少扫描次数 一旦 A 与 D 都被确定是频繁的,马上 开始对 AD 的计数 一旦项集 BCD 的所有长度为2的子集 都被确定是频繁的,马上开始对 BCD 的计数