FP-增长算法中的递归

问题描述 投票:0回答:1

我正在尝试用Java实现FP-Growth(频繁模式挖掘)算法。我已经构建了树,但在条件 FP 树构建方面遇到困难;我不明白递归函数应该做什么。给定一个频繁项列表(按频率计数的递增顺序) - 标头和树(Node 类实例列表)该函数应采取哪些步骤?

我很难理解上面的伪代码。 alpha 和 Betha 节点是树中的吗?生成和构造函数的作用是什么?

我可以手动进行 FP-Growth,但发现实现非常混乱。如果这有帮助,我可以分享我的 FP-Tree 生成代码。

machine-learning recursion data-mining fpgrowth
1个回答
0
投票
  1. alpha 是通向该特定前缀树的前缀
  2. beta 是(要构建的树的)新前缀
  3. 生成行的含义类似于:将具有支持的模式 beta 添加到结果集
    anItem.support
  4. 构造函数创建新模式,并从中创建新树

构造函数(自下而上的方式)的一个示例如下:

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
© www.soinside.com 2019 - 2024. All rights reserved.