6.挖掘频繁模式、关联和相关性

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


置信度c是指D中包含A的 事务同时也包含B的百分比
Customer buys beer
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%,则有如下关联规则
购物篮分析


“顾客可能会在一次购物同时购买哪些商品?”为了回 答问题,可以在商店的顾客事务零售数据上运行购物 篮分析。 分析结果可以用于营销规划、广告策划,或新的分类 设计。例如,购物篮分析可以帮助你设计不同的商店 布局。一种策略是:经常同时购买的商品可以摆放近一 些,以便进一步刺激这些商品同时销售。例如,如果 购买计算机的顾客也倾向于同时购买杀毒软件,则把 硬件摆放离软件陈列近一点,可能有助于增加这两种 商品的销售。
Itemset
sup 2 3 3 3
L1
{A} {B} {C} {E}
10
20 30 40
A, C, D
B, C, E A, B, C, E B, E
L2
Itemset {A, C} {B, C} {B, E} {C, E}
sup 2 2 3 2
C2 2nd scan
Itemset {A, B}
{A, C}
Database TDB
Tid Items
Supmin = 2 C1 1st scan C2
Itemset {A} {B} {C} {D} {E} Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E}
sup 2 3 3 1 3 sup 1 2 1 2 3 2
挖掘频繁项集只需要两次数据扫描 D中的任何频繁项集必须作为局部频繁项集至少出现在一个部 分中。


方法3:划分

第一次扫描:将数据划分为多个部分并找到局部频繁项集 第二次扫描:评估每个候选项集的实际支持度,以确定全局频 繁项集
提高Apriori算法的有效性(2)
提高Apriori算法的有效性(1)

Apriori算法主要的挑战

要对数据进行多次扫描; 会产生大量的候选项集; 对候选项集的支持度计算非常繁琐; 减少对数据的扫描次数; 缩小产生的候选项集; 改进对候选项集的支持度计算方法

解决思路


提高Apriori算法的有效性(1)
Chapter 6:挖掘频繁模式、关联和相关性
基本概念 频繁项集挖掘方法
模式评估方法
小结
13
由事务数据库挖掘单维布尔关联规则

最简单的关联规则挖掘,即单维、单层、布尔关联规 则的挖掘。
Items Bought A,B,C A,C A,D B,E,F
最小支持度 50% 最小置信度 50%
{A, E} {B, C} {B, E} {C, E}
C3
Itemset
{B, C, E}
3rd scan
L3
Itemset
{B, C, E}
sup
2
18
由频繁项集产生关联规则

同时满足最小支持度和最小置信度的才是强关联规 则,从频繁项集产生的规则都满足支持度要求,而 其置信度则可由一下公式计算:

方法1:基于hash表的项集计数

将每个项集通过相应的hash函数映射到hash表中的不同的桶 中,这样可以通过将桶中的项集计数跟最小支持计数相比较 先淘汰一部分项集。
提高Apriori算法的有效性(2)

方法2:事务压缩(压缩进一步迭代的事务数)

不包含任何k-项集的事务不可能包含任何(k+1)-项集,这种 事务在下一步的计算中可以加上标记或删除。


项集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.
频繁项集

基ቤተ መጻሕፍቲ ባይዱ概念

k-项集:包含k个项的集合

{牛奶,面包,黄油}是个3-项集


项集的频度是指包含项集的事务数,简称为项 集的频度、支持度计数或计数 项集的支持度有时称为相对支持度,而出现的 频度称作绝对支持度。如果项集I的频度大于( 最小支持度阈值×D中的事务总数),则称该项 集I为频繁项集。频繁k项集的集合通常记作Lk。

Ck是Lk的超集,即它的成员可能不是频繁的,但是所有 频繁的k-项集都在Ck中。因此可以通过扫描数据库, 通过计算每个k-项集的支持度来得到Lk 。

为了减少计算量,可以使用Apriori性质,即如果一个k-项集 的(k-1)-项子集不在Lk-1中,则该候选不可能是频繁的,可以 直接从Ck删除。
Apriori算法——示例
Apriori算法步骤

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])
TID 2000 1000 4000 5000
购买的item A,B,C A,C A,D B,E,F
规则度量:支持度和置信度
Customer buys both Customer buys diaper

支持度s是指事务集D中包 含 A B 的百分比
sup port( A B) P( A B)
闭频繁项集和极大频繁项集

如果不存在真超项集Y使得Y与X在S中有相同的支持度计数, 则称项集X在数据集S中是闭的。
TID 1 2 3 4 5 Items ABC ABCD BCE ACDE DE

{b} 不是闭项集,因为 {b}和 {b,c}的支持度是相同的 {b,c}是闭项集
闭频繁项集和极大频繁项集
Apriori算法 (1)


