第八讲 挖掘频繁模式、关联和相关

合集下载

数据挖掘中的频繁模式与关联分析

数据挖掘中的频繁模式与关联分析
• 哪些商品经常一同被购买?——啤酒和尿布? • 购买电脑后会再买什么? • 怎样的DNA对新药敏感?
应用:购物篮分析、交叉营销、网络日志分析等
频繁模式与关联规则
TID
购物篮
10
啤酒, 坚果, 尿布
20
啤酒, 咖啡, 尿布
30
啤酒, 尿布, 鸡蛋
40
坚果, 鸡蛋, 牛奶
50
坚果, 咖啡, 尿布, 鸡蛋, 牛奶
两种都买 购买尿布的人 的人
购买啤酒的人
购物篮分析
• 项集(itemset):一个或多个项的集合
• k-项集X={x1,…,xk}
• 项集绝对支持度(support_count): 项集X的出现频度(即包含项集的事务 数)
• 项集相对支持度(support):包含项 集X的事务所占比例(即一条事务中包 含项集X的概率)
• 设最小支持度minsup=50%,最小置信度 minconf=50%
• 频繁项集:啤酒:3,坚果:3,尿布:4,鸡蛋:3,{ 啤酒,尿布}:3
• 强关联规则:
• 啤酒→尿布(60%, 100%) • 尿布→啤酒(60%, 75%)
频繁模式与关联规则
关联规则X→Y:
confidence( X →Y ) P(Y | X ) support( X Y ) support _ count(X Y ) ,( X Y )
数据挖掘中的频繁模式与关联分析
演讲人:XXX
Contents
1
数据挖掘
2
频繁模式与关联规则
3
挖掘方法
数据挖掘
数据 科学
20世纪70年代
• 关系型数据库 • DBMS
2000年后

第8章 频繁模式挖掘PPT课件

第8章 频繁模式挖掘PPT课件

21.07.2020
16
8.1.1 问题描述(续)
❖ 关联规则
➢ 关联规则是形如XY的蕴含式,其中XI,YI且 XY=,则X称为规则的条件,Y称为规则的结果 。
➢ 如果事务数据库D中有s%的事务包含XY,则称关 联规则XY的支持度为s%。
➢ 支持度是指项集X和Y在数据库D中同时出现的概率 。
21.07.2020
21.07.2020
35
1. Apriori算法描述
❖ 关联规则挖掘过程: ➢ 第一步:寻找频繁项集。根据定义,这些项集出现
的频度不小于预先定义的最小额度。---较难 找出满足定义的大项目集
➢ 第二步:由频繁项集产生关联规则。根据定义,这 些规则必须满足最小支持度和最小置信度。--较易 从大项目集(频繁项目集)生成关联规则
的频度不小于预先定义的最小额度。---较难 ➢ 第二步:由频繁项集产生关联规则。根据定义,这
些规则必须满足最小支持度和最小置信度。--较易
21.07.2020
28
8.1.2 关联规则分类
❖ 购物篮分析只是关联规则挖掘的一种形式。 ❖ 根据不同的分类标准,关联规则有多种分类方法: ➢ 根据规则中所处理的数据类型分类 ➢ 根据规则中涉及的数据维数分类 ➢ 根据规则中数据的抽象层次分类 ➢ 其它
➢ 设I={i1,i2,…,im}是项的集合,表示各种商品的 集合;D= {t1,t2,…,tn}为交易集,表示每笔交易 的集合(是全体事务的集合)。其中每一个事务T 都是项的集合,且有TI。每个事务都有一个相关 的唯一标识符和它对应,也就是事务标识符或TID。
21.07.2020
14
8.1.1 问题描述(续)
❖ 给定一个大小为m的项目集合,共有2m个子集,去掉

频繁模式挖掘与关联规则挖掘

频繁模式挖掘与关联规则挖掘



