关联规则挖掘——Apriori算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关联规则Apriori挖掘
1.1 概述
关联规则(Association Rule Mining)挖掘是数据挖掘 中最活跃的研究方法之一 最早是由R.Agrawal等人提出的 其目的是为了发现超市交易数据库中不同商品之间的关 联关系。 一个典型的关联规则的例子是: 70% 购买了牛奶的顾 客将倾向于同时购买面包。 经典的关联规则挖掘算法: Apriori 算法和 FP-growth 算法
count(X Y) support(X Y) |D|
1.2 引例
定义1.7 关联规则的可信度 对于关联规则 R : XY ,其中 XI,YI , 并 且 XY= , 规 则 R 的 可 信 度 (Confidence) 是指包含 X 和 Y 的交易数与 包含X的交易数之比
交易号 100 200 300 400
商品代码 A、C、D B、C、E A、B、C、E B、E
实例解答
项集 支持度 { A} 50% { B} 75% C1 {C} 75% { D} 支持度<50 25% { E} 75%
{A,C} { B,C} { B,E} { C,E} 50% 50% 75% 50%
定义1.5 关联规则 关联规则(Association Rule)可以表示为 一个蕴含式: R:XY
1.2 引例
定义1.6 关联规则的支持度 对于关联规则 R : XY ,其中 XI,YI , 并 且 XY= , 规 则 R 的 的 支 持 度 (Support)是交易集中同时包含X和Y的交 易数与所有交易数之比。
1.2 引例
定义1.3 项集的支持度 对于项集X,XI,设定count(XT)为交 易集D中包含X的交易的数量 项集 X 的支持度 support(X) 就是项集 X 出 现的概率,从而描述了X的重要性。
count(X T ) support(X) |D|
1.2 引例
K=1
L2
L1
{A} {B} {C} {E}
50% 75% 75% 75%
K=2
C2
项集 支持度 支持度 { A,B } <50 25% { A,C} 50% 支持度<50 25% {A,E} { B,C} 50% { B,E} 75% { C,E} 50%
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}
T6 T7 T8 T9
T10
bread tea beer milk tea bread tea bread cream milk tea
bread milk tea
1.2 引例
定义1.1 项目与项集 设 I={i1,i2,…,im} 是 m 个不同项目的集 合,每个ik(k=1,2,……,m)称为一个 项目(Item)。 项目的集合I称为项目集合(Itemset),简 称为项集。其元素个数称为项集的长度, 长度为k的项集称为k-项集(k-Itemset)。
1.2 引例
定义1.9 强关联规则 如 果 规 则 XY 满 足 : support(XY)supmin 且 confidence(XY)confmin , 称 关 联 规 则 XY 为强关联规则,否则称关联规则 XY 为弱 关联规则。在挖掘关联规则时,产生的关联规则 要经过 supmin 和 confmin 的衡量,筛选出来的 强关联规则才能用于指导商家的决策。
Trie
性质:根节点不包含字符,除根节点外每 一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符 连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相 同。
Trie拼接、剪枝
A B C E C B C
假设有频繁项A、B,则可通过A节点下找到拼接项C或E,则有 A、B 、C和A、C、E,通过剪枝E,则只有A、B、C项集。
support(X Y) confidence (X Y) support(X)
1.2 引例
定义1.8 关联规则的最小支持度和最小可信度 关联规则的最小支持度也就是衡量频繁集的最小 支持度 (Minimum Support) ,记为 supmin , 它用于衡量规则需要满足的最低重要性。规则的 最 小 可 信 度 (Minimum Confidence) 记 为 confmin ,它表示关联规则需要满足的最低可靠 性。
Apriori的性质:
性质1:频繁项集的所有非空子集必为频繁项集。
性质2:非频繁项集的超集一定是非频繁的。
Leabharlann Baidu
Apriori的步骤:
连接步:为找Lk ,通过将Lk-1与自身连接产生候选k 项集的集合
剪枝步:Ck是Lk 的超集,也就是说,Ck的成员可以 是也可以不是频繁的,但所有的频繁k项集都包含 在Ck中。 任何非频繁的(k-1)项集都不是频繁k项 集的子集。
1.2 引例
假定某超市销售的商品包括:bread、 bear、cake、cream、milk和tea
交易号TID T1 T2 T3 T4 T5 顾 客 购 买 商 品Items bread cream milk tea bread cream milk cake milk milk tea bread cake milk
1、Apriori算法
Apriori算法命名源于算法使用了频繁项集性质的先 验(Prior)知识。 Apriori算法将发现关联规则的过程分为两个步骤: 通过迭代,检索出事务数据库中的所有频繁项集, 即支持度不低于用户设定的阈值的项集; 利用频繁项集构造出满足用户最小信任度的规则。 挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
1.2 引例
定义1.2 交易 每笔交易 T(Transaction) 是项集 I 上的一个子集, 即TI,但通常TI。 对应每一个交易有一个唯一的标识 ——交易号, 记作TID 交易的全体构成了交易数据库 D ,或称交易记录 集D,简称交易集D。 交易集D中包含交易的个数记为|D|。
支持度<50 25% {A,B,C}
C3
支持度 {A,C ,E} <50 25%
{B,C , E}
50%
Apriori算法的不足
可能产生大量的候选集
需要重复扫描数据库
自己对Apriori小改进
在拼接存储时采用前缀树Trie
优点:在拼接和剪枝时节约寻找时间。
Trie
一个节点的所有子孙节点拥有与该节点相 同的字符串前缀,根节点与空字符串相关 联。并不是每个节点都与值关联,仅叶节 点和部分内部节点与值关联。
4.3.1 Apriori算法
1.3.1 Apriori算法
apriori_gen(Lk-1, supmin)算法
1.3.1 Apriori算法
has_infrequent_subset(c, Lk-1)算法
Apriori算法实例
现有A、B、C、D、E五种商品的交易记录表,试找
出三种商品关联销售情况 (k=3) ,最小支持度 =50% 。
1.1 概述
关联规则(Association Rule Mining)挖掘是数据挖掘 中最活跃的研究方法之一 最早是由R.Agrawal等人提出的 其目的是为了发现超市交易数据库中不同商品之间的关 联关系。 一个典型的关联规则的例子是: 70% 购买了牛奶的顾 客将倾向于同时购买面包。 经典的关联规则挖掘算法: Apriori 算法和 FP-growth 算法
count(X Y) support(X Y) |D|
1.2 引例
定义1.7 关联规则的可信度 对于关联规则 R : XY ,其中 XI,YI , 并 且 XY= , 规 则 R 的 可 信 度 (Confidence) 是指包含 X 和 Y 的交易数与 包含X的交易数之比
交易号 100 200 300 400
商品代码 A、C、D B、C、E A、B、C、E B、E
实例解答
项集 支持度 { A} 50% { B} 75% C1 {C} 75% { D} 支持度<50 25% { E} 75%
{A,C} { B,C} { B,E} { C,E} 50% 50% 75% 50%
定义1.5 关联规则 关联规则(Association Rule)可以表示为 一个蕴含式: R:XY
1.2 引例
定义1.6 关联规则的支持度 对于关联规则 R : XY ,其中 XI,YI , 并 且 XY= , 规 则 R 的 的 支 持 度 (Support)是交易集中同时包含X和Y的交 易数与所有交易数之比。
1.2 引例
定义1.3 项集的支持度 对于项集X,XI,设定count(XT)为交 易集D中包含X的交易的数量 项集 X 的支持度 support(X) 就是项集 X 出 现的概率,从而描述了X的重要性。
count(X T ) support(X) |D|
1.2 引例
K=1
L2
L1
{A} {B} {C} {E}
50% 75% 75% 75%
K=2
C2
项集 支持度 支持度 { A,B } <50 25% { A,C} 50% 支持度<50 25% {A,E} { B,C} 50% { B,E} 75% { C,E} 50%
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}
T6 T7 T8 T9
T10
bread tea beer milk tea bread tea bread cream milk tea
bread milk tea
1.2 引例
定义1.1 项目与项集 设 I={i1,i2,…,im} 是 m 个不同项目的集 合,每个ik(k=1,2,……,m)称为一个 项目(Item)。 项目的集合I称为项目集合(Itemset),简 称为项集。其元素个数称为项集的长度, 长度为k的项集称为k-项集(k-Itemset)。
1.2 引例
定义1.9 强关联规则 如 果 规 则 XY 满 足 : support(XY)supmin 且 confidence(XY)confmin , 称 关 联 规 则 XY 为强关联规则,否则称关联规则 XY 为弱 关联规则。在挖掘关联规则时,产生的关联规则 要经过 supmin 和 confmin 的衡量,筛选出来的 强关联规则才能用于指导商家的决策。
Trie
性质:根节点不包含字符,除根节点外每 一个节点都只包含一个字符; 从根节点到某一节点,路径上经过的字符 连接起来,为该节点对应的字符串; 每个节点的所有子节点包含的字符都不相 同。
Trie拼接、剪枝
A B C E C B C
假设有频繁项A、B,则可通过A节点下找到拼接项C或E,则有 A、B 、C和A、C、E,通过剪枝E,则只有A、B、C项集。
support(X Y) confidence (X Y) support(X)
1.2 引例
定义1.8 关联规则的最小支持度和最小可信度 关联规则的最小支持度也就是衡量频繁集的最小 支持度 (Minimum Support) ,记为 supmin , 它用于衡量规则需要满足的最低重要性。规则的 最 小 可 信 度 (Minimum Confidence) 记 为 confmin ,它表示关联规则需要满足的最低可靠 性。
Apriori的性质:
性质1:频繁项集的所有非空子集必为频繁项集。
性质2:非频繁项集的超集一定是非频繁的。
Leabharlann Baidu
Apriori的步骤:
连接步:为找Lk ,通过将Lk-1与自身连接产生候选k 项集的集合
剪枝步:Ck是Lk 的超集,也就是说,Ck的成员可以 是也可以不是频繁的,但所有的频繁k项集都包含 在Ck中。 任何非频繁的(k-1)项集都不是频繁k项 集的子集。
1.2 引例
假定某超市销售的商品包括:bread、 bear、cake、cream、milk和tea
交易号TID T1 T2 T3 T4 T5 顾 客 购 买 商 品Items bread cream milk tea bread cream milk cake milk milk tea bread cake milk
1、Apriori算法
Apriori算法命名源于算法使用了频繁项集性质的先 验(Prior)知识。 Apriori算法将发现关联规则的过程分为两个步骤: 通过迭代,检索出事务数据库中的所有频繁项集, 即支持度不低于用户设定的阈值的项集; 利用频繁项集构造出满足用户最小信任度的规则。 挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
1.2 引例
定义1.2 交易 每笔交易 T(Transaction) 是项集 I 上的一个子集, 即TI,但通常TI。 对应每一个交易有一个唯一的标识 ——交易号, 记作TID 交易的全体构成了交易数据库 D ,或称交易记录 集D,简称交易集D。 交易集D中包含交易的个数记为|D|。
支持度<50 25% {A,B,C}
C3
支持度 {A,C ,E} <50 25%
{B,C , E}
50%
Apriori算法的不足
可能产生大量的候选集
需要重复扫描数据库
自己对Apriori小改进
在拼接存储时采用前缀树Trie
优点:在拼接和剪枝时节约寻找时间。
Trie
一个节点的所有子孙节点拥有与该节点相 同的字符串前缀,根节点与空字符串相关 联。并不是每个节点都与值关联,仅叶节 点和部分内部节点与值关联。
4.3.1 Apriori算法
1.3.1 Apriori算法
apriori_gen(Lk-1, supmin)算法
1.3.1 Apriori算法
has_infrequent_subset(c, Lk-1)算法
Apriori算法实例
现有A、B、C、D、E五种商品的交易记录表,试找
出三种商品关联销售情况 (k=3) ,最小支持度 =50% 。