关联规则简介与Apriori算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
count(X ⊆ T) support(X) = |D|
项集X的支持度support(X)就是项集X出现的概率, 从而描述了X的重要性。
关联规则的相关概念
定义4 项集的最小支持度与频繁集 发现关联规则要求项集必须满足的最小支持阈值, 称为项集的最小支持度(Minimum Support),记为 supmin。 支持度大于或等于supmin的项集称为频繁项集,简 称频繁集,反之则称为非频繁集。 通常k-项集如果满足supmin,称为k-频繁集,记作Lk。
关联规则简介
关联规则
关联规则(Association Rules)反映一个事物与 其他事物之间的相互依存性和关联性。如果两个或 者多个事物之间存在一定的关联关系,那么,其中 一个事物就能够通过其他事物预测到。首先被 Agrawal, Imielinski and Swami在1993年的 SIGMOD会议上提出. 关联规则挖掘是数据挖掘中最活跃的研究方法之一 。典型的关联规则发现问题是对超市中的购物篮数 据(Market Basket)进行分析。通过发现顾客放 入购物篮中的不同商品之间的关系来分析顾客的购 买习惯。
案例
70%购买了牛奶的顾客将倾向于同时购买面包。
某网上书店向用户推荐相关书籍。
案例
在买了一台PC之后下一步会购买?
案例
在保险业务方面,如果出现了不常见的索赔要求组 合,则可能为欺诈,需要作进一步的调查; 在医疗方面,可找出可能的治疗组合; 在银行方面,对顾客进行分析,可以推荐感兴趣的 服务等等。
关联规则的相关概念
定义1 项目与项集 设I={i1,i2,…,im}是m个不同项目的集合,每个 ik(k=1,2,……,m)称为一个项目(Item)。 项目的集合 I 称为项目集合(Itemset),简称为项集 。其元素个数称为项集的长度,长度为k的项集称 为k-项集(k-Itemset)。
关Fra Baidu bibliotek规则的相关概念
Apriori算法举例 Apriori算法举例
现有A、B、C、D、E五种商品的交易记录表,找出所 有 频 繁 项 集 , 假 设 最 小 支 持 度 >=50%, 最 小 置 信 度 >=50%
交易号 T1 T2 T3 T4
商品代码 A、C、D B、C、E A、B、C、E B、E
Apriori算法举例_ Apriori算法举例_产生频繁项集 算法举例
K=1
项集 支持度 { A} 50% { B} 75% 75% C1 {C} 支持度<50 25% { D} { E} 75%
L2
{ A,C} { B,C} { B,E} { C,E}
50% 50% 75% 50%
L1
{A} {B} {C} {E}
50% 75% 75% 75%
K=2
C2
项集 支持度 支持度<50 25% { A,B} { A,C} 50% 支持度<50 25% {A,E} { B,C} 50% { B,E} 75% 50% { C,E}
•仅两次扫描数据库。
理论和实验表明该算法优于Apriori算法。
FP-growth算法 FP-growth算法
其他关联规则挖掘算法
约束性关联规则挖掘算法
仅设置支持度和置信度阈值,缺乏用户控制,可能产生过多的规则,实际 效果可能并不好。用户关心的是某些特定的关联规则,这需要把一些约束 条件引入到挖掘算法中,从而筛选出符合约束条件的有用规则,提高算法 的运行效率和用户满意度。
关联规则基本模型
什么是规则? 规则形如"如果…那么…(If…Then…)",前者为条件,后者 为结果。例如一个顾客,如果买了可乐,那么他也会购买 果汁。 如何来度量一个规则是否够好?有两个量,置信度 (Confidence)和支持度(Support)。假设有如下表的购买 记录。
关联规则基本模型_ 关联规则基本模型_置信度
规则 B CE C BE E BC CE B BE C BC E 置信度Confidence 置信度Confidence 66.7% 66.7% 66.7% 1 66.7% 1 置信度≥50%(最小置信度), 都是强关联规则
Apriori算法弊端 Apriori算法弊端
需要多次扫描数据表
如果频繁集最多包含10个项,那么就需要扫描交易数据表10遍,这需要 很大的I/O负载
关联规则挖掘举例
交易ID 2000 1000 4000 5000 购买商品 A,B,C A,C A,D B,E,F
假设 假 设 最小 值支 持 度 为 50% 最小置信度为50% ,最小置信度为
频繁项集 {A} {B} {C} {A,C} 支持度 75% 50% 50% 50%
对于规则 A⇒C: 支持度 = support({A,C }) = 50% 置信度 = support({A,C })/support({A}) = 66.6%
一般来说,只有支持度和置信度均较高的关联规则 才是用户感兴趣的、有用的关联规则。
关联规则的相关概念
定义8 关联规则的最小支持度和最小置信度 关联规则的最小支持度也就是衡量频繁集的最小支 持度(Minimum Support),记为supmin,它用于衡 量规则需要满足的最低重要性。 关联规则的最小置信度(Minimum Confidence)记为 confmin,它表示关联规则需要满足的最低可靠性。
Apriori算法举例_ Apriori算法举例_产生频繁项集 算法举例
L2 { A,C} { B,C} { B,E} { C,E} 50% 50% 75% 50%
L3
{B,C , E}
50%
从 K2中求可用来计算的的三项集 中求可用来计算的的三项集 { A,C} +{B,C} } { A,C} +{B,E} } { A,C} +{C,E} } { B,C} +{B,E} } { B,C} +{C,E} } { B,E} +{C,E} } {A,B,C} 超过三项 {A,C, E} , {B,C, E} , {B,C, E} , {B,C, E} ,
置信度表示了这条规则有多大程度上值得可信。设条件 置信度 的项的集合为A,结果的集合为B。置信度计算在A中,同 时也含有B的概率(即:if A ,then B的概率)。即 Confidence(A B)=P(B|A)。例如计算“如果Orange则 Coke”的置信度。由于在含有“橙汁”的4条交易中,仅 有2条交易含有“可乐”。其置信度为0.5。
Apriori算法的重要性质 Apriori算法的重要性质
假设项集{A,C} 是频繁项集 假设项集 {A,C}是频繁项集 , 则 {A,C} 是频繁项集, {A}和{C}也为频繁项集 {A}和{C}也为频繁项集
性质1:频繁项集的子集必为频繁项集
性质2:非频繁项集的超集一定是非频繁的
假设项集{D} 不是频繁项集 假设项集 {D}不是频繁项集 , 则 {D} 不是频繁项集, {A,D}和{C,D}也不是频繁项集 {A,D}和{C,D}也不是频繁项集
产生大量频繁集
若有100个项目,可能产生候选项数目
C
1 100
+ C100 + ... + C
2
100 100
≈ 1.27 *10
30
FP-growth算法 FP-growth算法
•Jiawei
Han等人在2000年提出了一种基于FP-树的 关联规则挖掘算法FP_growth,它采取“分而治之” 的策略,将提供频繁项目集的数据库压缩成一棵频 繁模式树(FP-树)。
支持度<50 25% {A,B,C}
C3
支持度<50 25% {A,C ,E}
{B,C, {B,C , E}
50%
Apriori算法举例_ Apriori算法举例_产生关联规则 算法举例
对于频繁项集{B,C,E},它的非空子集有{B}、{C}、{E} 、{B,C}、{B,E}、{C,E}。以下就是据此获得的关联 规则及其置信度。
关联规则的相关概念
定义5 关联规则 关联规则(Association Rule)可以表示为一个蕴含式: R:X⇒Y 其中:X⊂I,Y⊂I,并且X∩Y=Φ 。 例如:R:牛奶→面包
关联规则的相关概念
定义6 关联规则的支持度 对 于 关 联 规 则 R : X⇒Y , 其 中 X⊂I , Y⊂I , 并 且 X∩Y=Φ。 规则R的的支持度(Support)是交易集中同时包含X 和Y的交易数与所有交易数之比。
定义2 交易 每笔交易T(Transaction)是项集I上的一个子集, 即T⊆I,但通常T⊂I。 对应每一个交易有一个唯一的标识——交易号, 记作TID 交易的全体构成了交易数据库D,或称交易记录 集D,简称交易集D。 交易集D中包含交易的个数记为|D|。
关联规则的相关概念
定义3 项集的支持度 对于项集X,X⊂I,设定count(X⊆T)为交易集D中 包含X的交易的数量
例:歌曲A、歌曲C为小众歌曲,歌曲B为口水歌,共有10万个用户,有 200个人听过歌曲A,这200个人里面有60个听过口水歌B,有40个人听过 歌曲C。听过歌曲C的人数是300,听过口水歌B的人为50000。 貌似A和B更相关 Confidence(A→B) = 0.3,Confidence(A→C) = 0.2 听过歌曲A的 人不喜欢歌曲B
关联规则的相关概念
定义9 强关联规则 如 果 规 则 R:X⇒Y 满 足 support(X⇒Y)≥supmin 且 confidence(X⇒Y)≥confmin , 称 关 联 规 则 X⇒Y 为 强关联规则,否则称关联规则X⇒Y为弱关联规则。 在挖掘关联规则时,产生的关联规则要经过 supmin和confmin的衡量,筛选出来的强关联规则 才能用于指导商家的决策。
关联规则基本模型_ 关联规则基本模型_支持度
支持度计算在所有的交易集中,既有A又有B的概率。例 支持度 如在5条记录中,既有橙汁又有可乐的记录有2条。则此 条规则的支持度为 2/5=0.4,即Support(A B)=P(AB)。 现在这条规则可表述为,如果一个顾客购买了橙汁,则有 50%(置信度)的可能购买可乐。而这样的情况(即买了橙 汁会再买可乐)会有40%(支持度)的可能发生。
规则A⇒ 满足最小支持度和最小置信 规则 ⇒C满足最小支持度和最小置信 所以它是强关联规则 度,所以它是强关联规则
关联规则挖掘的步骤
关联规则挖掘是一个两步的过程: 关联规则挖掘是一个两步的过程: 找出所有频繁项集 找出所有频繁项集
大于或者等于最小支持度 的项集
由频繁项集产生强关联规则,这些规则必须大于 由频繁项集产生强关联规则, 强关联规则 或者等于最小支持度和最小置信度
count(X ∪ Y) support(X ⇒ Y) = |D|
关联规则的相关概念
定义7 关联规则的置信度 对 于 关 联 规 则 R : X⇒Y , 其 中 X⊂I,Y⊂I , 并 且 X∩Y=Φ。 规则R的置信度(Confidence)是指包含X和Y的交易 数与包含X的交易数之比
support(X ∪ Y) confidence (X ⇒ Y) = support(X)
案例
“尿布与啤酒”的故事。
美国的沃尔玛超市对一年多的原始交易数据进行了详细的 分析,得到一个意外发现:与尿布一起被购买最多的商品 竟然是啤酒。借助于数据仓库和关联规则,商家发现了这 个隐藏在背后的事实:美国的妇女们经常会嘱咐她们的丈 夫下班以后要为孩子买尿布,而30%~40%的丈夫在买完 尿布之后又要顺便购买自己爱喝的啤酒。有了这个发现后 ,超市调整了货架的设置,把尿布和啤酒摆放在一起销售 ,从而大大增加了销售额。
增量式关联规则挖掘算法
数据集不断增长,有新的数据加入后,重新挖掘很费时。增量式关联规则 挖掘算法是当数据库变化后,在原挖掘结果的基础上生成新的关联规则, 删除过时的关联规则。
多层关联规则挖掘 ……
关联规则的价值衡量
客观上,使用“支持度和置信度”框架可能会产生 一些不正确的规则。只凭支持度和置信度阈值未必 总能找出符合实际的规则。
Apriori算法 Apriori算法
Apriori算法是一种经典的生成布尔型关联规则的频 繁项集挖掘算法。 Apriori算法将发现关联规则的过程分为两个步骤: 通过迭代,检索出事务数据库中的所有频繁项集, 即支持度不低于用户设定的阈值的项集; 利用频繁项集构造出满足用户最小置信度的规则。 挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
项集X的支持度support(X)就是项集X出现的概率, 从而描述了X的重要性。
关联规则的相关概念
定义4 项集的最小支持度与频繁集 发现关联规则要求项集必须满足的最小支持阈值, 称为项集的最小支持度(Minimum Support),记为 supmin。 支持度大于或等于supmin的项集称为频繁项集,简 称频繁集,反之则称为非频繁集。 通常k-项集如果满足supmin,称为k-频繁集,记作Lk。
关联规则简介
关联规则
关联规则(Association Rules)反映一个事物与 其他事物之间的相互依存性和关联性。如果两个或 者多个事物之间存在一定的关联关系,那么,其中 一个事物就能够通过其他事物预测到。首先被 Agrawal, Imielinski and Swami在1993年的 SIGMOD会议上提出. 关联规则挖掘是数据挖掘中最活跃的研究方法之一 。典型的关联规则发现问题是对超市中的购物篮数 据(Market Basket)进行分析。通过发现顾客放 入购物篮中的不同商品之间的关系来分析顾客的购 买习惯。
案例
70%购买了牛奶的顾客将倾向于同时购买面包。
某网上书店向用户推荐相关书籍。
案例
在买了一台PC之后下一步会购买?
案例
在保险业务方面,如果出现了不常见的索赔要求组 合,则可能为欺诈,需要作进一步的调查; 在医疗方面,可找出可能的治疗组合; 在银行方面,对顾客进行分析,可以推荐感兴趣的 服务等等。
关联规则的相关概念
定义1 项目与项集 设I={i1,i2,…,im}是m个不同项目的集合,每个 ik(k=1,2,……,m)称为一个项目(Item)。 项目的集合 I 称为项目集合(Itemset),简称为项集 。其元素个数称为项集的长度,长度为k的项集称 为k-项集(k-Itemset)。
关Fra Baidu bibliotek规则的相关概念
Apriori算法举例 Apriori算法举例
现有A、B、C、D、E五种商品的交易记录表,找出所 有 频 繁 项 集 , 假 设 最 小 支 持 度 >=50%, 最 小 置 信 度 >=50%
交易号 T1 T2 T3 T4
商品代码 A、C、D B、C、E A、B、C、E B、E
Apriori算法举例_ Apriori算法举例_产生频繁项集 算法举例
K=1
项集 支持度 { A} 50% { B} 75% 75% C1 {C} 支持度<50 25% { D} { E} 75%
L2
{ A,C} { B,C} { B,E} { C,E}
50% 50% 75% 50%
L1
{A} {B} {C} {E}
50% 75% 75% 75%
K=2
C2
项集 支持度 支持度<50 25% { A,B} { A,C} 50% 支持度<50 25% {A,E} { B,C} 50% { B,E} 75% 50% { C,E}
•仅两次扫描数据库。
理论和实验表明该算法优于Apriori算法。
FP-growth算法 FP-growth算法
其他关联规则挖掘算法
约束性关联规则挖掘算法
仅设置支持度和置信度阈值,缺乏用户控制,可能产生过多的规则,实际 效果可能并不好。用户关心的是某些特定的关联规则,这需要把一些约束 条件引入到挖掘算法中,从而筛选出符合约束条件的有用规则,提高算法 的运行效率和用户满意度。
关联规则基本模型
什么是规则? 规则形如"如果…那么…(If…Then…)",前者为条件,后者 为结果。例如一个顾客,如果买了可乐,那么他也会购买 果汁。 如何来度量一个规则是否够好?有两个量,置信度 (Confidence)和支持度(Support)。假设有如下表的购买 记录。
关联规则基本模型_ 关联规则基本模型_置信度
规则 B CE C BE E BC CE B BE C BC E 置信度Confidence 置信度Confidence 66.7% 66.7% 66.7% 1 66.7% 1 置信度≥50%(最小置信度), 都是强关联规则
Apriori算法弊端 Apriori算法弊端
需要多次扫描数据表
如果频繁集最多包含10个项,那么就需要扫描交易数据表10遍,这需要 很大的I/O负载
关联规则挖掘举例
交易ID 2000 1000 4000 5000 购买商品 A,B,C A,C A,D B,E,F
假设 假 设 最小 值支 持 度 为 50% 最小置信度为50% ,最小置信度为
频繁项集 {A} {B} {C} {A,C} 支持度 75% 50% 50% 50%
对于规则 A⇒C: 支持度 = support({A,C }) = 50% 置信度 = support({A,C })/support({A}) = 66.6%
一般来说,只有支持度和置信度均较高的关联规则 才是用户感兴趣的、有用的关联规则。
关联规则的相关概念
定义8 关联规则的最小支持度和最小置信度 关联规则的最小支持度也就是衡量频繁集的最小支 持度(Minimum Support),记为supmin,它用于衡 量规则需要满足的最低重要性。 关联规则的最小置信度(Minimum Confidence)记为 confmin,它表示关联规则需要满足的最低可靠性。
Apriori算法举例_ Apriori算法举例_产生频繁项集 算法举例
L2 { A,C} { B,C} { B,E} { C,E} 50% 50% 75% 50%
L3
{B,C , E}
50%
从 K2中求可用来计算的的三项集 中求可用来计算的的三项集 { A,C} +{B,C} } { A,C} +{B,E} } { A,C} +{C,E} } { B,C} +{B,E} } { B,C} +{C,E} } { B,E} +{C,E} } {A,B,C} 超过三项 {A,C, E} , {B,C, E} , {B,C, E} , {B,C, E} ,
置信度表示了这条规则有多大程度上值得可信。设条件 置信度 的项的集合为A,结果的集合为B。置信度计算在A中,同 时也含有B的概率(即:if A ,then B的概率)。即 Confidence(A B)=P(B|A)。例如计算“如果Orange则 Coke”的置信度。由于在含有“橙汁”的4条交易中,仅 有2条交易含有“可乐”。其置信度为0.5。
Apriori算法的重要性质 Apriori算法的重要性质
假设项集{A,C} 是频繁项集 假设项集 {A,C}是频繁项集 , 则 {A,C} 是频繁项集, {A}和{C}也为频繁项集 {A}和{C}也为频繁项集
性质1:频繁项集的子集必为频繁项集
性质2:非频繁项集的超集一定是非频繁的
假设项集{D} 不是频繁项集 假设项集 {D}不是频繁项集 , 则 {D} 不是频繁项集, {A,D}和{C,D}也不是频繁项集 {A,D}和{C,D}也不是频繁项集
产生大量频繁集
若有100个项目,可能产生候选项数目
C
1 100
+ C100 + ... + C
2
100 100
≈ 1.27 *10
30
FP-growth算法 FP-growth算法
•Jiawei
Han等人在2000年提出了一种基于FP-树的 关联规则挖掘算法FP_growth,它采取“分而治之” 的策略,将提供频繁项目集的数据库压缩成一棵频 繁模式树(FP-树)。
支持度<50 25% {A,B,C}
C3
支持度<50 25% {A,C ,E}
{B,C, {B,C , E}
50%
Apriori算法举例_ Apriori算法举例_产生关联规则 算法举例
对于频繁项集{B,C,E},它的非空子集有{B}、{C}、{E} 、{B,C}、{B,E}、{C,E}。以下就是据此获得的关联 规则及其置信度。
关联规则的相关概念
定义5 关联规则 关联规则(Association Rule)可以表示为一个蕴含式: R:X⇒Y 其中:X⊂I,Y⊂I,并且X∩Y=Φ 。 例如:R:牛奶→面包
关联规则的相关概念
定义6 关联规则的支持度 对 于 关 联 规 则 R : X⇒Y , 其 中 X⊂I , Y⊂I , 并 且 X∩Y=Φ。 规则R的的支持度(Support)是交易集中同时包含X 和Y的交易数与所有交易数之比。
定义2 交易 每笔交易T(Transaction)是项集I上的一个子集, 即T⊆I,但通常T⊂I。 对应每一个交易有一个唯一的标识——交易号, 记作TID 交易的全体构成了交易数据库D,或称交易记录 集D,简称交易集D。 交易集D中包含交易的个数记为|D|。
关联规则的相关概念
定义3 项集的支持度 对于项集X,X⊂I,设定count(X⊆T)为交易集D中 包含X的交易的数量
例:歌曲A、歌曲C为小众歌曲,歌曲B为口水歌,共有10万个用户,有 200个人听过歌曲A,这200个人里面有60个听过口水歌B,有40个人听过 歌曲C。听过歌曲C的人数是300,听过口水歌B的人为50000。 貌似A和B更相关 Confidence(A→B) = 0.3,Confidence(A→C) = 0.2 听过歌曲A的 人不喜欢歌曲B
关联规则的相关概念
定义9 强关联规则 如 果 规 则 R:X⇒Y 满 足 support(X⇒Y)≥supmin 且 confidence(X⇒Y)≥confmin , 称 关 联 规 则 X⇒Y 为 强关联规则,否则称关联规则X⇒Y为弱关联规则。 在挖掘关联规则时,产生的关联规则要经过 supmin和confmin的衡量,筛选出来的强关联规则 才能用于指导商家的决策。
关联规则基本模型_ 关联规则基本模型_支持度
支持度计算在所有的交易集中,既有A又有B的概率。例 支持度 如在5条记录中,既有橙汁又有可乐的记录有2条。则此 条规则的支持度为 2/5=0.4,即Support(A B)=P(AB)。 现在这条规则可表述为,如果一个顾客购买了橙汁,则有 50%(置信度)的可能购买可乐。而这样的情况(即买了橙 汁会再买可乐)会有40%(支持度)的可能发生。
规则A⇒ 满足最小支持度和最小置信 规则 ⇒C满足最小支持度和最小置信 所以它是强关联规则 度,所以它是强关联规则
关联规则挖掘的步骤
关联规则挖掘是一个两步的过程: 关联规则挖掘是一个两步的过程: 找出所有频繁项集 找出所有频繁项集
大于或者等于最小支持度 的项集
由频繁项集产生强关联规则,这些规则必须大于 由频繁项集产生强关联规则, 强关联规则 或者等于最小支持度和最小置信度
count(X ∪ Y) support(X ⇒ Y) = |D|
关联规则的相关概念
定义7 关联规则的置信度 对 于 关 联 规 则 R : X⇒Y , 其 中 X⊂I,Y⊂I , 并 且 X∩Y=Φ。 规则R的置信度(Confidence)是指包含X和Y的交易 数与包含X的交易数之比
support(X ∪ Y) confidence (X ⇒ Y) = support(X)
案例
“尿布与啤酒”的故事。
美国的沃尔玛超市对一年多的原始交易数据进行了详细的 分析,得到一个意外发现:与尿布一起被购买最多的商品 竟然是啤酒。借助于数据仓库和关联规则,商家发现了这 个隐藏在背后的事实:美国的妇女们经常会嘱咐她们的丈 夫下班以后要为孩子买尿布,而30%~40%的丈夫在买完 尿布之后又要顺便购买自己爱喝的啤酒。有了这个发现后 ,超市调整了货架的设置,把尿布和啤酒摆放在一起销售 ,从而大大增加了销售额。
增量式关联规则挖掘算法
数据集不断增长,有新的数据加入后,重新挖掘很费时。增量式关联规则 挖掘算法是当数据库变化后,在原挖掘结果的基础上生成新的关联规则, 删除过时的关联规则。
多层关联规则挖掘 ……
关联规则的价值衡量
客观上,使用“支持度和置信度”框架可能会产生 一些不正确的规则。只凭支持度和置信度阈值未必 总能找出符合实际的规则。
Apriori算法 Apriori算法
Apriori算法是一种经典的生成布尔型关联规则的频 繁项集挖掘算法。 Apriori算法将发现关联规则的过程分为两个步骤: 通过迭代,检索出事务数据库中的所有频繁项集, 即支持度不低于用户设定的阈值的项集; 利用频繁项集构造出满足用户最小置信度的规则。 挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。