一个项集X是闭模式,如果X是频繁的,且不存在超模式 Y ‫ כ‬X具有与X同样的支持度(Pasquier,ICDT’99)
一个项集X是一个最大模式,如果X是频繁的,并且不存在 频繁超模式 Y ‫ כ‬X (Bayardo,SIGMOD’98) 闭模式是频繁模式集的无损压缩



压缩了模式与规则的数目

为找到频繁项集 i1i2…i100

扫描遍数:100 产生的候选项集数目:C1001 + C1002 + … + C110000 = 2100-1 = 1.27*1030 !

瓶颈:候选的产生与验证 能否不生成候选项集?
数 据 挖 掘 23
2015-4-21
无候选生成的频繁模式挖掘

基于短模式,使用局部频繁项得到长模式

重新扫描数据库,找出遗漏的频繁项集
数 据 挖 掘 21
2015-4-21
提高Apriori的有效性
ABCD ABC ABD ACD BCD

动态项集计数:减少扫描次数 一旦 A 与 D 都被确定是频繁的,马上 开始对 AD 的计数 一旦项集 BCD 的所有长度为2的子集 都被确定是频繁的,马上开始对 BCD 的计数
数 据 挖 掘 11

2015-4-21
Apriori 方法

逐层搜索:由 K-项集到 k+1-候选项集 方法:

扫描数据集一次,得到所有长度为1的频繁项 集 基于长度为 K 的频繁项集,生成长度为 k+1 的候选项集 扫描数据集,检测候选项集是否频繁 当没有频繁项集或候选项集生成时,中止算法。

由 abc 与 abd 得到 abcd

数据挖掘4第四章 挖掘频繁模式、关联和相关

数据挖掘4第四章 挖掘频繁模式、关联和相关


根据所挖掘的规则类型分类
关联规则、相关规则、强梯度联系(与父母、子女或兄
妹之间的关系) 相关性和因果关系分析 关联并不一定必须意味着相关性和因果性

根据所挖掘的模式类型分类
频繁项集挖掘、序列模式挖掘、结构模式挖掘
ECUST--Jing Zhang
关联规则基本模型
10
关联规则就是支持度和置信度分别满足用户给 定阈值的规则。 发现关联规则需要经历如下两个步骤:
3rd scan
L3
Itemset {B, C, E}
如何产生候选集
17

假设Lk-1中的项是按顺序列出的 第一步: 自我连接Lk-1
Insert into Ck select p.item1, p.item2, …, p.itemk-1, q.itemk-1 from Lk-1p, Lk-1 q where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 < q.itemk-1
8

根据挖掘的模式的完全性分类
频繁项集的完全集、闭频繁项集、极大频繁项集
被约束的频繁项集、近似的频繁项集、接近匹配的频繁项集、
最频繁的k个项集

根据规则中所处理的值类型分类
布尔关联和量化关联
buys(x, “SQLServer”) ^ buys(x, “DMBook”) →buys(x, “DBMiner”) [0.2%, 60%] age(x, “30..39”) ^ income(x, “42..48K”) →buys(x, “PC”) [1%, 75%]

应用
* ⇒维修协议(商店应该怎样做才能提升维修协议的销售) 家电⇒*(商店应该增加其它那些产品的存储量?)

频繁模式及关联规则挖掘技术

频繁模式及关联规则挖掘技术

