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》中给出了具体说明。

  • 相关阅读:
    【iOS】7.4 定位服务->2.1.1 定位
    【iOS】7.4 定位服务->1.0 简介
    1.2.1 OC概述
    5.1 网络基础
    4.4 多线程进阶篇<下>(NSOperation)
    4.3 多线程进阶篇<中>(GCD)
    4.1/4.2 多线程进阶篇<上>(Pthread & NSThread)
    4.0 多线程基础篇
    2.1 -1.0 Xcode(发布时间、使用、快捷键、插件相关)
    一款面试复习应用源码
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7284322.html
Copyright © 2011-2022 走看看