def AssRule(freq, min_conf ):
"""
This assRule must input a dict for itemset -> support rate
And also can customize your minimum confidence
"""
assert type(freq) is dict
result = []
for item, sup in freq.items():
for subitem in subs(list(item)):
sb = [x for x in item if x not in subitem]
if sb == [] or subitem == []: continue
if len(subitem) == 1 and (subitem[0][0] == 'in' or subitem[0][0] == 'out'):
continue
conf = sup/freq[tuple(subitem)]
if conf >= min_conf:
result.append({'from':subitem, 'to':sb, 'sup':sup, 'conf':conf})
return result
if __name__ == '__main__':
a = pd.read_csv('E:/li.csv', low_memory=False)
A=a.to_dict(orient = "lists")
AssRule(A,0.4)