FP-Growth 算法中的递归
Recursion in FP-Growth Algorithm
我正在尝试在 Java 中实现 FP-Growth(频繁模式挖掘)算法。我已经构建了树,但在条件 FP 树构建方面遇到了困难;我不明白递归函数应该做什么。给定一个频繁项列表(按频率计数的递增顺序)- header 和一棵树(节点 class 实例的列表)函数应该采取什么步骤?
我很难理解上面的伪代码。 Tree 中有 alpha 和 Betha 节点吗?generate 和 construct 函数有什么作用?我可以手动执行 FP-Growth,但发现实现起来非常混乱。如果这有帮助,我可以分享我的 FP-Tree 代代码。提前致谢。
- alpha 是导致此特定前缀树的前缀
- beta 是(要构建的树的)新前缀
- 生成行的含义类似于:将支持的模式 beta 添加到结果集 anItem.support
- 构造函数创建新模式,从中创建新树
构造函数的一个示例(自下而上)类似于:
function construct(Tree, anItem)
conditional_pattern_base = empty list
in Tree find all nodes with tag = anItem
for each node found:
support = node.support
conditional_pattern = empty list
while node.parent != root_node
conditional_pattern.append(node.parent)
node = node.parent
conditional_pattern_base.append( (conditional_pattern, support))
return conditional_pattern_base
我正在尝试在 Java 中实现 FP-Growth(频繁模式挖掘)算法。我已经构建了树,但在条件 FP 树构建方面遇到了困难;我不明白递归函数应该做什么。给定一个频繁项列表(按频率计数的递增顺序)- header 和一棵树(节点 class 实例的列表)函数应该采取什么步骤?
我很难理解上面的伪代码。 Tree 中有 alpha 和 Betha 节点吗?generate 和 construct 函数有什么作用?我可以手动执行 FP-Growth,但发现实现起来非常混乱。如果这有帮助,我可以分享我的 FP-Tree 代代码。提前致谢。
- alpha 是导致此特定前缀树的前缀
- beta 是(要构建的树的)新前缀
- 生成行的含义类似于:将支持的模式 beta 添加到结果集 anItem.support
- 构造函数创建新模式,从中创建新树
构造函数的一个示例(自下而上)类似于:
function construct(Tree, anItem)
conditional_pattern_base = empty list
in Tree find all nodes with tag = anItem
for each node found:
support = node.support
conditional_pattern = empty list
while node.parent != root_node
conditional_pattern.append(node.parent)
node = node.parent
conditional_pattern_base.append( (conditional_pattern, support))
return conditional_pattern_base