利用python对数据关联分析,实现Apriori算法
def apriori(D, minSup):
'''频繁项集用keys表示,
key表示项集中的某一项,
cutKeys表示经过剪枝步的某k项集。
C表示某k项集的每一项在事务数据库D中的支持计数
'''
#先求出1项集合及其支持计数,注意此处C1是字典,key为项集,value是计数
C1 = {
}
for T in D:
for I in T:
if I in C1:
C1[I] += 1
else:
C1[I] = 1
print(C1)
_keys1 = C1.keys()
keys1 = []
for i in _keys1:
keys1.append([i])
n = len(D)
cutKeys1 = []
#对keys1(1项集)进行剪枝步
for k in keys1[:]:
if C1[k[0]] * 1.0 / n >= minSup:
cutKeys1.append