Original Code :
Modified Code : Just modify the execution code with list()
D=list(map(set,dataSet))
'''
Author: Maxwell Pan
Date: 2022-04-30 17:53:48
LastEditTime: 2022-05-02 09:24:18
FilePath: \cp11\apriori.py
Description:
Software:VSCode,env:
'''
# 创建了用于测试的简单数据集
def loadDataSet():
return [[1, 3, 4],[2, 3, 5],[1, 2, 3, 5],[2, 5]]
def createC1(dataSet):
C1 = [] # C1是大小为1的所有候选项集的集合。
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 can not in ssCnt:
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