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