我正在寻找关联挖掘算法,我只能挖掘长度为 2 的频繁项集。在 2 项集停止时使用数据库查询来计算频繁项是否更好。
问问题
224 次
2 回答
1
如果您的输入是一个文本文件并且您只想找到长度为 2 的项集,您可以只扫描文件一次并计算 2-itemsets 直接的支持。这将非常有效。
对于这种情况,您不需要使用 Apriori FPGrowth 或任何其他花哨的算法。您可以在文件上使用 FOR 循环并使用映射来存储扫描文件时遇到的每对项目的频率。
然后当扫描结束时,您将获得两个项目集的所有支持,并且您只能输出支持> = minsup的那些。
另一种方法是使用三角矩阵而不是地图来计算每对项目的支持度。它会比使用地图快一点,但如果您的数据稀疏,它可能会浪费更多内存。
于 2014-02-26T16:05:49.600 回答
0
长度为 2 的项集不会受益于剪枝规则,例如单调性。
您可能可以使用聪明JOIN
的 s 计算 2 个项目集,而性能成本很低(事实上,您的 DBMS 可能会比您自己的代码更好地加速它)。
有关通过 SQL 在 PostgreSQL 数据库上运行频繁项集挖掘的库,请参阅MadLIB。
于 2014-01-07T09:10:42.417 回答