频繁模式挖掘的重要性
• 许多重要数据挖掘任务的基础
– 关联、相关性、因果性 – 序列模式、空间模式、时间模式、多维 – 关联分类、聚类分析
• 更加广泛的用处
– 购物篮分析、交叉销售、直销 – 点击流分析、DNA序列分析等等
II. 关联规则基本模型
• 关联规则基本模型 • Apriori算法 • Fp-Tree算法
• 设I={i1, i2,…, im}为所有项目的集合,D为事务数 据库,事务T是一个项目子集(T I)。每一个事 务具有唯一的事务标识TID。设A是一个由项目构 成的集合,称为项集。事务T包含项集A,当且仅 当A T。如果项集A中包含k个项目,则称其为k 项集。项集A在事务数据库D中出现的次数占D中
Custom er buys both
Custom er buys beer
min_conf =
Customer buys diaper
Transaction-id 10
Items bought A, B, C
Min. support 50% Min. confidence 50%
20
A, C
30
• 挖掘或识别出所有频繁项集是该算法的核心,占整 个计算量的大部分。
频繁项集
• 为了避免计算所有项集的支持度(实际上频繁项集只占很
少一部分),Apriori算法引入潜在频繁项集的概念。若潜
在频繁k项集的集合记为Ck ,频繁k项集的集合记为Lk ,m
个项目构成的k项集的集合为 ,则三者之间满足关系Lk
II. Apriori算法的步骤
• Apriori算法命名源于算法使用了频繁项集性质的先 验(Prior)知识。
• Apriori算法将发现关联规则的过程分为两个步骤:

数据挖掘中的关联规则与频繁项集

数据挖掘中的关联规则与频繁项集

数据挖掘中的关联规则与频繁项集数据挖掘是一种从数据中自动发现并提取出有用信息的过程。

在数据挖掘的实践中,关联规则和频繁项集是常用的技术手段,在挖掘数据中隐藏的关联性方面发挥着重要作用。

本文将介绍关联规则和频繁项集的概念、算法以及在实际应用中的案例。

一、关联规则的概念和算法关联规则是指在数据集中不同项之间的关系或联系。

它用条件语句表示,包含一个前件和一个后件,前件和后件之间通过“→”符号连接。

关联规则的重要性在于可以帮助我们发现数据中的隐藏模式和趋势,从而指导商业决策或其他应用。

关联规则的发现主要依靠关联规则挖掘算法,其中最经典的算法是Apriori算法。

Apriori算法的基本思想是通过迭代依次增加项集的长度来挖掘频繁项集和关联规则。

该算法的核心步骤包括候选项集生成、支持度计数和关联规则生成。

候选项集生成是指根据频繁( k-1 )项集生成候选k项集的过程。

支持度计数是指统计每个候选项集在数据集中出现的频率,以判断其是否为频繁项集。

关联规则生成则是通过计算支持度和置信度来选择满足预设阈值的关联规则。

二、频繁项集的概念和算法频繁项集是指在数据集中经常同时出现的一组项的集合。

频繁项集的挖掘是数据挖掘中的一个重要任务,它可以帮助我们了解数据集的特点、发现隐藏的关联性以及预测未来的趋势。

频繁项集的挖掘算法除了Apriori算法外,还有FP-growth算法。

FP-growth算法是一种基于前缀树结构的高效挖掘频繁项集的算法。

它通过构建频繁模式树来减少候选项集的生成和计数过程,从而提高了算法的效率。

FP-growth算法的主要步骤包括构建频繁项集树、挖掘频繁项集和生成关联规则。

其中,构建频繁项集树是通过统计每个项在数据集中的频率,并根据最小支持度对项进行排序。

挖掘频繁项集则是从频繁项集树的根节点开始,递归地向下遍历树的每一条路径,寻找满足最小支持度的频繁项集。

关联规则的生成类似于Apriori算法。

三、关联规则与频繁项集的应用案例关联规则和频繁项集的应用非常广泛,以下是几个典型的案例:1. 超市销售分析:超市可以通过分析顾客购买商品的关联规则,以优化商品摆放位置和促销策略,从而提高销售额和顾客满意度。

数据挖掘与分析学习笔记(频繁模式挖掘-项集挖掘)

