RapidMiner FP-growth运算符不会返回任何结果

时间:2014-02-26 01:57:34

标签: text-mining rapidminer

我在fastminer中遇到了fp-growth运算符的问题。我正在处理大约20个文本文件,总共大小<1MB。我使用了过程文档操作符,在该标记中,过滤停用词,转换个案,生成n-gram和过滤令牌。从那里我使用数字到二项式运算符。直到这一刻一切正常,但是当我运行fp-growth运算符时,它只是无限期地处理而没有结果。我尝试调整min支持参数,但无济于事。你对如何解决这个问题有什么建议吗?我非常感谢任何指导。

1 个答案:

答案 0 :(得分:0)

FP-Growth是一种在包含多个项目的多个事务中查找常用项目集的算法。在您的方案中,项目可能是文本中出现的单词,而每个文本都是一个事务。

不幸的是,频繁项目集的问题呈指数级:假设您有一个包含项目{A,B,C}的频繁项目集,这意味着有足够的事务包含所有三个项目。但这也意味着所有子集也是频繁的,因为子集{A,B}至少包含在包含{A,B,C}的所有事务中。因此,如果{A,B,C}频繁,{A,B},{B,C},{A,C}和{A},{B}和{C}也是如此。集合的数量是(2 ^ n) - 1.因此,对于一组四个项目,我们已经有15个子集,5个31,依此类推。 所以问题是:什么使得频繁出现,为什么会有这么多频繁的设置,RapidMiner需要这么长时间来计算它们呢?

最重要的因素当然是min_support。这定义了一个集合必须经常发生的事务的百分比的阈值。如果将min_support增加到1,则项目集将会少得多,计算速度也会更快。 但是,不要被“找到最小数量的项目集”所欺骗。如果选中此选项,RapidMiner将尝试始终找到指定的最小数量的项目集,并且如果找不到任何项目集将自动降低min_support。我的建议:关掉它。

您应该确保的另一件事是,正确的值被识别为“正面”,因此指示此项目是交易的一部分。如果之前使用过数字到二项式运算符,则为“真”。所以你应该在RapidMiner的positive_value参数中输入“true”。此参数仅在专家模式下可见。如果您不处于专家模式,则会在参数下方显示一行,告知您“4个隐藏的专家参数”可用。您可以单击该行以切换到专家模式。

在您的特定情况下,您从文本文件中获取“交易”,您将遇到特殊问题:

  1. 您将拥有数千个属性,特别是如果您在自己的情况下生成NGrams。大量属性也会导致运行时间大幅增加。
  2. 如果您不通过在Process Document运算符中应用合理的修剪来删除频繁的单词,那么频繁出现的单词将会爆炸频繁项目集的数量。假设您没有过滤掉停用词,则会在整个地方出现“a”,“the”,“is”等字样,导致其他频繁的字词与它们共存。所以频繁的集合{A,B,C}将永远扩展到{A,B,C,a,the,is}所以我们现在有2 ^ 6 -1个子集而不仅仅是7 ...
  3. 希望这有帮助!