Apriori算法是挖掘布尔关联规则频繁项集的算法 Apriori算法利用频繁项集性质的先验知识(prior knowledge),通过逐层搜索的迭代方法,即将k项集用于探察(k+1)-项集,来穷尽数据集中的所有 频繁项集。 先找到频繁1-项集集合L1,然后用L1找到频繁2-项 集集合L2,接着用L2找L3,直到找不到频繁k-项 集,找每个Lk需要一次数据库扫描。

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} )。
A B [ s, c]

其中 A I , B I 并且 A B ,规则 A B 在事务集D中成立,并且具有支持度s和置信度c
基本概念——示例

项的集合 I={A,B,C,D,E,F} 每个事务T由事务标识符TID标识,它是项的集合

TID(2000)={A,B,C} 任务相关数据D是数据库事务的集合
购物篮分析


另一种策略是:把硬件和软件摆放在商店的两端,可能诱发 买这些商品的顾客一路挑选其他商品。例如,在决定购买 一台很贵的计算机后,去看软件陈列,购买杀毒软件,途 中看到销售安全系统,可能会决定也买家庭安全系统。 购物篮分析也可以帮助零售商规划什么商品降价出售。如 果顾客趋向于同时购买计算机和打印机,则打印机的降价 出售可能既促使购买打印机,又促使购买计算机。
Chapter 6:挖掘频繁模式、关联和相关性
基本概念 频繁项集挖掘方法
模式评估方法
小结
1
什么是频繁模式分析?



频繁模式是频繁出现在数据集中的模式 如项集、子序或者子结构 动机:发现数据中蕴含的内在规律 那些产品经常被一起购买?---啤酒和尿布? 买了PC之后接着都会买些什么? 哪种DNA对这种新药敏感? 应用 购物篮分析、WEB日志(点击流)分析、捆绑 销售、DNA序列分析等
购物篮分析


如果问题的全域是商店中所有商品的集合,则对每种 商品都可以用一个布尔量来表示该商品是否被顾客购 买,则每个购物篮都可以用一个布尔向量表示;而通 过分析布尔向量则可以得到商品被频繁关联或被同时 购买的模式,这些模式就可以用关联规则表示 关联规则的两个兴趣度度量


支持度 computer antivirus_ software[sup port 2%, confidence 60%] 置信度 规则的支持度(support)和置信度(confidence)是规则兴趣度 的两种度量。它们分别反映所发现规则的有用性和确定性。 通常,如果关联规则同时满足最小支持度阈值和最小置信度 阈值,则此关联规则是有趣的

主要挑战:会产生大量满足min_sup的项集,尤其 当min_sup设置得低的时候

E.g. 一个长度为100的频繁项集{a1,a2,…,a100}包含的频 繁项集的总个数为
1 2 100 C100 C100 ... C100 2100 1 1.271030

这是因为如果一个项集是频繁的,则它的每个子集也是 频繁的。
Frequent Itemset Support {A} 75% {B} 50% {C} 50% {A,C} 50%
sup port( A C ) P( A C )
Transaction ID 2000 1000 4000 5000


对规则A C,其支持度 =50% 置信度
confidence( A C ) P(C | A) P( A C ) / P( A) sup port( A C ) / sup port( A) 66.6%
sup port( A B) sup port _ count( A B) confidence ( A B) P( B | A) sup port( A) sup port _ count( A)
关联规则:基本概念


给定: 项的集合:I={i1,i2,...,in} 任务相关数据D是数据库事务的集合,每个事务 T则是项的集合,使得 T I 每个事务由事务标识符TID标识; A,B为两个项集,事务T包含A当且仅当 A T 则关联规则是如下蕴涵式:

A C (50%, 66.6%) C A (50%, 100%)

同时满足最小支持度阈值 和最小置信度阈值的规则 称作强关联规则
关联规则挖掘 的两步过程

一般来说,关联规则的挖掘可以看作两步的过程:


找出所有频繁项集 该项集的每一个出现的频繁性 ≥ min_sup 由频繁项集产生强关联规则 即满足最小支持度和最小置信度的规则
Apriori算法 (2)

Apriori算法利用的是Apriori性质:频繁项集的所有 非空子集也必须是频繁的。 AB 模式不可能比A更频繁的出现 Apriori算法是反单调的,即一个集合如果不能通 过测试,则该集合的所有超集也不能通过相同 的测试。 Apriori性质通过减少搜索空间,来提高频繁项集 逐层产生的效率
confidence ( A B ) P( A | B ) sup port _ count( A B) sup port _ count( A)

每个关联规则可由如下过程产生: 对于每个频繁项集l,产生l的所有非空子集; 对于每个非空子集s,如果 sup port _ count(l ) min_conf s ( l s ) 则输出规则“ ”sup port _ count( s)
相关文档
最新文档