参考文章 http://www.cnblogs.com/90zeng/p/apriori.html
只看算法过程和看算法代码的收获还是很不一样的
apriori在实现上,试用n-1的频繁集来构建n的频繁集,这里就要求,如果n是一个频繁集,那么他的任何n-1的子集也一定是频繁集,这里用到鸽巢原理,代码在这,很巧很妙
def aprioriGen(Lk, k):
'''
由初始候选项集的集合Lk生成新的生成候选项集,
k表示生成的新项集中所含有的元素个数
'''
retList = []
lenLk = len(Lk)
for i
in range(lenLk):
for j
in range(i +
1, lenLk):
L1 = list(Lk[i])[:k -
2]
L2 = list(Lk[j])[:k -
2]
L1.sort()
L2.sort()
if L1 == L2:
retList.append(Lk[i] | Lk[j])
return retList