0

我正在使用 Christian Borlget 的FP-GrowthApriori包来查找频繁项集和关联规则。根据他的论文,fp-growth 在所有情况下都比先验表现更好。

在我的机器上运行 FP-Growth,在一个 ~36MB(~500,000 行)的 csv 文件上,显示:

from fim import apriori, fpgrowth
s = time.time()
fp = fpgrowth(tracts, target='r', supp=0.0065, zmin=2, report="C,S") # tracts is a list of lists
e = time.time()
print(e - s)

41.10438871383667

而 Apriori 的结果是:

s = time.time()
ap = apriori(tracts, target='r', supp=0.0065, zmin=2, report="C,S")
e = time.time()
print(e - s)

34.50810647010803

我在实施中遗漏了什么?

4

1 回答 1

1

不能保证任何一个总是比另一个更好。例如,如果没有项目满足最低支持,Apriori 可以非常快。当你最长的项目集是 2 个项目集时,一个非常幼稚的版本就可以了。Apriori 修剪和 fptree 只有在您选择(更有趣!)更长的项目集时才开始发光,这可能需要选择低支持参数。

于 2019-06-18T19:39:24.613 回答