频繁模式挖掘——概述

频繁模式挖掘(Frequent Pattern Mining)

  1. 基本概念
    a. 频繁模式(frequent pattern)是频繁地出现在数据集中的模式(如项集、子序列或子结构)。
    例如:
    i. 频繁同时出现在交易数据集中的商品(如牛奶和面包)的集合是频繁项集。
    ii. 一个序列如首先购买PC、然后是数码相机、再后是内存卡,如果它频繁地出现再购物历史数据中,则称它为一个频繁序列模式(FTM)。
    iii. 一个子结构可能涉及不同的结构形式,如子图、子树或子格,它可能与项集或子序列结合在一起。如果一个子结构频繁地出现,则称它为频繁结构模式(FSM)。
    b. 项(item)、项集(itemset)、频繁项集(frequent itemset)
    项(item)表示一种研究对象(例如购物篮实例里的商品)。设I={I_1,I_2,…,I_m}是项的集合,称为项集(itemset)。设任务相关的数据D是数据库事务的集合,其中每个事务T是一个非空项集,满足TϵI。每一个事务都有一个标识符,称为TID。
    c. 关联规则、支持度(support)、置信度(confidence)
    关联规则是形如A⇒B的蕴含式,其中A⊂I,B⊂I,A≠∅,B≠∅,并且A∩B≠∅。规则A⇒B在事务集D中具有支持度s,其中s是D中事务包含A∪B(集合A和B的并)的百分比。规则A⇒B在事务集D中具有置信度c,其中c是D中在包含A事务的前提下包含B事务的百分比。同时满足最小支持度阈值(min_sup)和最小置信度阈值(min_conf)的规则称为强规则。
    support(A⇒B)=P(A∪B)
    confidence(A⇒B)=P(B│A)=(support(A∪B))/(support(A))=(support_count(A∪B))/(support_count(A))
    如果项集I的支持度s满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集的集合通常记为L_k。
    d. 挖掘过程
    上式表明A⇒B的置信度容易从A和A∪B的支持度计数推出。挖掘关联规则的问题可以归结为挖掘频繁项集。
    一般关联规则的挖掘可以分为两步:
    (1)找出所有的频繁项集。根据定义,这些项集的支持度至少与预定义的最小支持度阈值一样。
    (2)由频繁项集产生强关联规则。根据定义,这些规则必须满足最小支持度和最小置信度。
    *一个例子。下图为5次交易的数据,每行代表一个事务,每个事务包好几个项。数据内隐含着内在关联。

事务:由事务号和项集组成。事务是一次购买行为。
项:最小处理单元,即购买的物品。
项集:由一个或多个项组成。
支持度计数:包含某个项集的事务数。
关联规则:A和B都是项集,A⇒B(s,c)。这里假设A={Milk,Diaper},B={Beer}。
支持度:包含某个项集的事务数的比例
s=(|Milk,Diaper,Beer|)/(|T|)=2/5=0.4
置信度:在所有包含X项集的事务中包含Y项集事务的比例
s=(|Milk,Diaper,Beer|)/(|Milk,Diaper|)=2/3=0.67
关联规则评估:
{Milk,Diaper}⇒{Beer}(0.4,0.67)
支持度不小于指定阈值,并且置信度不小于指定阈值,则为强关联规则。
2. 相关算法
2.1 Apriori算法(经典的频繁项集挖掘算法)
a. 算法核心思想
(1)如果一个集合是频繁项集,则它的所有子集都是频繁项集;
(2)如果一个集合不是频繁项集,则它的所有超集都不是频繁项集。
b. 算法流程
i. 找到频繁的一维项集L1;
ii. 从频繁的L_k维项集生成k+1维项集C_(k+1);(下面详细说明)
iii. 找到C_(k+1)中的频繁项集L_(k+1);
iv. k=k+1,循环执行i和ii,直到k+1=n,n为最大项集;或产生的项集为空,即不存在更大的频繁项集;
v. 输出各维度的频繁项集。

*说明如何从L_k生成 C_(k+1)的方法,k>1
i. 假设在L_k中的所有items都是排序好的(例如alphabetical)。
ii. 连接(joining)。将L_k与自身连接(L_k⋈L_k)从而产生C_(k+1),具体方法是:设l_1和l_2是L_k中的项集,l_1 [j]表示l_1的第j项。则称l_1和l_2是可连接的,如果〖(l〗_1 [1]=l_2 [1])∧〖(l〗_1 [2]=l_2 [2])∧…∧〖(l〗_1 [k-1]=l_2 [k-1])∧〖(l〗_1 [k]<l_2 [k])。连接的结果是生成一个k+1项集,〖{l〗1 [1],l_1 [2],…,l_1 [k],l_2 [k]}。
iii. 剪枝(pruning)。删除生成的C
(k+1)中的某个项集,如果这个项集满足,它存在一个k维子项集,且这个子项集不在L_k中。(为了减小时间复杂度,通过基本思想的第二点可以直接删除某些非频繁项集)。

*一个例子。下表表示一个事务数据库D,每一行都是一个事务T,包含TID和项集。目标是找出满足min_sup=2的所有维度的频繁项集。

最终产生了三个维度的频繁项集,L_1,L_2,L_3。我们可以根据频繁项集来得到相应的关联规则。

