之前费心费力写了一篇,结果没有保存。这一篇主要放上书本上的程序分析及运行结果。
关联分析主要分为:频繁项集生成和关联规则生成
1.频繁项集生成——Apriori算法
代码:
def createC1(dataSet):
'''
构建大小为1的所有候选项的集合,存储不重复的项值
map(function,data)映射函数,在python3中返回一个迭代器,智能循环一次,故改为list
frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素,不可改变
可用做字典键值使用
'''
C1=[]
for transcation in dataSet:
for item in transcation:
if not [item] in C1:
C1.append([item])
C1.sort()
return list(map(frozenset,C1))
def scanD(D,Ck,minSupport):
'''
D:数据集 Ck:候选项集列表 minSupport:最小支持度
'''
ssCnt={} #创建空字典
for tid in D:
for can in Ck:
if can.issubset(tid):