Efficient Pattern Mining Methods

2024-01-27 20:30

本文主要是介绍Efficient Pattern Mining Methods,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Efficient Pattern Mining Methods

@(Pattern Discovery in Data Mining)
本文介绍了几个模式挖掘的高效算法。主要以Apriori思想为框架,主要讲解了FP-Growth算法。

The Downward Closure Property of Frequent Patterns

  1. Property
    The downward closure (also called “Apriori”) property of frequent patterns:

    • If {beer, diaper, nuts} is frequent, so is {beer, diaper}
    • Every transaction containing {beer, diaper, nuts} also contains {beer, diaper}
    • Apriori: Any subset of a frequent itemset must be frequent
  2. Efficient mining methodology

    • If any subset of an itemset S is infrequent, then there is no chance for S to
      be frequent — why do we even have to consider S!? (It is an efficient way to prune)
  3. Principle
    Apriori pruning principle: If there is any itemset which is infrequent, its superset should not even be generated! (Agrawal & Srikant @VLDB’94, Mannila, et al. @ KDD’ 94)

  4. Scalable mining Methods

    • Level-wise, join-based approach: Apriori (Agrawal &Srikant@VLDB’94)
    • Vertical data format approach: Eclat (Zaki, Parthasarathy, Ogihara, Li @KDD’97)
    • Frequent pattern projection and growth: FPgrowth (Han, Pei, Yin @SIGMOD’00)

The Apriori Algorithm

  1. Outline of Apriori (level-wise, candidate generation and test)

    • Initially, scan DB once to get frequent 1-itemset
    • Repeat
      • Generate length-(k+1) candidate itemsets from length-k frequent itemsets
      • Test the candidates against DB to find frequent (k+1)-itemsets
      • Set k := k +1
    • Until no frequent or candidate set can be generated
    • Return all the frequent itemsets derived
  2. Psuedo Code

  3. Tricks
    joining & pruning



这里,对于某此迭代产生的joining结果,检验任何一个k-1的子集是否在候选集 Ck 中。即上图pruning的过程。

Extensions or Improvements of Apriori

  • Reduce passes of transaction database scans
    • Partitioning (e.g., Savasere, et al., 1995)
    • Dynamic itemset counting (Brin, et al., 1997) —> one of Google’s cofounder
  • Shrink the number of candidates
    • Hashing (e.g., DHP: Park, et al., 1995)
    • Pruning by support lower bounding (e.g., Bayardo 1998)  Sampling (e.g., Toivonen, 1996)
  • Exploring special data structures
    • Tree projection (Aggarwal, et al., 2001)
    • H-miner (Pei, et al., 2001)
    • Hypecube decomposition (e.g., LCM: Uno, et al., 2004)

Mining Frequent Patterns by Exploring Vertical Data Format

FPGrowth: A Frequent Pattern-Growth Approach

  1. 构造FP-Tree,快速迭代生成frequent patterns
    什么是FP-Tree?如何构造FP-Tree?
    • 计算每个single itemset的frequency
    • 将每个个Transaction中item的根据frequency进行排序
    • 类似于前缀树,生成FP-Tree,其中每个节点代表了一个item

生成结果如下所示:

  1. 生成Frequent Itemset
    利用分治的方法进行迭代计算。
    过程(设min_sup=2,以e后缀为例):
    1)得到e的前缀路径子树

    2)计算e的频数,判断e是否是frequent item。方法是遍历e节点的链表(虚线连接)计算节点数目,得sup(e)=3 > 2,所以继续下述步骤。
    3)因为e是频繁的,找到所有以e结尾的frequent itemlist,也就是说,分拆问题,进行迭代。
    这里我们首先需要拿到e的Conditional FP-Tree。
    4)Conditional FP-Tree的生成:
    结果:比较挫,直接看图

    步骤:
    1 - 更新e的前缀路径子树中的support值

    2 - 删除包含e的节点

    3 - 删除不频繁(infrequent)的节点,这里的c和d根据前述计算频数的方法知道满足最小support条件。至此,已经得到了关于e的Conditional FP-Tree。

    5)利用前面得到的关于e的CFPT,找到所有以de、ce、ae结尾(be不考虑因为b已经被删除)的frequent itemlist。这里直接调用分治的过程进行递归。例如对于de来说,在e的CFPT中找到关于de的前缀路径子树……得到de的CFPT。
    例如 edeade ece eae

讨论:对于单枝前缀路径子树,一次就能生成所有frequent patterns。例如:

* 此处红框选中的子树是m-cond. based,单枝树为{}-f3-c3-a3.
* 这是一个迭代的过程,节点a产生了第二棵树{}-f3-c3. 节点c产生了树{}-f3.
然后第二棵树中的节点c产生了最后一棵树{}-f3. 节点f无法再产生新的树。
* 第一棵树是m-cond. based,产生了组合fm,cm,am
* 第二棵树是am-cond. based,产生了fam,cam
* 第三棵树是cm-cond. based,产生了fcm
* 最后一棵树产生了fcam
* 所以我们可以得到并集 fm, cm, am, fam, fcm, cam, fcam。

课程习题:


这里Parallel Project比较耗费空间,因为它是根据需要计算的不同的X-cond. based进行任务分割来计算的,但是比较快;而Partition则根据树枝进行切分,这样是真正意义上的“partition”。

Mining Closed Patterns

这篇关于Efficient Pattern Mining Methods的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/651398