2.2 提高Apriori算法效率
基于散列的技术/事务压缩/划分/抽样/动态项集计数等。

2.3 Apriori算法存在的问题
主要还是开销问题。
(1)需要产生大量候选项集;
(2)需要重复扫描整个数据库,通过模式匹配检查一个很大的候选集合。
已有的解决方法:
FP-growth,将代表频繁项集的数据库压缩到一棵频繁模式树(FP树)上。通过把事务映射到FP树上的一条路径上来构造,由于不同事务可能会有若干相同的项,因此它们的路径可能部分重叠。路径相互重叠越多,使用FP树结构获得的压缩效果越好。

FP增长采用分治策略将一个子问题分解为较小的子问题,从而发现以某个特定后缀结尾的所有频繁项集。

2.4垂直数据格式挖掘
Apriori和FP-growth算法都是以{TID: itemset}的事务集中挖掘频繁模式。这种格式是水平数据格式。也可以通过{item:TID_set}这种数据格式来挖掘频繁模式,这种称为垂直数据格式。
3. 模式评估方法

  1. 支持度-置信度框架。可能存在的问题:有可能一个强关联规则并不能很好的表示A和B之间的关系(即A和B有可能是负相关的)。
  2. 相关性分析。A⇒B[support,confidence,correlation]。
    a. 提升度(lift)。
    lift(A,B)=(P(A∪B))/(P(A)P(B))
    值为1代表A和B是独立的;
    值小于1代表A和B负相关,意味着一个的出现可能导致另一个不出现。
    值大于1代表A和B正相关,意味着一个的出现都蕴含着另一个的出现。

b. χ^2相关性度量
χ2=∑_(i=1)c▒∑_(j=1)r▒〖(o_ij-e_ij)〗2/e_ij
上述两种指标不是零不变的(度量值不受零事务的影响,零事务是指不包含任何考察项集的事务)。
c. 全置信度
all_conf(A,B)=(sup⁡(A⋃B))/(max⁡{sup⁡(A),sup⁡(B)})=min{P(A|B),P(B|A)}
d. 最大置信度
max⁡_conf(A,B)=max{P(A|B),P(B|A)}
e. Kulc度量
Kulc(A,B)=1/2(P(A│B)+P(B|A))
f. 不平衡比(Imbanlance Ratio, IR),用来评估规则蕴含式中两个项集A和B的不平衡程度。
IR(A,B)=(|sup⁡(A)-sup⁡(B)|)/(sup⁡(A)+sup⁡(B)-sup⁡(A⋃B))
结论,采用Kulc度量和不平衡比配合使用最好。
4. 频繁子图挖掘(Frequent Sub-graph Mining - FSM)

Graph mining研究情况:

(1)基本概念
• Discovery of graph structures that occur a significant number of times across a set of graphs
- Support is some integer or frequency 分为单图挖掘&多图挖掘

  • Frequent graphs occur more than support number of times.

• Ex.: Common occurrences of hydroxide-ion
• Other instances:

  • Finding common biological pathways among species.
  • Recurring patterns of humans interaction during an epidemic.
  • Highlighting similar data to reveal data set as a whole.
    (2)主要难点
    a. 图重构。
    b. 子图重构。
    这些问题都是NP-Complete。
    (3)一些方法
    a. 传统frequent pattern mining方法
    可以说是Apriori算法的变形。
    General Process:
    candidate generation: which patterns will be considered? For FSM,
    candidate pruning: if a candidate is not a viable frequent pattern, can we exploit the pattern to prevent unnecessary work?
    *subgraphs and subsets exponentiate as size increases!
    support counting: how many of a given pattern exist?
    DFS or BFS
    Joins smaller frequent sets into larger ones.
    Checks the frequency of larger sets.

b. gSpan

  • complete frequent subgraph mining
  • Apriori扩展,使用DFS和candidate pruning来提升性能。
    编码方式

c. SUBDUE

  • approximate frequent subgraph mining
  • 使用图压缩的方法来决定频繁模式。
    d. SLEUTH
  • complete frequent subgraph mining
  • built specifically for trees

(4)算法评价
• Apriori-based Approach (Traditional):

  • Strength: Simple to implement
  • Weakness: Inefficient
    • gSpan (and other Pattern Growth algorithms):
    Strength: More efficient than Apriori
    Weakness: Still too slow on large data sets
    • SUBDUE
    Strength: Runs very quickly
    Weakness: Uses a heuristic(启发式), so it may miss some frequent subgraphs
    • SLEUTH:
  • Strength: Mines embedded trees, not just induced, much quicker than more general FSM
  • Weakness: Only works on trees… not all graphs

Reference
[1]. Yan, X. and Han, J.W. 2002. gSpan: Graph-based Substructure pattern mining, In Proceedings of International Conference on Data Mining, 721–724.
[2]. Yan, X. and Han, J. 2003. CloseGraph: Mining Closed Frequent Graph Patterns, In Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 286–295, Washington D.C., USA.
[3]. C Jiang, F Coenen, M Zito - Knowledge Engineering, A Survey of Frequent Subgraph Mining Algorithms, 2013 - livrepository.liverpool.ac.uk, The Knowledge Engineering Review, Vol. 00:0, 1–31

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唯与痴想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值