美文网首页
【机器学习实战】使用FP-growth算法来高效发现频繁项集

【机器学习实战】使用FP-growth算法来高效发现频繁项集

作者: 吵吵人 | 来源:发表于2019-02-24 15:14 被阅读0次

    FP-growth(Frequent Pattern)算法基于Apriori构建,只是将数据集存储在一个特定的称作FP树的结构之中。一棵FP树与计算机科学中的其他树结构类似,但它是通过链接(link)连接相似元素,被连起来的元素项被称为一个链表。它只需对数据库进行两次扫描,能够更高效的发现频繁项集,但是不能用于发现关联规则。

    FP树的构建

    1. 事务过滤及整理
    1) 遍历所有的数据集合,计算所有项的支持度;
    2) 丢弃非频繁的项;
    3) 基于支持度降序排序事务项。

    2.构建FP树

    从空集(符号为∅\emptyset)开始,向其中不断添加频繁项集。过滤、排序后的事务依次添加到树中,如果树中巳存在现有元素,则增加现有元素的值;如果现有元素不存在,则向树添加一个分枝。
    头指针表并不是随着FPTree一起创建,而是在第一次扫描时就已经创建完毕。为方便操作,第二次扫描时头指针关键项可以根据事务项计数和字母升序(或降序)排序。

    从一棵FP树中发现频繁项集

    1)从FP树中获得条件模式基;
    2)利用条件模式基,构建一个条件FP树;
    3)迭代重复步骤(1)步骤(2 ) ,直到树包含一个元素项为止。

    抽取条件模式基
    条件模式基是以所查找元素项为结尾的路径集合。每一条路径其实都是一条前辍路径(prefixpath)。简而言之,一条前缀路径是介于所査找元素项与树根节点之间的所有内容。
    有两种抽取条件模式基办法:
    a)对树进行穷举式搜索,直到获得想要的频繁项为止。
    b)头指针表包含相同类型元素链表的起始指针。一旦到达了每一个元素项,上溯这棵树直到根节点为止。

    构建条件FP树
    对于每个频繁项,都创建一棵条件FP树。使用刚才发现的条件模式基作为输入数据,并通过相同的建树代码来构建这些树。然后,递归地发现频繁项、发现条件模式基,以及发现另外的条件树。举个例子,假定为频繁项 t 创建一个条件FP树,然后对{t, y}、{t, x}、……重复该过程。


    以下显示所有的条件树。注意,根据Apriori过滤的思想,{t,y}的条件FP树是在{t}的条件FP树之上,而不是最原始的FP树上进行。避免造成误区不理解。

    相关文章

      网友评论

          本文标题:【机器学习实战】使用FP-growth算法来高效发现频繁项集

          本文链接:https://www.haomeiwen.com/subject/wtqpyqtx.html