【问题标题】:Recursion in FP-Growth AlgorithmFP-Growth 算法中的递归
【发布时间】:2020-02-11 14:36:49
【问题描述】:

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

我很难理解上面的这个伪代码。树中的 alpha 和 Betha 节点是什么,生成和构造函数是做什么的?我可以手动进行 FP-Growth,但发现实现非常混乱。如果这有帮助,我可以分享我的 FP-Tree 生成代码。提前致谢。

【问题讨论】:

    标签: recursion machine-learning data-mining fpgrowth pattern-mining


    【解决方案1】:
    1. alpha 是通向此特定前缀树的前缀
    2. beta 是(要构建的树的)新前缀
    3. generate 行的含义类似于:将模式 beta 添加到结果集并支持 anItem.support
    4. construct 函数创建新模式,从中创建新树

    构造函数的一个例子(自下而上的方式)是这样的:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-09
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2012-12-26
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      相关资源
      最近更新 更多