牛奶鸡蛋快速掌握FP增长算法

牛奶鸡蛋快速掌握FP增长算法

一 按照惯例,先来介绍基本概念。
(1)
在这里插入图片描述
(2)
在这里插入图片描述
(3)
在这里插入图片描述
(4)
在这里插入图片描述

二 介绍完苦涩的概念来直接导入个小例子吧。
假设在购物车中存在着九条购物信息,购物记录如图一所示:
在这里插入图片描述图一
我们在后面方便记录和书写,采用商品的首字母来表示商品类别;

1 构造FP
在这里插入图片描述
图二:构造FP树
第一步中插入信息 s j m n;
第二步插入时候则是要查看是否含有公共前缀,如果有在公共前缀那么就在基础上继续插入,如果没有公共前缀,则从根节点中在依次插入;第二步插入 s j p;
第三步插入信息 s j m;
第四步插入信息 s j m n p;

最终构建的结果如图三所示:
在这里插入图片描述
图三
解释:FP树包含一个连接具有相同项节点的指针列表,用虚线表示,有助于快速访问树中的每一项。
在每一次读入每一条数据之后,即用虚线把相同的节点连接起来。

2 频繁项集合的产生
先举个例子:先从p开始遍历,构建p的条件树,通过构造p的条件树来寻找以p为结尾的频繁子集。
(1)删除p
在这里插入图片描述
图四:删除p
p的条件树:
在这里插入图片描述
图五
如图四所示:在删除p节点之后,需要更新前缀路径的支持度,因为在某些商品信息中不包含p的信息,
条件树的构造过程就是把不含有p子集的分支删除,例如,在是图四中,最右边的一条分支为s7,j6,m4,n3;但是在数据集中第一条为 s j m n,不包含p,所以删除该条信息,所以经过整理之后p的条件树如图五所示;又因为设置的最小支持度为3,此时子集pm和pj为频繁子集;

(2) 删除n(牛奶)的n的条件树为
在这里插入图片描述
图六
n的条件树如图六所示:经过整理之后发现,生成的频繁子集为 n nm nmj nmjs;

(3)删除m(面包)的m条件树为:
在这里插入图片描述
图七
m的条件树如图七所示:经过整理之后发现,生成的频繁子集为 m,mj,mjs;

(4)删除j(鸡蛋)的j条件树为:
在这里插入图片描述
图八
j的条件树如图八所示:经过整理之后发现,生成的频繁子集为 j,js;
删除s(薯片)后,生成的频繁子集为 s;

依据相应的后缀排序生成的频繁项为下表
在这里插入图片描述
转自https://www.cnblogs.com/zhangchaoyang/articles/2198946.html

猜你喜欢

转载自blog.csdn.net/qq_29423387/article/details/85245868