概要

FP的全称是Frequent Pattern,在算法中使用了一种称为频繁模式树(Frequent Pattern Tree)的数据结构。FP-tree是一种特殊的前缀树,由频繁项头表和项前缀树构成。FP-Growth算法基于以上的结构加快整个挖掘过程。

  • Aprior

Apriori算法是常用的用于挖掘出数据关联规则的算法,它用来找出数据值中频繁出现的数据集合,找出这些集合的模式有助于我们做一些决策。比如在常见的超市购物数据集,或者电商的网购数据集中,如果我们找到了频繁出现的数据集,那么对于超市,我们可以优化产品的位置摆放,对于电商,我们可以优化商品所在的仓库位置,达到节约成本,增加经济效益的目的。

  • 和Apriori比较
  1. 通过构造FP树和项头表来存频繁项集
  2. 整个过程只遍历数据2次

关键概念

  • 置信度

    条件概率,置信度(A->B) 在A出现的条件下B发生的概率

  • 支持度

    某个组合出现的概率(出现的次数/总的次数)

  • 提升度

    提升度(A->B) = 置信度(A->B)/支持度(B) = P(B|A) /p(B) = P(AB)/(P(A)*P(B))

    A的出现对B发生的概率有多大的提升 (B发生的所有条件里 A发生导致B发生 所占的比例)

    提升度 (A→B)>1:代表有提升;

    提升度 (A→B)=1:代表有没有提升,也没有下降;

    提升度 (A→B)<1:代表有下降。


算法步骤

  1. 整理数据,获得事务数据集
  2. 计算每项的支持度,形成项头表

关联规则-FPGrowph

  1. 每个事务内按照 支持度对每项进行筛选、排序,更新项头表的链接和计算
    关联规则-FPGrowph
  2. 构建fp树

关联规则-FPGrowph

关联规则-FPGrowph
5. 挖掘每项的频繁项集

关联规则-FPGrowph
6. 关联规则的评估

每个事务可以表示为 每个锚段一个月发生的缺陷种类


频繁项集计算步骤

关联规则-FPGrowph

  1. fp树的叶子点开始递归,找出该叶子节点项的条件模式基(包含该叶子节点的子树)
  2. 子树也要根据支持度进行筛选项
  3. 子树项的笛卡尔积组合,构成频繁项

关联规则-FPGrowph

频繁2项集为{A:2,F:2}, {C:2,F:2}, {E:2,F:2}, {B:2,F:2}。递归合并二项集,得到频繁三项集为{A:2,C:2,F:2},频繁四项…

关联规则-FPGrowph

祖先节点计数设置为叶子节点的计数,即变成{A:2, C:2,E:1 G:1,D:1, D:1}此时E节点和G节点由于在条件模式基里面的支持度低于阈值,被我们删除,最终在去除低支持度节点并不包括叶子节点后D的条件模式基为{A:2, C:2}


参考博客

https://www.cnblogs.com/zhengxingpeng/p/6679280.html

https://www.cnblogs.com/pinard/p/6293298.html

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-06
  • 2021-05-18
猜你喜欢
  • 2021-10-16
相关资源
相似解决方案