对于最近的一个项目,我实现了FP-Growth算法,用于读取事务并生成公共集,然后从中生成关联规则。这对我的目的很有用。
现在我正在生成数以千计的规则,我正在寻找一种有效的方法来执行它们...目前我将规则存储在一个postgres表中,其中body是一个整数数组,head是一个单个int。我的查询查找的行,其中我获得的项目集包含正文但不包含头部。
我只能使用PHP和Postgres - 这个项目只是一个更大的应用程序的一小部分。
有人可以推荐数据结构或表架构/指导我一些好的资源吗?另外,在讨论关联规则的应用时,首选术语是什么 - 评估,执行,查找,运行?
谢谢!
答案 0 :(得分:1)
因此,您有一组规则,其中每个左侧都被描述为谓词集。 一种选择是使用Lucene这样的布尔搜索引擎对它们进行索引,然后给出应用于当前事件的谓词集,您可以搜索可能的规则,然后尝试完全应用它们,我相信它会非常快速地工作。
其他选项是您预测的排序,并将每个规则转换为规则左侧字符串(P1 P2 P3 P4)。现在我们来到了许多字符串匹配的领域,并且可以使用前缀树(我们应该搜索子字符串的一个问题不是很多但是复杂性也是O(log(n))