第六章 挖掘大型数据库中的关联规则
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
购物篮分析
设商店中所有销售商品为一个集合,每个商品均为一 个布尔变量,布尔变量用来表示该商品是否被(一个)顾 客购买。则,每个购物篮(事务数据库)可以用一个布 尔向量表示。
分析该布尔向量,得到反映商品频繁关联或同时购买 的购买模式。
5
购物篮分析
例如,在购买计算机的同时购买财务管理软件,可 用如下关联规则表示:
在第一次迭代中产生的候选集包含所有1项集并计算其支持大于阈值的1项集被选为频繁1算法首先去除非频繁1项集在频繁1项集的基础上产生候选二项集继而结合设定的最小支持度阈值产生频繁2如以表61中的数据为例
《数据挖掘》
主讲:王名扬 信息与计算机工程学院
引 言—要挖掘知识的类型
概念描述:特征化和比较; 关联规则; 分类/预测; 聚类分析; 其他的数据挖掘任务。
(1) 2 3 5, confidence= 2 / 2 = 100% (2) 2 5 3, confidence= 2 / 3 = 67% (3) 3 5 2, confidence= 2 / 2 = 100% (4) 2 3 5, confidence= 2 / 3 = 67% (5) 3 2 5, confidence= 2 / 3 = 67% (6) 5 2 3, confidence= 2 / 3 = 67%
APRIORI算法过程
在挖掘2-项集时,因为2-项集的任何子集都是频繁项集,所 以Apriori算法使用L1*L1来产生候选集。{*}运算通常定义为 : Lk*Lk={X∪Y 其中X,Y∈Lk,|X ∪ Y|=k+1} 注: |X ∪ Y|=k+1,即X和Y合取容量为k+1
因此,第二次迭代中的候选集C2由运算|L1|·|L1-1|/2所产生, 其个数为:4·3/2=6。用该列表来扫描DB,计算每一个候选 集的支持度,并与smin进行比较,产生2-项频繁集L2。图5-2 给出了所有这些步骤和第二次迭代的结果。
能揭示数据集内在的、重要的特性。
Apriori 算法
Apriori 算法原理:
任何一个频繁项集的子集必定是频繁项集; 如,如果{A,B}是频繁项集,则{A}、{B}都是频繁项集。 任何非频繁项集的超集都为非频繁项集 如,如果{A}、{B}是非频繁项集,则{A,B}是非频繁项
集
Apriori算法
(5) (6) (7)
Ct=subset(Ck,t); // Ct是所有t包含的候选集元素 FOR all candidates c Ct DO
c.count++;
(8) END
(9) Lk={cCk |c.countminsup_count} (10) END
(11) L= Lk;
36
38
乘积,就称该项集满足最小支持度min_sup 。 频繁项集:满足最小支持度的项集,频繁k-项集通常记做:Lk。
基本概念
频繁项集: 频繁项集是频繁出现在数据集中的项集; 有助于发现数据中蕴含的内在规律
哪些产品经常被一起购买?---啤酒和尿布? 买了PC之后接着都会买些什么? 哪种DNA对这种新药敏感?
的顾客中,有60% 也同时购买了财务管理软件。
6
1. 关联规则的基本概念?
关联规则挖掘的基本概念
1)事务数据库: 设I={ i1,i2,…,im }是一个项目集合,事务数据库D={ t1, t2,…,tn }是由一系列具有唯一标识TID的事务组成,每个事 务ti(i=1,2,…,n)都对应I上的一个子集。 示例:购物记录 I是全部物品集合,如商场现有的所有商品; D是购物清单,如顾客的购物清单; D中的每个元组ti代表一次事务(商业行为),是一次购买
置信度(
A
B)=
包含A和B的元组数 包含A的元组数Leabharlann 其中,A、B是项目的集合。
示例:假定任务相关数据由AllElectronics的计算机部购买物品的事务
数组成,一个置信度为85%的关联规则:
buys(X ,"computer") buys(X ,"software")
意味着买计算机(A)的顾客中,有85%也同时购买了软件(B)。
原理是:如果一个项集是频繁的,那么它的所有子集也是频繁的 。
在第一次迭代中,产生的候选集包含所有1-项集,并计算其支持度 s,s大于阈值的1-项集被选为频繁1-项集。
第二次迭代时,Apriori算法首先去除非频繁1-项集,在频繁1-项集 的基础上产生候选二项集,继而结合设定的最小支持度阈值,产 生频繁2-项集。
算法的关键步骤:
找出频繁项集:满足最小支持度的项目集; 方法:使用从1到k的候选集逐层递归的产生频繁项集。
由频繁项集产生关联规则。
APRIORI算法过程
Apriori算法利用逐层迭代来计算数据库中的频繁项集。第i次迭代 计算出所有频繁i项集(包含i个元素的项集)。每一次迭代有两个步 骤:产生候选集;计算和选择候选集。
基本概念
4)强关联规则: 置信度表示规则的可信度;置信度小:规则无意义 支持度表示模式在事务数据库中的出现频率;支持度小:规则使 用面窄
同时满足用户定义的最小置信度和最小支持度阈值的关联规则,
称为强关联规则(strong association rule),并被认为是有趣的。
2. 关联规则的分类?
APRIORI算法过程
6
APRIORI算法过程
候选集C3 运用L2*L2来产生,运算结果得到 {A,B,C},{A,C,E},{B,C,E},但只有{B,C,E}的所有子集是频繁项集,
成为候选的3-项集。然后扫描DB,根据最小支持计数,挖掘出频
繁3-项集,见图5-3所示:
3_项集C3
{ABC} {ACE} {BCE}
如,数码相机 => 手机。 层间关联规则:如果在不同的粒度层次上考虑问题,那
么得到的是层间关联规则。
如,数码相机 => 三星手机
关联规则的分类:
(3)基于规则中涉及的数据维数 单维关联规则:只涉及一个属性(维),处理单个属性 (维)中的一些关系
如:啤酒 => 尿布,只涉及到用户购买的物品一个维;
2
第6章
挖掘大型数据库中的关联规则
引言
关联规则挖掘发现大量数据中项集之间有趣的关联 或相关联系。
从大量商业事务记录中发现有趣的关联关系,可以 帮助许多商务决策的制定,如分类设计、交叉购物和 促销分析等。
2
引言
如何从事务DB或关系DB的大量数据中挖掘出关联规 则知识?
什么样的关联规则才是最有意义的? 如何才能使挖掘过程尽快发现有价值的关联规则知 识? 这是本章要讨论的内容。
关联规则的分类:
(1)基于规则中处理的变量类别 布尔型:离散的、可枚举的、种类化的 如:性别=“男”=> 职业=“网络工程师” 数值型:含有定量的数据项 如,性别=“男” => 收入=“3500”
关联规则的分类:
(2)基于规则中数据的抽象层次 单层关联规则:所有的变量都不考虑层次 如:性别=“男”=> 职业=“网络工程师”
computer => financial _ management _ software
[support = 2%, confidence = 60%] 关联规则的支持度(support)2% 表示:全部事务中,有
2% 的交易同时购买计算机和财务管理软件。 关联规则的置信度(confidence)60% 表示:购买计算机
多层关联规则:考虑变量的不同层次性 如,数码相机 => 三星手机,(数码相机是三星数码相机的 较高层抽象) 再如,数码相机 => 手机(数码相机、手机是三星数码相机 和三星手机的较高层抽象)。
关联规则的分类:
多层关联规则又可以分为:
同层关联规则:如果一个关联规则对应的项目是同一个 粒度层次,那么它是同层关联规则
多维关联规则:处理多个属性(维)上的关系 如,性别“女” => 职业“秘书”,此规则涉及到两个属性 (维)的关系。
6.2 由事务数据库挖掘单维布尔关联规则
关联规则挖掘的两步过程:
1)找出所有的频繁项集:这些项集出现的频繁性要满足 最小支持度原则。
2)由频繁项集产生强关联规则:满足最小支持度和最小 置信度。
APRIORI算法过程
如,以表6-1中的数据为例。假设smin=50%。
6
APRIORI算法过程
在第一次迭代中,所有单项集都作为候选集,产生一个候选集列 表;图5-1给出第一次迭代的结果
在下一步中,计算每一项的支持度,然后在smin的基础上选择频繁 项集。
图5-1 Apriori算法第一次迭代的结果
Apriori算法源代码
算法:Apriori 使用根据候选生成的逐层迭代找出频繁项集
输入:事务数据库D;最小支持度阈值min_sup
输出:D中的频繁项集L
(1) L1 = {large 1-itemsets}; //所有1-项目频集 (2) FOR (k=2; Lk-1; k++) DO BEGIN (3) Ck=apriori-gen(Lk-1); // Ck是k-候选集 (4) FOR all transactions tD DO BEGIN
关联规则挖掘
以零售业为例,通过对销售数据的关联分析, 体育用品商店可以发现隐含在数据中的规律:
“购买篮球的顾客中有70%的人同时购买篮球运 动服,所有交易中有40%的人同时购买篮球和篮球 运动服”
等等。
购物篮分析
购物篮分析是关联规则挖掘的最初形式。 如,某商店经理可能更想了解如下的购物习惯: “顾客多半会在购物时同时购买什么商品组或集合?” 为解答这个问题,可以在商店顾客事务零售数据库上进 行购物篮分析。 分析的结果可用于市场规划、广告策划和分类设计。
3_项集
{ABC} {ACE} {BCE}
计数 S(%)
0
0
0
0
2
50
频繁3_项集 计数 S(%)
BCE
2
50
图5-3 Apriori算法第三次迭代的结果
因为本例的L3无法产生候选的4-项集,所以算法停止迭代 过程。
APRIORI算法过程
该算法不仅计算所有频繁集的支持度,也计算那些没有被 删除的非频繁候选集的支持度。 所有非频繁但被算法计算支持度的候选项集的集合被称为 负边界。因此,如果项集是非频繁的,但它的子集都是频繁 的,那么它就在负边界之中。
物品的集合(I的一个子集)。
基本概念
2)支持度(support):
支持度是模式为真的任务相关的元组(或事务)所占的百分比。对于 形如“A B ”的关联规则,支持度定义为:
支持度(
A
B)=
包含A和B的元组数 元组总数
其中,A、B是项目的集合。
示例:假定任务相关数据由AllElectronics的计算机部的事务数组成,
由频繁项集产生关联规则
示例:对于前面的例子,基于事务数据库D,在假定最小支持度阈 值为50%的前提下,我们得到了频繁项集{2,3,5}。问,由该频繁 项集可以产生哪些关联规则?
分析:频繁项集L={2,3,5}的非空子集有{2,3}, {2,5}, {3,5}, {2},{3},{5}。则 由这些子集可以产生如下关联规则:
2
第6章
6.1 关联规则挖掘 6.2 由事务数据库挖掘单维布尔关联规则 6.3 由事务数据库挖掘多层关联规则 6.4 由事务数据库和数据仓库挖掘多维关联规则
学习目的
掌握关联规则挖掘算法--Apriori算法。 理解多层关联规则挖掘及其方法; 理解多维关联规则挖掘及其方法。
7
6.1 关联规则挖掘
关联规则挖掘(Association rule mining): 关联规则挖掘的主要对象是交易型数据库,一个交易一般 由交易处理时间,一组顾客购买的物品,有时也有顾客标识 号组成。 关联规则挖掘用以挖掘一次交易中,物品之间同时出现的 规律的知识模式,以反映顾客的购买行为。
更确切的说,关联规则是通过量化的数字来描述物品X的出 现对物品Y的出现有多大的影响。
常用方法: Apriori算法
频繁项集
项的集合称为项集(itemset),项的项集称为k-项集,如集合 {computer, software}是一个2-项集。 项集的频率:即包含项集的事务数,也称为项集的支持计数 (support_count)。
Min_sup: 设定的支持率阈值 如果项集的出现频率大于或等于min_sup与D中事务总数的
一个支持度为30%的关联规则:
buys(X ,"computer") buys(X ,"software")
意味着在计算机部的所有顾客中,有30%同时购买了计算机(A)和软 件(B)。
基本概念
3)置信度(certainty):
每个发现的模式都有一个表示其有效性或值得信赖性的度量。对于形 如“A B ”的关联规则,其有效性度量为置信度,定义为:
购物篮分析
设商店中所有销售商品为一个集合,每个商品均为一 个布尔变量,布尔变量用来表示该商品是否被(一个)顾 客购买。则,每个购物篮(事务数据库)可以用一个布 尔向量表示。
分析该布尔向量,得到反映商品频繁关联或同时购买 的购买模式。
5
购物篮分析
例如,在购买计算机的同时购买财务管理软件,可 用如下关联规则表示:
在第一次迭代中产生的候选集包含所有1项集并计算其支持大于阈值的1项集被选为频繁1算法首先去除非频繁1项集在频繁1项集的基础上产生候选二项集继而结合设定的最小支持度阈值产生频繁2如以表61中的数据为例
《数据挖掘》
主讲:王名扬 信息与计算机工程学院
引 言—要挖掘知识的类型
概念描述:特征化和比较; 关联规则; 分类/预测; 聚类分析; 其他的数据挖掘任务。
(1) 2 3 5, confidence= 2 / 2 = 100% (2) 2 5 3, confidence= 2 / 3 = 67% (3) 3 5 2, confidence= 2 / 2 = 100% (4) 2 3 5, confidence= 2 / 3 = 67% (5) 3 2 5, confidence= 2 / 3 = 67% (6) 5 2 3, confidence= 2 / 3 = 67%
APRIORI算法过程
在挖掘2-项集时,因为2-项集的任何子集都是频繁项集,所 以Apriori算法使用L1*L1来产生候选集。{*}运算通常定义为 : Lk*Lk={X∪Y 其中X,Y∈Lk,|X ∪ Y|=k+1} 注: |X ∪ Y|=k+1,即X和Y合取容量为k+1
因此,第二次迭代中的候选集C2由运算|L1|·|L1-1|/2所产生, 其个数为:4·3/2=6。用该列表来扫描DB,计算每一个候选 集的支持度,并与smin进行比较,产生2-项频繁集L2。图5-2 给出了所有这些步骤和第二次迭代的结果。
能揭示数据集内在的、重要的特性。
Apriori 算法
Apriori 算法原理:
任何一个频繁项集的子集必定是频繁项集; 如,如果{A,B}是频繁项集,则{A}、{B}都是频繁项集。 任何非频繁项集的超集都为非频繁项集 如,如果{A}、{B}是非频繁项集,则{A,B}是非频繁项
集
Apriori算法
(5) (6) (7)
Ct=subset(Ck,t); // Ct是所有t包含的候选集元素 FOR all candidates c Ct DO
c.count++;
(8) END
(9) Lk={cCk |c.countminsup_count} (10) END
(11) L= Lk;
36
38
乘积,就称该项集满足最小支持度min_sup 。 频繁项集:满足最小支持度的项集,频繁k-项集通常记做:Lk。
基本概念
频繁项集: 频繁项集是频繁出现在数据集中的项集; 有助于发现数据中蕴含的内在规律
哪些产品经常被一起购买?---啤酒和尿布? 买了PC之后接着都会买些什么? 哪种DNA对这种新药敏感?
的顾客中,有60% 也同时购买了财务管理软件。
6
1. 关联规则的基本概念?
关联规则挖掘的基本概念
1)事务数据库: 设I={ i1,i2,…,im }是一个项目集合,事务数据库D={ t1, t2,…,tn }是由一系列具有唯一标识TID的事务组成,每个事 务ti(i=1,2,…,n)都对应I上的一个子集。 示例:购物记录 I是全部物品集合,如商场现有的所有商品; D是购物清单,如顾客的购物清单; D中的每个元组ti代表一次事务(商业行为),是一次购买
置信度(
A
B)=
包含A和B的元组数 包含A的元组数Leabharlann 其中,A、B是项目的集合。
示例:假定任务相关数据由AllElectronics的计算机部购买物品的事务
数组成,一个置信度为85%的关联规则:
buys(X ,"computer") buys(X ,"software")
意味着买计算机(A)的顾客中,有85%也同时购买了软件(B)。
原理是:如果一个项集是频繁的,那么它的所有子集也是频繁的 。
在第一次迭代中,产生的候选集包含所有1-项集,并计算其支持度 s,s大于阈值的1-项集被选为频繁1-项集。
第二次迭代时,Apriori算法首先去除非频繁1-项集,在频繁1-项集 的基础上产生候选二项集,继而结合设定的最小支持度阈值,产 生频繁2-项集。
算法的关键步骤:
找出频繁项集:满足最小支持度的项目集; 方法:使用从1到k的候选集逐层递归的产生频繁项集。
由频繁项集产生关联规则。
APRIORI算法过程
Apriori算法利用逐层迭代来计算数据库中的频繁项集。第i次迭代 计算出所有频繁i项集(包含i个元素的项集)。每一次迭代有两个步 骤:产生候选集;计算和选择候选集。
基本概念
4)强关联规则: 置信度表示规则的可信度;置信度小:规则无意义 支持度表示模式在事务数据库中的出现频率;支持度小:规则使 用面窄
同时满足用户定义的最小置信度和最小支持度阈值的关联规则,
称为强关联规则(strong association rule),并被认为是有趣的。
2. 关联规则的分类?
APRIORI算法过程
6
APRIORI算法过程
候选集C3 运用L2*L2来产生,运算结果得到 {A,B,C},{A,C,E},{B,C,E},但只有{B,C,E}的所有子集是频繁项集,
成为候选的3-项集。然后扫描DB,根据最小支持计数,挖掘出频
繁3-项集,见图5-3所示:
3_项集C3
{ABC} {ACE} {BCE}
如,数码相机 => 手机。 层间关联规则:如果在不同的粒度层次上考虑问题,那
么得到的是层间关联规则。
如,数码相机 => 三星手机
关联规则的分类:
(3)基于规则中涉及的数据维数 单维关联规则:只涉及一个属性(维),处理单个属性 (维)中的一些关系
如:啤酒 => 尿布,只涉及到用户购买的物品一个维;
2
第6章
挖掘大型数据库中的关联规则
引言
关联规则挖掘发现大量数据中项集之间有趣的关联 或相关联系。
从大量商业事务记录中发现有趣的关联关系,可以 帮助许多商务决策的制定,如分类设计、交叉购物和 促销分析等。
2
引言
如何从事务DB或关系DB的大量数据中挖掘出关联规 则知识?
什么样的关联规则才是最有意义的? 如何才能使挖掘过程尽快发现有价值的关联规则知 识? 这是本章要讨论的内容。
关联规则的分类:
(1)基于规则中处理的变量类别 布尔型:离散的、可枚举的、种类化的 如:性别=“男”=> 职业=“网络工程师” 数值型:含有定量的数据项 如,性别=“男” => 收入=“3500”
关联规则的分类:
(2)基于规则中数据的抽象层次 单层关联规则:所有的变量都不考虑层次 如:性别=“男”=> 职业=“网络工程师”
computer => financial _ management _ software
[support = 2%, confidence = 60%] 关联规则的支持度(support)2% 表示:全部事务中,有
2% 的交易同时购买计算机和财务管理软件。 关联规则的置信度(confidence)60% 表示:购买计算机
多层关联规则:考虑变量的不同层次性 如,数码相机 => 三星手机,(数码相机是三星数码相机的 较高层抽象) 再如,数码相机 => 手机(数码相机、手机是三星数码相机 和三星手机的较高层抽象)。
关联规则的分类:
多层关联规则又可以分为:
同层关联规则:如果一个关联规则对应的项目是同一个 粒度层次,那么它是同层关联规则
多维关联规则:处理多个属性(维)上的关系 如,性别“女” => 职业“秘书”,此规则涉及到两个属性 (维)的关系。
6.2 由事务数据库挖掘单维布尔关联规则
关联规则挖掘的两步过程:
1)找出所有的频繁项集:这些项集出现的频繁性要满足 最小支持度原则。
2)由频繁项集产生强关联规则:满足最小支持度和最小 置信度。
APRIORI算法过程
如,以表6-1中的数据为例。假设smin=50%。
6
APRIORI算法过程
在第一次迭代中,所有单项集都作为候选集,产生一个候选集列 表;图5-1给出第一次迭代的结果
在下一步中,计算每一项的支持度,然后在smin的基础上选择频繁 项集。
图5-1 Apriori算法第一次迭代的结果
Apriori算法源代码
算法:Apriori 使用根据候选生成的逐层迭代找出频繁项集
输入:事务数据库D;最小支持度阈值min_sup
输出:D中的频繁项集L
(1) L1 = {large 1-itemsets}; //所有1-项目频集 (2) FOR (k=2; Lk-1; k++) DO BEGIN (3) Ck=apriori-gen(Lk-1); // Ck是k-候选集 (4) FOR all transactions tD DO BEGIN
关联规则挖掘
以零售业为例,通过对销售数据的关联分析, 体育用品商店可以发现隐含在数据中的规律:
“购买篮球的顾客中有70%的人同时购买篮球运 动服,所有交易中有40%的人同时购买篮球和篮球 运动服”
等等。
购物篮分析
购物篮分析是关联规则挖掘的最初形式。 如,某商店经理可能更想了解如下的购物习惯: “顾客多半会在购物时同时购买什么商品组或集合?” 为解答这个问题,可以在商店顾客事务零售数据库上进 行购物篮分析。 分析的结果可用于市场规划、广告策划和分类设计。
3_项集
{ABC} {ACE} {BCE}
计数 S(%)
0
0
0
0
2
50
频繁3_项集 计数 S(%)
BCE
2
50
图5-3 Apriori算法第三次迭代的结果
因为本例的L3无法产生候选的4-项集,所以算法停止迭代 过程。
APRIORI算法过程
该算法不仅计算所有频繁集的支持度,也计算那些没有被 删除的非频繁候选集的支持度。 所有非频繁但被算法计算支持度的候选项集的集合被称为 负边界。因此,如果项集是非频繁的,但它的子集都是频繁 的,那么它就在负边界之中。
物品的集合(I的一个子集)。
基本概念
2)支持度(support):
支持度是模式为真的任务相关的元组(或事务)所占的百分比。对于 形如“A B ”的关联规则,支持度定义为:
支持度(
A
B)=
包含A和B的元组数 元组总数
其中,A、B是项目的集合。
示例:假定任务相关数据由AllElectronics的计算机部的事务数组成,
由频繁项集产生关联规则
示例:对于前面的例子,基于事务数据库D,在假定最小支持度阈 值为50%的前提下,我们得到了频繁项集{2,3,5}。问,由该频繁 项集可以产生哪些关联规则?
分析:频繁项集L={2,3,5}的非空子集有{2,3}, {2,5}, {3,5}, {2},{3},{5}。则 由这些子集可以产生如下关联规则:
2
第6章
6.1 关联规则挖掘 6.2 由事务数据库挖掘单维布尔关联规则 6.3 由事务数据库挖掘多层关联规则 6.4 由事务数据库和数据仓库挖掘多维关联规则
学习目的
掌握关联规则挖掘算法--Apriori算法。 理解多层关联规则挖掘及其方法; 理解多维关联规则挖掘及其方法。
7
6.1 关联规则挖掘
关联规则挖掘(Association rule mining): 关联规则挖掘的主要对象是交易型数据库,一个交易一般 由交易处理时间,一组顾客购买的物品,有时也有顾客标识 号组成。 关联规则挖掘用以挖掘一次交易中,物品之间同时出现的 规律的知识模式,以反映顾客的购买行为。
更确切的说,关联规则是通过量化的数字来描述物品X的出 现对物品Y的出现有多大的影响。
常用方法: Apriori算法
频繁项集
项的集合称为项集(itemset),项的项集称为k-项集,如集合 {computer, software}是一个2-项集。 项集的频率:即包含项集的事务数,也称为项集的支持计数 (support_count)。
Min_sup: 设定的支持率阈值 如果项集的出现频率大于或等于min_sup与D中事务总数的
一个支持度为30%的关联规则:
buys(X ,"computer") buys(X ,"software")
意味着在计算机部的所有顾客中,有30%同时购买了计算机(A)和软 件(B)。
基本概念
3)置信度(certainty):
每个发现的模式都有一个表示其有效性或值得信赖性的度量。对于形 如“A B ”的关联规则,其有效性度量为置信度,定义为: