eclat算法,报语法错误python,求大神解救,代入如下:
import sys
import time
type = sys.getfilesystemencoding()
from sys import argv
def eclat(prefix, items):
while items:
i,itids = items.pop()
isupp = len(itids)
if isupp >= minsup:
print sorted(prefix)+[i]), ':', isupp
suffix = []
for j, ojtids in items:
jtids = itids & ojtids
if len(jtids) >= minsup:
suffix.append((j,jtids))
eclat(prefix+[i], sorted(suffix, key=lambda item: len(item[1]), reverse=True))
data = {}
#str1 = './datasets/T10I4D100K.dat'
str1 = 'E:\pg\datasets\mushroom.dat'
#minsup = int(argv[2])
#minsup = 5
##支持度
ratio = 0.35
minsup = 8124*ratio
trans = 0
#f = open(argv[1], 'r')
f = open(str1)
for row in f:
trans += 1
for item in row.split():
if item not in data:
data[item] = set()
data[item].add(trans)
f.close()
##计算运行的时间
start = time.clock()
eclat([], sorted(data.items(), key=lambda item: len(item[1]), reverse=True))
end = time.clock()
print( "run time: %f s" % (end-start))
报错提示:
![图片说明](https://img-ask.csdn.net/upload/201811/07/1541598538_212744.png)