相关文章

论文阅读--Efficient Hybrid Zoom using Camera Fusion on Mobile Phones

这是谷歌影像团队 2023 年发表在 Siggraph Asia 上的一篇文章,主要介绍的是利用多摄融合的思路进行变焦。 单反相机因为卓越的硬件性能,可以非常方便的实现光学变焦。不过目前的智能手机,受制于物理空间的限制,还不能做到像单反一样的光学变焦。目前主流的智能手机,都是采用多摄的设计,一般来说一个主摄搭配一个长焦,为了实现主摄与长焦之间的变焦,目前都是采用数字变焦的方式,数字变焦相比于光学

模型压缩:Networks Slimming-Learning Efficient Convolutional Networks through Network Slimming

Network Slimming-Learning Efficient Convolutional Networks through Network Slimming(Paper) 2017年ICCV的一篇paper,思路清晰,骨骼清奇~~ 创新点: 1. 利用batch normalization中的缩放因子γ 作为重要性因子,即γ越小,所对应的channel不太重要,就可以裁剪(prun

Vue中data的属性可以和methods中方法同名吗,为什么?

在Vue中,data的属性不可以和methods中的方法同名,原因如下: 命名规范:从编程规范的角度来看,同名属性或方法可能会导致混淆和难以维护的代码。data通常用于存储组件的状态或数据,而methods则包含组件的行为或方法。将两者命名为相同的名称可能会使其他开发者或未来的你难以理解和维护代码。覆盖问题:在Vue的实例或组件中,data、methods、computed、watch等属性或方

论文阅读笔记——DeepPruner: Learning Efficient Stereo Matching via Differentiable PatchMatch

这篇文章,是2019年新的ICCV的papper,文章典型的使用了PatchMatch的思路,使得最后的速度快了很多。主要思路是:首先利用一种新颖的可微Patch Match算法来获得稀疏的cost volume。 然后,我们利用此表示来了解每个像素的修剪范围,自适应地修剪了每个区域的搜索空间。 最后,利用图像引导的优化模块来进一步提高性能。 由于所有组件都是可区分的,因此可以以端到端的方式训练整

Facade pattern(外观模式)

Facade pattern是外观模式,也叫门面模式,是一种结构型设计模式; 定义:向外部提供了一个统一的接口,用来访问子系统中的一群接口; 适用场景:子系统越来越复杂,增加外观模式提供简单调用接口;构建多层系统结构,利用外观对象作为每层的入口,简化层间调用 特点:解耦,减少系统依赖,客户端不用多个子系统直接交流,而是通过外观对象进行交流;简化了调用过程,无需了解子系统; 外观模式符合迪米

设计模式之工厂方法模式(Factory Method Pattern)

目录 1.1、前言1.2、工厂方法模式简介1.2.1、工厂方法模式的主要特点1.2.2、工厂方法模式的主要结构1.2.3、使用工厂方法模式的好处 1.3、SpringBoot中那些场景使用了工厂方法模式1.4、日常工作中那些业务场景可以使用工厂方法模式1.5、工厂方法模式实战(以某商场一次促销活动为例)1.5.1、实战场景简介 1.1、前言         在开篇讲工厂方法模

Java 桥接模式(Bridge Pattern)是设计模式中的一种结构型设计模式,桥接模式的核心思想是将抽象与实现解耦

桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们都可以独立地变化。桥接模式的核心思想是将抽象与实现解耦,使得它们可以独立扩展。 在桥接模式中,通常包含以下四个角色: 1、实现化(Implementor)角色:定义实现化角色的接口,这个接口不一定要与抽象化角色的接口完全一致,但一般来说,实现化角色的接口应当与抽象化角色的接口相类似。 // 实

建造者模式【Builder Pattern】

建造者模式【Builder Pattern】 又是一个周三,快要下班了,老大突然又拉住我,喜滋滋的告诉我“牛叉公司很满意我们做的模型,又签订了一个合同,把奔驰、宝马的车辆模型都交给我我们公司制作了,不过这次又额外增加了一个新需求:汽车的启动、停止、喇叭声音、引擎声音都有客户自己控制,他想什么顺序就什么顺序,这个没问题吧?”。 看着老大殷切的目光,我还能说啥,肯定的点头,“没问题!”,

模板方法模式【Template Method Pattern】

模板方法模式【Template Method Pattern】 周三,9:00,我刚刚坐到位置,打开电脑准备开始干活。 “小三,小三,叫一下其它同事,到会议室,开会”老大跑过来吼,带着淫笑。还不等大家坐稳,老大就开讲了, “告诉大家一个好消息,昨天终于把牛叉模型公司的口子打开了,要我们做悍马模型,虽然是第一个车辆模型,但是我们有能力,有信心做好,我们一定要…(中间省略20 分钟的讲话,如果你听过

适配器模式【Adapter Pattern】

好,请安静,后排聊天的同学别吵醒前排睡觉的同学了,大家要相互理解嘛。今天讲适配器模式,这个模式也很简单,你笔记本上的那个拖在外面的黑盒子就是个适配器,一般你在中国能用,在日本也能用,虽然两个国家的的电源电压不同,中国是220V,日本是110V,但是这个适配器能够把这些不同的电压转换为你需要的36V 电压,保证你的笔记本能够正常运行,那我们在设计模式中引入这个适配器模式是不是也是这个意思呢?是的,一