0
比較下面是先驗關聯規則與車
import csv
import apriori
with open('dataset.csv', 'r') as fp:
reader = csv.reader(fp)
lst1,lst2 = [],[]
for row in reader:
others,last = row[:-1],row[-1]
lst1.append(others)
lst2.append(last)
L,suppData=apriori.apriori(lst1, minSupport =0.3)
rules = apriori.generateRules(L,suppData, minConf = 0.3)
rules = sorted(rules, key=lambda x: x[2], reverse=True)
以下一些簡單的代碼數據集
p1,p2,p3,A
p1,p2,B
p1,p2,C
p1,p2,D
p2,p3,E
p1,p2,p3,F
p1,p3,G
規則輸出看起來像
[(frozenset(['p1']), frozenset(['p2']), 0.8333333333333334), (frozenset(['p2']), frozenset(['p1']), 0.8333333333333334), (frozenset(['p3']), frozenset(['p2']), 0.75), (frozenset(['p3']), frozenset(['p1']), 0.75), (frozenset(['p2']), frozenset(['p3']), 0.5), (frozenset(['p1']), frozenset(['p3']), 0.5)]
什麼是正確的,並有效的方式來查看產品購物車,這是一個逗號分隔的字符串,如[p1,p2],並推薦下2個最好的產品。
cart = ['p1','p2']
recommend=[]
for fz in rules:
if(",".join(sorted(fz[0])) == ",".join(cart)):
recommend.extend(sorted(fz[1]))
上面的代碼不處理所有條件..