python3.6机器学习实战第11章代码问题总结
程序清单11-1
from numpy import *
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 list(map(frozenset,C1))
def scanD(D,Ck,minSupport):
numItems=float(len(list(D)))#python3.6不支持len(map对象,即D),可以看到D可以用一次
print(list(D))#我调整了源代码的位置,这一步发现map对象D运行完这一段就变空了
ssCnt={}
for tid in D:
for can in Ck:
if can.issubset(tid):
if not can in ssCnt:
ssCnt[can]=1
else:ssCnt[can]+=1
print(list(D))
#numItems=float(len(D))
print(numItems)
retList=[]
supportData={}
for key in ssCnt:
support=ssCnt[key]/numItem