深度优先
项集挖掘
频繁项集挖掘算法
2.支撑计算:
生成候选项集后,就要进一步的计算每个候选模式X的支撑,以便判断该候选模式X是否为频繁项集。计算方法如下:
BruteForce(D,I,minsup) //I为项集,D为由项集I及其子集和事务标识符集合构成的事务数据集,minsup为最小支撑阈值。
F ← ∅ //初始化频繁项集集合为空集;
规则的相对支撑为:rsup( → ) =
sup

一个项集规则的置信度是一个事务中即包含项集X,也包含项集Y的条件概率,
即 = → = =
()
()
=
sup
sup()
如果一个项集规则的支撑大于等于预先设定的阈值,即sup ≥ minsup(minsup为预定阈值),则称这个规则是频繁
的,如果一个项集规则的置信度大于等于预先设定的阈值,即 → ≥ minconf,则称这个项集规则为强规则。
5.项集和规则挖掘
项集和规则挖掘的目的就是通过枚举所有的频繁项集及其置信度,获取频繁且高置信度的规则。
项集挖掘
频繁项集挖掘算法
1.候选生成:项集I中的每个子集也被称作候选,因为每个项集都可能是一个候选的频繁模式。
子集一定也是频繁的;反之如果一个项集是不频繁的,则这个项集的所有超集集也一定是不频繁的。Apriori算法利用了项
集的这一特性,采用逐层宽度优先算法来搜索项集空间,并修剪掉所有的不频繁的候选的超集。
Apriori(D,I,minsup):
← ∅ //初始化频繁项集集合为空集
(1) ← ሼ∅ሽ //单个项集的初始化前缀树
(+1) ← ( () ) //展开前缀树

挖掘频繁模式关联和相关


5.1基本概念: 频繁模式与关联规则
Transaction-id Items bought

10
20 30 40 50
Customer buys both
A, B, D
A, C, D A, D, E B, E, F B, C, D, E, F
Customer buys diaper


项集 X = {x1, …, xk} 每个事务T是项的集合 关联规则是形如 X Y 的蕴 涵式,满足最小支持度和置 信度 支持度 s, 事务中同时包含 项X Y的概率 置信度 c, 事务包含项 X 时 也包含项Y 的条件概率
L1 = {frequent items}; for (k = 1; Lk !=; k++) do begin Ck+1 = candidates generated from Lk; for each transaction t in database do
increment the count of all candidates in Ck+1 that are contained in t Lk+1 = candidates in Ck+1 with min_support end return k Lk;
{1 3} {2 3} {2 5} {3 5} 2 2 3 2
{1 {1 {1 {2 {2 {3 2} 3} 5} 3} 5} 5} 1 2 1 2 3 2
C2 itemset {1 2} Scan D
{1 {1 {2 {2 {3 3} 5} 3} 5} 5}
C3 itemset {2 3 5}
Scan D

多次扫描数据库代价高:

数据分析知识:数据挖掘中的频繁模式挖掘

数据分析知识:数据挖掘中的频繁模式挖掘数据挖掘中的频繁模式挖掘数据挖掘是一个复杂的过程,需要从庞大的数据集中提取出有价值的信息,这些信息可以用于业务分析、决策支持、市场营销等方面。

而频繁模式挖掘,就是在大量数据中寻找频繁出现的组合,从而发现数据集中的一些结构、规律和特征,帮助人们更好地理解数据,作出可靠的决策。

本文将介绍频繁模式挖掘的概念、算法和应用,并探讨其在实践中的优势和不足之处。

一、频繁模式挖掘的概念频繁模式挖掘是数据挖掘中的一种技术,它通过数据集中的项集来寻找频繁出现的组合,从而发现数据集中的一些规律、结构和特征。

在频繁模式挖掘中,一个项集是指包含若干个属性(或特征)的集合,而频繁项集指在数据集中出现频率较高的项集。

举个例子,某超市的销售数据表格中,每一行代表一次购物,每一列代表某种商品,如果某些商品常常同时被购买,那么这些商品就组成了一个频繁项集。

