apriori算法分析

参考文章  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


猜你喜欢

转载自blog.csdn.net/a1310368974/article/details/78909239
今日推荐