zoukankan      html  css  js  c++  java
  • 关联规则( Association Rules)之频繁模式树(FP-Tree)

           Frequent Pattern Tree(频繁模式树)是Jiawei Han在2004年的文章《Mining Frequent Patterns without Candidate Generation 》中提出的。

    ————————————————————————————————————————————————————

    以下给出一些定义:

    设项集(set of items),交易数据库(transaction database)。当中交易(transaction),是中的元素组成的集合。模式(Pattern)A是中的元素组成的集合。模式A的支持度(support)是指交易数据库中包括A的交易的数量。

    是最小支持度阈值,假设。模式A的支持度大于,那么称A为频繁模式(Frequent Pattern)。

    频繁模式树就是要找到交易数据库中的频繁模式。

    ————————————————————————————————————————————————————

    样例:

    设项集,交易数据库例如以下表:


    最小支持度阈值

    构造频繁模式树仅仅须要扫描(scan)交易数据库次。

    第一次:扫描数据库。对当中的每个项进行计数,得到一个list of frequent items(频繁项的列表) 。比如,项出现了4次,依次类推我们对当中的每一项进行计数,由于最小支持度阈值为3,,我们以下仅仅给出出现次数大于3的项:


    第二次:扫描数据库的每一交易,得到每个交易的排序频繁项(Ordered Frequent Items)构造频繁模式树(构造过程非常easy,原论文给出了具体的阐述):

    我们对每个交易,仅仅保留大于3的项。并排序。然后我们得出下表。多出了一列就是排序频繁项(Ordered Frequent Items)






    —————————————————————————————————————————————————————

    依据上面的两步,我们已经构造出了频繁模式树,怎么样通过频繁模式树,找到频繁模式。

    当中,我们拿和项有关的频繁模式举例,其它依次类推:

    首先。我们找到全部的节点,并沿着树枝路径向上直到根节点(root),我们发现有两条路径:

    然后。我们能够得出出现的3次同一时候出现了3次,是同一时候和出现次数最多的项,并且次数大于最小支持度阈值。所以就是一个频繁模式,依次类推得出其它项的频繁模式:

    所以,通过频繁模式树找到了非常多频繁模式。

    —————————————————————————————————————————————————————

    对于频繁模式树的并行计算(MapReduce),文章

    《Parallel FP-Growth for Query Recommendation》中给出了具体说明。

  • 相关阅读:
    c++设计模式总结
    Java复习(四)类的重用
    Java复习(三)类中的方法
    Java复习(二)类与对象的基本概念
    Java复习(一)——Java语言概述、开发环境、基础知识
    Java复数的加乘除运算
    人见人爱A+B
    noj快排
    noj最长公共子序列
    C语言里有没有sort函数?有!
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7284322.html
Copyright © 2011-2022 走看看