对于频繁项集的挖掘,可以应用一些经典的算法,如Apriori算法、FP-growth算法等。

这些算法可以从数据集中提取出频繁项集,并进行支持度和置信度的计算,从而评估每个项集的重要性和关联性。

而支持度指项集在数据集中出现的概率,而置信度则是指在包含某项集的条件下,另一个项集出现的概率。

二、频繁模式挖掘的算法1、Apriori算法Apriori算法是频繁项集挖掘领域中的经典算法,它最早由R. Agrawal和R. Srikant于1994年提出。

该算法是基于Apriori原理的,即如果一个项集是频繁的,那么它的所有子集必须也是频繁的。

具体而言,Apriori算法的流程包括:(1)对数据集中的单个项进行扫描,统计每个项的出现次数,得到一个项集L1;(2)对于项集L1中的每一项,计算其支持度,只保留支持度大于等于设定阈值minsup的项,得到一个新的项集L2;(3)对于项集L2中的每两个项,判断它们是否能够组合成一个新的项集,如果满足条件,则进行计数,并得到一个新的项集L3;(4)重复第二步和第三步,直到无法生成新的项集为止。

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



What products were often purchased together?— Beer and diapers?! What are the subsequent purchases after buying a PC? What kinds of DNA are sensitive to this new drug?
Frequent Itemset Mining Methods Which Patterns Are Interesting?—Pattern
Evaluation Methods
Summary
3
What Is Frequent Pattern Analysis?

