教你学Python36-使用FP-growth算法来高效发现频繁项集

教你学Python36-使⽤FP-growth算法来⾼效发现频繁项集我们已经介绍了⽤ Apriori 算法发现 频繁项集 与 关联规则。
本章将继续关注发现 频繁项集 这⼀任务,并使⽤ FP-growth 算法更有效的挖掘 频繁项集。
FP-growth 算法简介
水位显示器⼀种⾮常好的发现频繁项集算法。
基于Apriori算法构建,但是数据结构不同,使⽤叫做 FP树 的数据结构结构来存储集合。下⾯我们会介绍这种数据结构。
FP-growth 算法步骤
基于数据构建FP树
从FP树种挖掘频繁项集
FP树介绍
FP树的节点结构如下:
class treeNode:
def __init__(self, nameValue, numOccur, parentNode):
热转印带self.name = nameValue    # 节点名称
# needs to be updated蜜饯LH
self.parent = parentNode  # 指向⽗节点
self.children = {}        # 存储叶⼦节点
FP-growth 原理
基于数据构建FP树
蓝牙GPS步骤1:
肩垫
1. 遍历所有的数据集合,计算所有项的⽀持度。
2. 丢弃⾮频繁的项。
3. 基于 ⽀持度 降序排序所有的项。
4. 所有数据集合按照得到的顺序重新整理。
5. 重新整理完成后,丢弃每个集合末尾⾮频繁的项。
步骤2:
1. 读取每个集合插⼊FP树中,同时⽤⼀个头部链表数据结构维护不同集合的相同项。dr探测器
终得到下⾯这样⼀棵FP树
从FP树中挖掘出频繁项集
步骤3:
1. 对头部链表进⾏降序排序
2. 对头部链表节点从⼩到⼤遍历,得到条件模式基,同时获得⼀个频繁项集。如上图,从头部链表 t 节点开始遍历,t 节点加⼊到频繁项
集。到以 t 节点为结尾的路径如下: 去掉FP树中的t节点,得到条件模式基<;左边路径,左边是值>[z,x,y,s,t]:2,[z,x,y,r,t]:1 。条件模式基的值取决于末尾节点 t ,因为 t 的出现次数最⼩,⼀个频繁项集的⽀持度由⽀持度最⼩的项决定。所以 t 节点的条件模式基的值可以理解为对于以 t 节点为末尾的前缀路径出现次数。

本文发布于:2024-09-22 19:35:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/163731.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:节点   项集   集合   模式   算法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议