基于 Apriori的问题进行改进,提出FP-Growth算法
相比Apriori算法需要多次扫描数据库,FPGrowth只需要对数据库扫描2次。 第1次扫描获得当个项目的频率,去掉不满足支持度要求的项,并对剩下的项排序。 第2次扫描建立一颗FP-Tree树。
二、构建FP-Growth的步骤 挖掘强关联规则是在满足一定支持度的情况下寻找置信度达到阈值的所有商品组合。 2.1、样本我们要找出哪些总是一起购买的商品,比如人们买薯片的时候通常也会买鸡蛋,则[薯片,鸡蛋]就是一条频繁模式(规律)。
第一步:扫描数据库,每项商品按频数递减排序,删除频数小于最小支持度MinSup的商品。(第一次扫描数据库) 薯片:7鸡蛋:7面包:7牛奶:6啤酒:4 (这里我们令MinSup=4) 以上结果就是频繁1项集,记为F1。 排序如下:
遍历表头项中的每一项(我们拿“牛奶:6”为例),对于各项都执行以下的操作:
2.4.1、从FP-Tree中找到所有的“牛奶”节点,向上遍历它的祖先节点,得到4条路径。1、FPGROWTH算法只需对事务数据库进行二次扫描,并且避免产生的大量候选集。 2、由于该算法要递归生成条件数据库和条件FP-tree,所以内存开销大,而且只能用于挖掘单维的布尔关联规则。