Frequent pattern: a pattern (a set of items, subsequences, substructures,


Customer buys beer
itemset: A set of one or more items k-itemset X = {x1, …, xk} (absolute) support, or, support count of X: Frequency or occurrence of an itemset X (relative) support, s, is the fraction of transactions that contains X (i.e., the probability that a transaction contains X) An itemset X is frequent if X’s support is no less than a minsup threshold
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小结
厦门大学软件学院
2
What Is Frequent Pattern Analysis?

频繁模式(Frequent pattern): 频繁地出现在数据集中的模式(项集,子 序列或子结构等)。 提出:Agrawal, Imielinski, and Swami [AIS93] 动机:寻找数据内部隐含的关联


The downward closure property of frequent patterns Any subset of a frequent itemset must be frequent If {beer, diaper, nuts} is frequent, so is {beer, diaper} i.e., every transaction having {beer, diaper, nuts} also contains {beer, diaper} Scalable mining methods: Three major approaches Apriori (Agrawal & Srikant@VLDB’94) Freq. pattern growth (FPgrowth—Han, Pei & Yin @SIGMOD’00) Vertical data format approach (Charm—Zaki & Hsiao @SDM’02)


Initially, scan DB once to get frequent 1-itemset Generate length (k+1) candidate itemsets from length k frequent itemsets Test the candidates against DB Terminate when no frequent or candidate set can be generated
C2 2nd scan
Itemset {A, B} {A, C}
{A, E}
{B, C} {B, E} {C, E}
C3
Itemset
{B, C, E}
3rd scan
L3
Itemset {B, C, E}
sup 2
14
厦门大学软件学院
The Apriori Algorithm

伪码:
Ck: Candidate itemset of size k Lk : frequent itemset of size k
第八讲
挖掘频繁模式、关联和相关
厦门大学软件学院
1
Mining Frequent Patterns, Association and Correlations
基本概念和线路图 有效的和可伸缩的频繁项集挖掘方法 挖掘各种类型的关联规则(自学) 关联规则到相关分析 基于约束的关联规则(自学)
厦门大学软件学院 12
Apriori: A Candidate Generation-and-Test Approach

Apriori pruning principle: If there is any itemset which is infrequent, its superset should not be generated/tested! (Agrawal & Srikant @VLDB’94, Mannila, et al. @ KDD’ 94) Method:
规则兴趣度的两个度量

支持度(support):事务集中事务包含AB的百分 比。——反映了规则的有用性 Support(A=>B) = P(AB)

最小支持度阈值min_sup 支持度计数

置信度(confidence):事务集中包含A的事务同时 也包含B的百分比——反映了规则的确定性 Confidence(A =>B) = P(B|A)
L1 = {frequent items}; for (k = 1; Lk !=; k++) do begin Ck+1 = candidates generated from Lk; for each transaction t in database do
increment the count of all candidates in Ck+1 that are contained in t Lk+1 = candidates in Ck+1 with min_support end return k Lk;

最小置信度阈值min_conf
例如: Computer=>financial_management_software [support=2%,confidence=60%]
厦门大学软件学院 9

强规则:满足min_sup和min_conf的规则


有关概念 项集:项的集合。 K-项集:包含k个项的项集 项集的频率:包含项集的事务数 频繁项集:支持度不小于min_sup的项集 挖掘关联规则的过程 找出所有频繁项集(中心问题) 由频繁项集产生强关联规则
厦门大学软件学院 13

The Apriori Algorithm—An Example
Database TDB
Tid
10 20 30 40 Itemset {A} sup 2 Itemset sup 2 3 3 3
Items
A, C, D B, C, E A, B, C, E B, E
C1 1st scan C2
insert into Ck select p.item1, p.item2, …, p.itemk-1, q.itemk-1
from Lk-1 p, Lk-1 q
where p.item1=q.item1, …, p.itemk-2=q.itemk-2, p.itemk-1 <
q.itemk-1

厦门大学软件学院
18
3 Challenges of Frequent Pattern Mining (自学)

Challenges


Multiple scans of transaction database
Huge number of candidates Tedious workload of support counting for candidates Reduce passes of transaction database scans Shrink number of candidates Facilitate support counting of candidates

abcd from abc and abd acde from acd and ace acde is removed because ade is not in L3

Pruning:


C4={abcd}
厦门大学软件学院
16
How to Generate Candidates?


假设Lk-1中的项已按顺序排列 Step 1: Lk-1 的自连接
关联规则的分类方法

根据规则中所处理的值类型

布尔关联规则:考虑项的“在与不在” 量化关联规则:量化的项或属性之间的关联 Age(X,‖30~39‖)∧income(X,‖42~48K‖)=>buys(X,‖high _resolution_TV‖)
单维 buys(X,‖computer‖)=>buys(X,‖ financial_management_software‖) 多维 :见上例
厦门大学软件学院 15
Important Details of Apriori

如何产生候选?Βιβλιοθήκη Step 1: Lk的自连接
Step 2: 剪枝(候选集的成员可能不是频繁的,剪枝原则?)

候选生成的例子

L3={abc, abd, acd, ace, bcd} Self-joining: L3*L3

根据挖掘的规则类型分类

关联规则、相关规则、强梯度联系等

根据挖掘的模式类型分类

频繁项集挖掘、序列模式挖掘、结构模式挖掘
厦门大学软件学院
6
基本概念
Transaction-id Items bought

项集:Itemset X = {x1, …, xk}
10
20 30 40 50 Customer buys both
{B}
{C} {D} {E} Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E}
3
3 1 3 sup 1 2 1 2 3 2
L1
{A} {B} {C} {E}
L2
Itemset {A, C} {B, C} {B, E} {C, E}
sup 2 2 3 2
厦门大学软件学院
10
Mining Frequent Patterns, Association and Correlations
基本概念和线路图 有效的和可伸缩的频繁项集挖掘方法 挖掘各种类型的关联规则 关联规则到相关分析 基于约束的关联规则
小结
厦门大学软件学院
11
Scalable Methods for Mining Frequent Patterns

关联规则 形如A=>B的蕴涵式(AI, B I, AB=) D={t1,t2,..tn} tk={i1,i2,…im..ip},im称为项目Item I={i1,i2,..,im}是项的集合
相关文档
最新文档