实验一 关联规则算法的实现及其应用
【实验目的】
- 掌握关联规则挖掘算法Apriori的概念,理解算法的步骤。
- 加深对Apriori算法的理解,逐步培养解决实际问题的能力。
【实验性质】
设计型实验
【实验内容】
实现使用Apriori算法来挖掘关联规则
【实验环境】
Python 2
【实验结果】
- 完整的apriori.py文件
代码:
def loadDataSet():
return[[1,3,4],[2,3,5],[1,2,3,5],[2,5]]
def createC1(dataSet):
C1=[]
for transaction in dataSet:
for item in transaction:
if not [item] in C1:
C1.append([item])
C1.sort()
return map(frozenset,C1)
def scanD(D,Ck,minSupport):
ssCnt={}
for tid in D:
for can in Ck:
if can.issubset(tid):
if not ssCnt.has_key(can):ssCnt[can]=1
else:ssCnt[can]+=1
numItems = float(len(D))
retList =[]
supportData={}
for key in ssCnt:
support =ssCnt[key]/numItems
if support >=minSupport:
retList.insert(0,key)
supportData[key]=support
return retList,supportData
def aprioriGen(Lk, k): #creates Ck
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:
r