def apriori_alg(trans, support=0.01, minlen=2):
print('appr_1')
dna = trans.unstack().dropna()
print('appr_2')
ts = pandas.get_dummies(dna).groupby(level=1).sum()
print('appr_3')
collen, rowlen = ts.shape
pattern = []
for cnum in range(minlen, rowlen + 1):
for cols in combinations(ts, cnum):
print('cnum', cnum)
patsup = ts[list(cols)].all(axis=1).sum()
patsup = float(patsup) / collen
pattern.append([",".join(cols), patsup])
print('appr_4')
sdf = pandas.DataFrame(pattern, columns=["Pattern", "Support"])
print('appr_5')
results = sdf[sdf.Support >= support]
print('appr_6')
return results
# ????????? Apriori ?? ? ??
评论列表
文章目录