在本案例中,我们结合商场的购物记录,实现经典的关联规则挖掘算法APRIORI算法和FPGrowth算法。具体来看,我们将实现频繁K项集的查找,条件模式基的查找,FP树的构建。最后,我们将从购物记录中寻找关系密切的商品,从而能给商场的商品销售提供建议支持。
import pandas as pd
import numpy as np
由于数据集文件以txt
文件存储,我们选择Pandas
中的read_table()
函数读入数据。
data = pd.read_table('./input/shopping-record.txt', header=None)
data.head()
0 | |
---|---|
0 | citrus fruit,semi-finished bread,margarine,rea... |
1 | tropical fruit,yogurt,coffee |
2 | whole milk |
3 | pip fruit,yogurt,cream cheese,meat spreads |
4 | other vegetables,whole milk,condensed milk,lon... |
从结果上来看,虽然每行数据记录的项之间以逗号隔开,但是数据集并没有严格的格式规范,各行数据记录所包含的项数量并不相同,无法在读入函数中指定统一的分隔符。因此,我们选择使用Python
的标准函数,直接读入,将数据集以嵌套列表的形式存储。
# 数据转换
data = []
with open('./input/shopping-record.txt') as f:
for line in f.readlines():
# 去除各种符号
line = line.strip()
#去除空行
if line:
row_list = line.split(',')
data.append(row_list)
## 输出数据集的前10条记录
data[:10]
[['citrus fruit', 'semi-finished bread', 'margarine', 'ready soups'], ['tropical fruit', 'yogurt', 'coffee'], ['whole milk'], ['pip fruit', 'yogurt', 'cream cheese', 'meat spreads'], ['other vegetables', 'whole milk', 'condensed milk', 'long life bakery product'], ['whole milk', 'butter', 'yogurt', 'rice', 'abrasive cleaner'], ['rolls/buns'], ['other vegetables', 'UHT-milk', 'rolls/buns', 'bottled beer', 'liquor (appetizer)'], ['potted plants'], ['whole milk', 'cereals']]
数据集一共有9835条数据记录。
len(data)
9835
from collections import defaultdict
min_support = 100
frequent_1 = defaultdict(int)
for item in data:
for record in item:
frequent_1[frozenset([record])] += 1
frequent_1 = {v:frequent_1[v] for v in frequent_1 if frequent_1[v] >= min_support}
print u'频繁1项集的个数:', len(frequent_1)
## 输出前10个元素
frequent_1_list = frequent_1.items()
for index in range(10):
print frequent_1_list[index]
频繁1项集的个数: 88 (frozenset(['beef']), 516) (frozenset(['rolls/buns']), 1809) (frozenset(['cling film/bags']), 112) (frozenset(['spread cheese']), 110) (frozenset(['liquor']), 109) (frozenset(['flower (seeds)']), 102) (frozenset(['white bread']), 414) (frozenset(['dessert']), 365) (frozenset(['pork']), 567) (frozenset(['whipped/sour cream']), 705)
我们使用getFrequentItemSetWithSupport()
函数完成APRIORI
算法中的连接步和剪枝步。
def getSubset(item, k):
import itertools as its
return [frozenset(item) for item in its.combinations(item, k)]
# k >= 2时
def getFrequentItemSetWithSupport(frequent_k, min_support, k, item_list):
from collections import defaultdict
items = frequent_k.keys()
#k项候选集
candidate_items = []
current_k = defaultdict(int)
### 连接步,生成候选集
candidate_items = set([m.union(n) for m in items for n in items if m != n and len(m.union(n)) == k])
### 剪枝步,剔除含有非频繁项子集的项集
final_candidate = set()
for candidate in candidate_items:
sub_items = getSubset(candidate, (k - 1))
if any([item < candidate for item in sub_items]):
final_candidate.add(candidate)
else:
continue
# 遍历数据集data,对final_candidate中的元素进行统计,保留支持度大于最小阈值的频繁项
for item in final_candidate:
for record in item_list:
#数据记录record中含有频繁项item
if item.issubset(record):
current_k[item] += 1
else:
continue
#print 'current_candidate: ', current_k
return {v: current_k[v] for v in current_k if current_k[v] >= min_support}
在本案例中,我们选择k值的上限为5, 反复调用上述函数,来生成频繁k项集。
upper_bound = 5
final_itemsets= []
final_itemsets.append(frequent_1)
min_conf = 0.4
frequent_k_minus_1 = frequent_1
k = 2
while k <= upper_bound:
#print frequent_k_minus_1
#print ""
frequent_k = getFrequentItemSetWithSupport(frequent_k_minus_1, min_support, k, data)
final_itemsets.append(frequent_k)
frequent_k_minus_1 = frequent_k
k += 1
## 输出频繁2项集中的前10个元素
final_itemsets_2_list = final_itemsets[1].items()
for index in range(10):
print final_itemsets_2_list[index]
(frozenset(['yogurt', 'whipped/sour cream']), 204) (frozenset(['tropical fruit', 'sausage']), 137) (frozenset(['pork', 'other vegetables']), 213) (frozenset(['other vegetables', 'frankfurter']), 162) (frozenset(['whole milk', 'whipped/sour cream']), 317) (frozenset(['other vegetables', 'napkins']), 142) (frozenset(['whole milk', 'frozen vegetables']), 201) (frozenset(['shopping bags', 'bottled water']), 108) (frozenset(['brown bread', 'soda']), 124) (frozenset(['yogurt', 'frankfurter']), 110)
从k=4
开始,频繁项集集合为空,也就是说,在给定的最小支持度水平下,数据集至多存在频繁3项集。
生成频繁项集之后,我们可以直接得到同时满足最小支持度和最小置信度的强关联规则。例如,对于频繁项集{'A','B'}
来说,关联规则 $A \rightarrow B$的置信度如下所示:
\begin{equation}
\text{conf}(A \rightarrow B) = \dfrac{\text{support}(\{A,B\})}{\text{support}(\{A\})}
\end{equation}
def getAllSubsets(item):
subsets = []
for i in xrange(len(item) - 1):
subsets.extend(getSubset(item, i + 1))
return subsets
association_rules = []
for item_set in final_itemsets[1:]:
if len(item_set) == 0:
continue
for value in item_set:
print 'frequent item set: ', value
#形如 if condition, then conclusion
for condition in getAllSubsets(value):
print ' condition: ', condition,
conclusion_items = frozenset(x for x in value if x not in condition)
print ' conclusion: ', conclusion_items,
if len(conclusion_items) > 0:
confidence = float(final_itemsets[len(value) - 1][value])/final_itemsets[len(condition) - 1][condition]
print confidence
if confidence > min_conf:
association_rules.append([[condition, conclusion_items],
confidence])
print ''
frequent item set: frozenset(['yogurt', 'whipped/sour cream']) condition: frozenset(['yogurt']) conclusion: frozenset(['whipped/sour cream']) 0.148688046647 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['yogurt']) 0.289361702128 frequent item set: frozenset(['tropical fruit', 'sausage']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['sausage']) 0.132751937984 condition: frozenset(['sausage']) conclusion: frozenset(['tropical fruit']) 0.148268398268 frequent item set: frozenset(['pork', 'other vegetables']) condition: frozenset(['pork']) conclusion: frozenset(['other vegetables']) 0.375661375661 condition: frozenset(['other vegetables']) conclusion: frozenset(['pork']) 0.111928533894 frequent item set: frozenset(['other vegetables', 'frankfurter']) condition: frozenset(['other vegetables']) conclusion: frozenset(['frankfurter']) 0.0851287440883 condition: frozenset(['frankfurter']) conclusion: frozenset(['other vegetables']) 0.279310344828 frequent item set: frozenset(['whole milk', 'whipped/sour cream']) condition: frozenset(['whole milk']) conclusion: frozenset(['whipped/sour cream']) 0.126144050935 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['whole milk']) 0.449645390071 frequent item set: frozenset(['other vegetables', 'napkins']) condition: frozenset(['other vegetables']) conclusion: frozenset(['napkins']) 0.0746190225959 condition: frozenset(['napkins']) conclusion: frozenset(['other vegetables']) 0.27572815534 frequent item set: frozenset(['whole milk', 'frozen vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['frozen vegetables']) 0.0799840827696 condition: frozenset(['frozen vegetables']) conclusion: frozenset(['whole milk']) 0.424947145877 frequent item set: frozenset(['shopping bags', 'bottled water']) condition: frozenset(['shopping bags']) conclusion: frozenset(['bottled water']) 0.111455108359 condition: frozenset(['bottled water']) conclusion: frozenset(['shopping bags']) 0.099356025759 frequent item set: frozenset(['brown bread', 'soda']) condition: frozenset(['brown bread']) conclusion: frozenset(['soda']) 0.194357366771 condition: frozenset(['soda']) conclusion: frozenset(['brown bread']) 0.0723032069971 frequent item set: frozenset(['yogurt', 'frankfurter']) condition: frozenset(['yogurt']) conclusion: frozenset(['frankfurter']) 0.0801749271137 condition: frozenset(['frankfurter']) conclusion: frozenset(['yogurt']) 0.189655172414 frequent item set: frozenset(['rolls/buns', 'soda']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['soda']) 0.208402432283 condition: frozenset(['soda']) conclusion: frozenset(['rolls/buns']) 0.219825072886 frequent item set: frozenset(['yogurt', 'frozen vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['frozen vegetables']) 0.0889212827988 condition: frozenset(['frozen vegetables']) conclusion: frozenset(['yogurt']) 0.257928118393 frequent item set: frozenset(['whole milk', 'dessert']) condition: frozenset(['whole milk']) conclusion: frozenset(['dessert']) 0.0537206526064 condition: frozenset(['dessert']) conclusion: frozenset(['whole milk']) 0.369863013699 frequent item set: frozenset(['whole milk', 'bottled beer']) condition: frozenset(['whole milk']) conclusion: frozenset(['bottled beer']) 0.0799840827696 condition: frozenset(['bottled beer']) conclusion: frozenset(['whole milk']) 0.253787878788 frequent item set: frozenset(['rolls/buns', 'pastry']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['pastry']) 0.113875069099 condition: frozenset(['pastry']) conclusion: frozenset(['rolls/buns']) 0.235428571429 frequent item set: frozenset(['margarine', 'rolls/buns']) condition: frozenset(['margarine']) conclusion: frozenset(['rolls/buns']) 0.251736111111 condition: frozenset(['rolls/buns']) conclusion: frozenset(['margarine']) 0.0801547816473 frequent item set: frozenset(['tropical fruit', 'domestic eggs']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['domestic eggs']) 0.108527131783 condition: frozenset(['domestic eggs']) conclusion: frozenset(['tropical fruit']) 0.179487179487 frequent item set: frozenset(['whole milk', 'curd']) condition: frozenset(['whole milk']) conclusion: frozenset(['curd']) 0.102268205332 condition: frozenset(['curd']) conclusion: frozenset(['whole milk']) 0.490458015267 frequent item set: frozenset(['sausage', 'pastry']) condition: frozenset(['sausage']) conclusion: frozenset(['pastry']) 0.133116883117 condition: frozenset(['pastry']) conclusion: frozenset(['sausage']) 0.140571428571 frequent item set: frozenset(['rolls/buns', 'shopping bags']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['shopping bags']) 0.106135986733 condition: frozenset(['shopping bags']) conclusion: frozenset(['rolls/buns']) 0.198142414861 frequent item set: frozenset(['other vegetables', 'root vegetables']) condition: frozenset(['other vegetables']) conclusion: frozenset(['root vegetables']) 0.244876510772 condition: frozenset(['root vegetables']) conclusion: frozenset(['other vegetables']) 0.434701492537 frequent item set: frozenset(['yogurt', 'curd']) condition: frozenset(['yogurt']) conclusion: frozenset(['curd']) 0.123906705539 condition: frozenset(['curd']) conclusion: frozenset(['yogurt']) 0.324427480916 frequent item set: frozenset(['whole milk', 'onions']) condition: frozenset(['whole milk']) conclusion: frozenset(['onions']) 0.0473537604457 condition: frozenset(['onions']) conclusion: frozenset(['whole milk']) 0.390163934426 frequent item set: frozenset(['whole milk', 'coffee']) condition: frozenset(['whole milk']) conclusion: frozenset(['coffee']) 0.0732192598488 condition: frozenset(['coffee']) conclusion: frozenset(['whole milk']) 0.322241681261 frequent item set: frozenset(['whole milk', 'hamburger meat']) condition: frozenset(['whole milk']) conclusion: frozenset(['hamburger meat']) 0.0576999602069 condition: frozenset(['hamburger meat']) conclusion: frozenset(['whole milk']) 0.443425076453 frequent item set: frozenset(['tropical fruit', 'whipped/sour cream']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['whipped/sour cream']) 0.131782945736 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['tropical fruit']) 0.192907801418 frequent item set: frozenset(['canned beer', 'rolls/buns']) condition: frozenset(['canned beer']) conclusion: frozenset(['rolls/buns']) 0.145287958115 condition: frozenset(['rolls/buns']) conclusion: frozenset(['canned beer']) 0.06135986733 frequent item set: frozenset(['root vegetables', 'soda']) condition: frozenset(['root vegetables']) conclusion: frozenset(['soda']) 0.170708955224 condition: frozenset(['soda']) conclusion: frozenset(['root vegetables']) 0.106705539359 frequent item set: frozenset(['whole milk', 'beef']) condition: frozenset(['whole milk']) conclusion: frozenset(['beef']) 0.08316752885 condition: frozenset(['beef']) conclusion: frozenset(['whole milk']) 0.40503875969 frequent item set: frozenset(['hamburger meat', 'other vegetables']) condition: frozenset(['hamburger meat']) conclusion: frozenset(['other vegetables']) 0.415902140673 condition: frozenset(['other vegetables']) conclusion: frozenset(['hamburger meat']) 0.0714661061482 frequent item set: frozenset(['coffee', 'other vegetables']) condition: frozenset(['coffee']) conclusion: frozenset(['other vegetables']) 0.231173380035 condition: frozenset(['other vegetables']) conclusion: frozenset(['coffee']) 0.0693641618497 frequent item set: frozenset(['white bread', 'soda']) condition: frozenset(['white bread']) conclusion: frozenset(['soda']) 0.243961352657 condition: frozenset(['soda']) conclusion: frozenset(['white bread']) 0.0588921282799 frequent item set: frozenset(['yogurt', 'beef']) condition: frozenset(['yogurt']) conclusion: frozenset(['beef']) 0.0838192419825 condition: frozenset(['beef']) conclusion: frozenset(['yogurt']) 0.222868217054 frequent item set: frozenset(['whole milk', 'butter milk']) condition: frozenset(['whole milk']) conclusion: frozenset(['butter milk']) 0.0453641066454 condition: frozenset(['butter milk']) conclusion: frozenset(['whole milk']) 0.414545454545 frequent item set: frozenset(['yogurt', 'margarine']) condition: frozenset(['yogurt']) conclusion: frozenset(['margarine']) 0.102040816327 condition: frozenset(['margarine']) conclusion: frozenset(['yogurt']) 0.243055555556 frequent item set: frozenset(['other vegetables', 'shopping bags']) condition: frozenset(['other vegetables']) conclusion: frozenset(['shopping bags']) 0.119810825013 condition: frozenset(['shopping bags']) conclusion: frozenset(['other vegetables']) 0.235294117647 frequent item set: frozenset(['whole milk', 'domestic eggs']) condition: frozenset(['whole milk']) conclusion: frozenset(['domestic eggs']) 0.117389574214 condition: frozenset(['domestic eggs']) conclusion: frozenset(['whole milk']) 0.472756410256 frequent item set: frozenset(['yogurt', 'pastry']) condition: frozenset(['yogurt']) conclusion: frozenset(['pastry']) 0.126822157434 condition: frozenset(['pastry']) conclusion: frozenset(['yogurt']) 0.198857142857 frequent item set: frozenset(['newspapers', 'soda']) condition: frozenset(['newspapers']) conclusion: frozenset(['soda']) 0.183439490446 condition: frozenset(['soda']) conclusion: frozenset(['newspapers']) 0.0839650145773 frequent item set: frozenset(['margarine', 'other vegetables']) condition: frozenset(['margarine']) conclusion: frozenset(['other vegetables']) 0.336805555556 condition: frozenset(['other vegetables']) conclusion: frozenset(['margarine']) 0.101944298476 frequent item set: frozenset(['tropical fruit', 'newspapers']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['newspapers']) 0.112403100775 condition: frozenset(['newspapers']) conclusion: frozenset(['tropical fruit']) 0.147770700637 frequent item set: frozenset(['other vegetables', 'pastry']) condition: frozenset(['other vegetables']) conclusion: frozenset(['pastry']) 0.116657908565 condition: frozenset(['pastry']) conclusion: frozenset(['other vegetables']) 0.253714285714 frequent item set: frozenset(['chicken', 'other vegetables']) condition: frozenset(['chicken']) conclusion: frozenset(['other vegetables']) 0.417061611374 condition: frozenset(['other vegetables']) conclusion: frozenset(['chicken']) 0.0924855491329 frequent item set: frozenset(['whole milk', 'waffles']) condition: frozenset(['whole milk']) conclusion: frozenset(['waffles']) 0.049741345006 condition: frozenset(['waffles']) conclusion: frozenset(['whole milk']) 0.330687830688 frequent item set: frozenset(['canned beer', 'shopping bags']) condition: frozenset(['canned beer']) conclusion: frozenset(['shopping bags']) 0.146596858639 condition: frozenset(['shopping bags']) conclusion: frozenset(['canned beer']) 0.115583075335 frequent item set: frozenset(['yogurt', 'root vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['root vegetables']) 0.185131195335 condition: frozenset(['root vegetables']) conclusion: frozenset(['yogurt']) 0.236940298507 frequent item set: frozenset(['margarine', 'soda']) condition: frozenset(['margarine']) conclusion: frozenset(['soda']) 0.173611111111 condition: frozenset(['soda']) conclusion: frozenset(['margarine']) 0.0583090379009 frequent item set: frozenset(['whole milk', 'oil']) condition: frozenset(['whole milk']) conclusion: frozenset(['oil']) 0.0441703143653 condition: frozenset(['oil']) conclusion: frozenset(['whole milk']) 0.402173913043 frequent item set: frozenset(['other vegetables', 'frozen vegetables']) condition: frozenset(['other vegetables']) conclusion: frozenset(['frozen vegetables']) 0.0919600630583 condition: frozenset(['frozen vegetables']) conclusion: frozenset(['other vegetables']) 0.369978858351 frequent item set: frozenset(['whole milk', 'napkins']) condition: frozenset(['whole milk']) conclusion: frozenset(['napkins']) 0.0771985674493 condition: frozenset(['napkins']) conclusion: frozenset(['whole milk']) 0.376699029126 frequent item set: frozenset(['sausage', 'soda']) condition: frozenset(['sausage']) conclusion: frozenset(['soda']) 0.258658008658 condition: frozenset(['soda']) conclusion: frozenset(['sausage']) 0.139358600583 frequent item set: frozenset(['whole milk', 'pork']) condition: frozenset(['whole milk']) conclusion: frozenset(['pork']) 0.0867489056904 condition: frozenset(['pork']) conclusion: frozenset(['whole milk']) 0.384479717813 frequent item set: frozenset(['citrus fruit', 'fruit/vegetable juice']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['fruit/vegetable juice']) 0.125307125307 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['citrus fruit']) 0.143459915612 frequent item set: frozenset(['tropical fruit', 'brown bread']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['brown bread']) 0.101744186047 condition: frozenset(['brown bread']) conclusion: frozenset(['tropical fruit']) 0.164576802508 frequent item set: frozenset(['whole milk', 'white bread']) condition: frozenset(['whole milk']) conclusion: frozenset(['white bread']) 0.066852367688 condition: frozenset(['white bread']) conclusion: frozenset(['whole milk']) 0.405797101449 frequent item set: frozenset(['whole milk', 'sausage']) condition: frozenset(['whole milk']) conclusion: frozenset(['sausage']) 0.116991643454 condition: frozenset(['sausage']) conclusion: frozenset(['whole milk']) 0.318181818182 frequent item set: frozenset(['pastry', 'soda']) condition: frozenset(['pastry']) conclusion: frozenset(['soda']) 0.236571428571 condition: frozenset(['soda']) conclusion: frozenset(['pastry']) 0.120699708455 frequent item set: frozenset(['domestic eggs', 'soda']) condition: frozenset(['domestic eggs']) conclusion: frozenset(['soda']) 0.195512820513 condition: frozenset(['soda']) conclusion: frozenset(['domestic eggs']) 0.0711370262391 frequent item set: frozenset(['other vegetables', 'fruit/vegetable juice']) condition: frozenset(['other vegetables']) conclusion: frozenset(['fruit/vegetable juice']) 0.108775617446 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['other vegetables']) 0.291139240506 frequent item set: frozenset(['sausage', 'bottled water']) condition: frozenset(['sausage']) conclusion: frozenset(['bottled water']) 0.127705627706 condition: frozenset(['bottled water']) conclusion: frozenset(['sausage']) 0.108555657774 frequent item set: frozenset(['whole milk', 'cream cheese']) condition: frozenset(['whole milk']) conclusion: frozenset(['cream cheese']) 0.0644647831277 condition: frozenset(['cream cheese']) conclusion: frozenset(['whole milk']) 0.415384615385 frequent item set: frozenset(['citrus fruit', 'other vegetables']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['other vegetables']) 0.348894348894 condition: frozenset(['other vegetables']) conclusion: frozenset(['citrus fruit']) 0.149238045192 frequent item set: frozenset(['shopping bags', 'soda']) condition: frozenset(['shopping bags']) conclusion: frozenset(['soda']) 0.249742002064 condition: frozenset(['soda']) conclusion: frozenset(['shopping bags']) 0.14110787172 frequent item set: frozenset(['tropical fruit', 'pip fruit']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['pip fruit']) 0.19476744186 condition: frozenset(['pip fruit']) conclusion: frozenset(['tropical fruit']) 0.270161290323 frequent item set: frozenset(['yogurt', 'fruit/vegetable juice']) condition: frozenset(['yogurt']) conclusion: frozenset(['fruit/vegetable juice']) 0.134110787172 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['yogurt']) 0.258790436006 frequent item set: frozenset(['soda', 'whipped/sour cream']) condition: frozenset(['soda']) conclusion: frozenset(['whipped/sour cream']) 0.066472303207 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['soda']) 0.16170212766 frequent item set: frozenset(['other vegetables', 'rolls/buns']) condition: frozenset(['other vegetables']) conclusion: frozenset(['rolls/buns']) 0.220178665265 condition: frozenset(['rolls/buns']) conclusion: frozenset(['other vegetables']) 0.231619679381 frequent item set: frozenset(['yogurt', 'sausage']) condition: frozenset(['yogurt']) conclusion: frozenset(['sausage']) 0.140670553936 condition: frozenset(['sausage']) conclusion: frozenset(['yogurt']) 0.208874458874 frequent item set: frozenset(['yogurt', 'berries']) condition: frozenset(['yogurt']) conclusion: frozenset(['berries']) 0.0758017492711 condition: frozenset(['berries']) conclusion: frozenset(['yogurt']) 0.318042813456 frequent item set: frozenset(['citrus fruit', 'bottled water']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['bottled water']) 0.163390663391 condition: frozenset(['bottled water']) conclusion: frozenset(['citrus fruit']) 0.122355105796 frequent item set: frozenset(['rolls/buns', 'whipped/sour cream']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['whipped/sour cream']) 0.0796019900498 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['rolls/buns']) 0.204255319149 frequent item set: frozenset(['whole milk', 'pastry']) condition: frozenset(['whole milk']) conclusion: frozenset(['pastry']) 0.130123358536 condition: frozenset(['pastry']) conclusion: frozenset(['whole milk']) 0.373714285714 frequent item set: frozenset(['yogurt', 'rolls/buns']) condition: frozenset(['yogurt']) conclusion: frozenset(['rolls/buns']) 0.246355685131 condition: frozenset(['rolls/buns']) conclusion: frozenset(['yogurt']) 0.186843559978 frequent item set: frozenset(['sausage', 'other vegetables']) condition: frozenset(['sausage']) conclusion: frozenset(['other vegetables']) 0.286796536797 condition: frozenset(['other vegetables']) conclusion: frozenset(['sausage']) 0.139253809774 frequent item set: frozenset(['long life bakery product', 'other vegetables']) condition: frozenset(['long life bakery product']) conclusion: frozenset(['other vegetables']) 0.285326086957 condition: frozenset(['other vegetables']) conclusion: frozenset(['long life bakery product']) 0.055176037835 frequent item set: frozenset(['tropical fruit', 'root vegetables']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['root vegetables']) 0.200581395349 condition: frozenset(['root vegetables']) conclusion: frozenset(['tropical fruit']) 0.193097014925 frequent item set: frozenset(['whole milk', 'brown bread']) condition: frozenset(['whole milk']) conclusion: frozenset(['brown bread']) 0.0986868284918 condition: frozenset(['brown bread']) conclusion: frozenset(['whole milk']) 0.388714733542 frequent item set: frozenset(['shopping bags', 'fruit/vegetable juice']) condition: frozenset(['shopping bags']) conclusion: frozenset(['fruit/vegetable juice']) 0.108359133127 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['shopping bags']) 0.147679324895 frequent item set: frozenset(['whole milk', 'tropical fruit']) condition: frozenset(['whole milk']) conclusion: frozenset(['tropical fruit']) 0.16553919618 condition: frozenset(['tropical fruit']) conclusion: frozenset(['whole milk']) 0.403100775194 frequent item set: frozenset(['whole milk', 'hygiene articles']) condition: frozenset(['whole milk']) conclusion: frozenset(['hygiene articles']) 0.050139275766 condition: frozenset(['hygiene articles']) conclusion: frozenset(['whole milk']) 0.388888888889 frequent item set: frozenset(['sausage', 'shopping bags']) condition: frozenset(['sausage']) conclusion: frozenset(['shopping bags']) 0.166666666667 condition: frozenset(['shopping bags']) conclusion: frozenset(['sausage']) 0.158926728586 frequent item set: frozenset(['yogurt', 'cream cheese']) condition: frozenset(['yogurt']) conclusion: frozenset(['cream cheese']) 0.0889212827988 condition: frozenset(['cream cheese']) conclusion: frozenset(['yogurt']) 0.312820512821 frequent item set: frozenset(['butter', 'rolls/buns']) condition: frozenset(['butter']) conclusion: frozenset(['rolls/buns']) 0.242201834862 condition: frozenset(['rolls/buns']) conclusion: frozenset(['butter']) 0.0729684908789 frequent item set: frozenset(['soda', 'fruit/vegetable juice']) condition: frozenset(['soda']) conclusion: frozenset(['fruit/vegetable juice']) 0.105539358601 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['soda']) 0.254571026723 frequent item set: frozenset(['whole milk', 'chocolate']) condition: frozenset(['whole milk']) conclusion: frozenset(['chocolate']) 0.0652606446478 condition: frozenset(['chocolate']) conclusion: frozenset(['whole milk']) 0.33606557377 frequent item set: frozenset(['bottled water', 'root vegetables']) condition: frozenset(['bottled water']) conclusion: frozenset(['root vegetables']) 0.141674333027 condition: frozenset(['root vegetables']) conclusion: frozenset(['bottled water']) 0.143656716418 frequent item set: frozenset(['citrus fruit', 'sausage']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['sausage']) 0.136363636364 condition: frozenset(['sausage']) conclusion: frozenset(['citrus fruit']) 0.12012987013 frequent item set: frozenset(['whole milk', 'chicken']) condition: frozenset(['whole milk']) conclusion: frozenset(['chicken']) 0.0688420214883 condition: frozenset(['chicken']) conclusion: frozenset(['whole milk']) 0.409952606635 frequent item set: frozenset(['cream cheese', 'other vegetables']) condition: frozenset(['cream cheese']) conclusion: frozenset(['other vegetables']) 0.346153846154 condition: frozenset(['other vegetables']) conclusion: frozenset(['cream cheese']) 0.0709406200736 frequent item set: frozenset(['root vegetables', 'whipped/sour cream']) condition: frozenset(['root vegetables']) conclusion: frozenset(['whipped/sour cream']) 0.15671641791 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['root vegetables']) 0.23829787234 frequent item set: frozenset(['other vegetables', 'brown bread']) condition: frozenset(['other vegetables']) conclusion: frozenset(['brown bread']) 0.0966894377299 condition: frozenset(['brown bread']) conclusion: frozenset(['other vegetables']) 0.288401253918 frequent item set: frozenset(['sausage', 'rolls/buns']) condition: frozenset(['sausage']) conclusion: frozenset(['rolls/buns']) 0.325757575758 condition: frozenset(['rolls/buns']) conclusion: frozenset(['sausage']) 0.166390270868 frequent item set: frozenset(['yogurt', 'other vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['other vegetables']) 0.311224489796 condition: frozenset(['other vegetables']) conclusion: frozenset(['yogurt']) 0.224382553862 frequent item set: frozenset(['sausage', 'brown bread']) condition: frozenset(['sausage']) conclusion: frozenset(['brown bread']) 0.113636363636 condition: frozenset(['brown bread']) conclusion: frozenset(['sausage']) 0.164576802508 frequent item set: frozenset(['other vegetables', 'whipped/sour cream']) condition: frozenset(['other vegetables']) conclusion: frozenset(['whipped/sour cream']) 0.149238045192 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['other vegetables']) 0.402836879433 frequent item set: frozenset(['whole milk', 'root vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['root vegetables']) 0.191404695583 condition: frozenset(['root vegetables']) conclusion: frozenset(['whole milk']) 0.448694029851 frequent item set: frozenset(['salty snack', 'other vegetables']) condition: frozenset(['salty snack']) conclusion: frozenset(['other vegetables']) 0.284946236559 condition: frozenset(['other vegetables']) conclusion: frozenset(['salty snack']) 0.0557015239096 frequent item set: frozenset(['whole milk', 'pip fruit']) condition: frozenset(['whole milk']) conclusion: frozenset(['pip fruit']) 0.117787504974 condition: frozenset(['pip fruit']) conclusion: frozenset(['whole milk']) 0.397849462366 frequent item set: frozenset(['frozen vegetables', 'root vegetables']) condition: frozenset(['frozen vegetables']) conclusion: frozenset(['root vegetables']) 0.241014799154 condition: frozenset(['root vegetables']) conclusion: frozenset(['frozen vegetables']) 0.106343283582 frequent item set: frozenset(['butter', 'whipped/sour cream']) condition: frozenset(['butter']) conclusion: frozenset(['whipped/sour cream']) 0.183486238532 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['butter']) 0.141843971631 frequent item set: frozenset(['rolls/buns', 'domestic eggs']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['domestic eggs']) 0.0851299060254 condition: frozenset(['domestic eggs']) conclusion: frozenset(['rolls/buns']) 0.246794871795 frequent item set: frozenset(['pip fruit', 'citrus fruit']) condition: frozenset(['pip fruit']) conclusion: frozenset(['citrus fruit']) 0.182795698925 condition: frozenset(['citrus fruit']) conclusion: frozenset(['pip fruit']) 0.167076167076 frequent item set: frozenset(['tropical fruit', 'shopping bags']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['shopping bags']) 0.128875968992 condition: frozenset(['shopping bags']) conclusion: frozenset(['tropical fruit']) 0.137254901961 frequent item set: frozenset(['soda', 'chocolate']) condition: frozenset(['soda']) conclusion: frozenset(['chocolate']) 0.0775510204082 condition: frozenset(['chocolate']) conclusion: frozenset(['soda']) 0.272540983607 frequent item set: frozenset(['newspapers', 'root vegetables']) condition: frozenset(['newspapers']) conclusion: frozenset(['root vegetables']) 0.143949044586 condition: frozenset(['root vegetables']) conclusion: frozenset(['newspapers']) 0.105410447761 frequent item set: frozenset(['butter', 'root vegetables']) condition: frozenset(['butter']) conclusion: frozenset(['root vegetables']) 0.233027522936 condition: frozenset(['root vegetables']) conclusion: frozenset(['butter']) 0.118470149254 frequent item set: frozenset(['other vegetables', 'bottled beer']) condition: frozenset(['other vegetables']) conclusion: frozenset(['bottled beer']) 0.0835522858644 condition: frozenset(['bottled beer']) conclusion: frozenset(['other vegetables']) 0.200757575758 frequent item set: frozenset(['rolls/buns', 'bottled water']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['bottled water']) 0.131564400221 condition: frozenset(['bottled water']) conclusion: frozenset(['rolls/buns']) 0.21895124195 frequent item set: frozenset(['other vegetables', 'sugar']) condition: frozenset(['other vegetables']) conclusion: frozenset(['sugar']) 0.0557015239096 condition: frozenset(['sugar']) conclusion: frozenset(['other vegetables']) 0.318318318318 frequent item set: frozenset(['whole milk', 'sliced cheese']) condition: frozenset(['whole milk']) conclusion: frozenset(['sliced cheese']) 0.0421806605651 condition: frozenset(['sliced cheese']) conclusion: frozenset(['whole milk']) 0.439834024896 frequent item set: frozenset(['frozen vegetables', 'rolls/buns']) condition: frozenset(['frozen vegetables']) conclusion: frozenset(['rolls/buns']) 0.211416490486 condition: frozenset(['rolls/buns']) conclusion: frozenset(['frozen vegetables']) 0.0552791597568 frequent item set: frozenset(['pork', 'soda']) condition: frozenset(['pork']) conclusion: frozenset(['soda']) 0.206349206349 condition: frozenset(['soda']) conclusion: frozenset(['pork']) 0.068221574344 frequent item set: frozenset(['other vegetables', 'berries']) condition: frozenset(['other vegetables']) conclusion: frozenset(['berries']) 0.0530740935365 condition: frozenset(['berries']) conclusion: frozenset(['other vegetables']) 0.308868501529 frequent item set: frozenset(['pip fruit', 'root vegetables']) condition: frozenset(['pip fruit']) conclusion: frozenset(['root vegetables']) 0.20564516129 condition: frozenset(['root vegetables']) conclusion: frozenset(['pip fruit']) 0.142723880597 frequent item set: frozenset(['yogurt', 'domestic eggs']) condition: frozenset(['yogurt']) conclusion: frozenset(['domestic eggs']) 0.1027696793 condition: frozenset(['domestic eggs']) conclusion: frozenset(['yogurt']) 0.225961538462 frequent item set: frozenset(['whole milk', 'frankfurter']) condition: frozenset(['whole milk']) conclusion: frozenset(['frankfurter']) 0.0803820135296 condition: frozenset(['frankfurter']) conclusion: frozenset(['whole milk']) 0.348275862069 frequent item set: frozenset(['pip fruit', 'pastry']) condition: frozenset(['pip fruit']) conclusion: frozenset(['pastry']) 0.141129032258 condition: frozenset(['pastry']) conclusion: frozenset(['pip fruit']) 0.12 frequent item set: frozenset(['margarine', 'root vegetables']) condition: frozenset(['margarine']) conclusion: frozenset(['root vegetables']) 0.189236111111 condition: frozenset(['root vegetables']) conclusion: frozenset(['margarine']) 0.101679104478 frequent item set: frozenset(['tropical fruit', 'citrus fruit']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['citrus fruit']) 0.18992248062 condition: frozenset(['citrus fruit']) conclusion: frozenset(['tropical fruit']) 0.240786240786 frequent item set: frozenset(['other vegetables', 'chocolate']) condition: frozenset(['other vegetables']) conclusion: frozenset(['chocolate']) 0.0656857593274 condition: frozenset(['chocolate']) conclusion: frozenset(['other vegetables']) 0.256147540984 frequent item set: frozenset(['pastry', 'root vegetables']) condition: frozenset(['pastry']) conclusion: frozenset(['root vegetables']) 0.123428571429 condition: frozenset(['root vegetables']) conclusion: frozenset(['pastry']) 0.100746268657 frequent item set: frozenset(['tropical fruit', 'fruit/vegetable juice']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['fruit/vegetable juice']) 0.130813953488 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['tropical fruit']) 0.189873417722 frequent item set: frozenset(['chicken', 'root vegetables']) condition: frozenset(['chicken']) conclusion: frozenset(['root vegetables']) 0.25355450237 condition: frozenset(['root vegetables']) conclusion: frozenset(['chicken']) 0.0998134328358 frequent item set: frozenset(['shopping bags', 'root vegetables']) condition: frozenset(['shopping bags']) conclusion: frozenset(['root vegetables']) 0.130030959752 condition: frozenset(['root vegetables']) conclusion: frozenset(['shopping bags']) 0.117537313433 frequent item set: frozenset(['whole milk', 'rolls/buns']) condition: frozenset(['whole milk']) conclusion: frozenset(['rolls/buns']) 0.221647433347 condition: frozenset(['rolls/buns']) conclusion: frozenset(['whole milk']) 0.307904919845 frequent item set: frozenset(['coffee', 'rolls/buns']) condition: frozenset(['coffee']) conclusion: frozenset(['rolls/buns']) 0.189141856392 condition: frozenset(['rolls/buns']) conclusion: frozenset(['coffee']) 0.0597014925373 frequent item set: frozenset(['root vegetables', 'frankfurter']) condition: frozenset(['root vegetables']) conclusion: frozenset(['frankfurter']) 0.0932835820896 condition: frozenset(['frankfurter']) conclusion: frozenset(['root vegetables']) 0.172413793103 frequent item set: frozenset(['shopping bags', 'pastry']) condition: frozenset(['shopping bags']) conclusion: frozenset(['pastry']) 0.120743034056 condition: frozenset(['pastry']) conclusion: frozenset(['shopping bags']) 0.133714285714 frequent item set: frozenset(['margarine', 'bottled water']) condition: frozenset(['margarine']) conclusion: frozenset(['bottled water']) 0.175347222222 condition: frozenset(['bottled water']) conclusion: frozenset(['margarine']) 0.0929162833487 frequent item set: frozenset(['yogurt', 'napkins']) condition: frozenset(['yogurt']) conclusion: frozenset(['napkins']) 0.0881924198251 condition: frozenset(['napkins']) conclusion: frozenset(['yogurt']) 0.234951456311 frequent item set: frozenset(['newspapers', 'rolls/buns']) condition: frozenset(['newspapers']) conclusion: frozenset(['rolls/buns']) 0.247133757962 condition: frozenset(['rolls/buns']) conclusion: frozenset(['newspapers']) 0.107241569928 frequent item set: frozenset(['citrus fruit', 'domestic eggs']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['domestic eggs']) 0.125307125307 condition: frozenset(['domestic eggs']) conclusion: frozenset(['citrus fruit']) 0.163461538462 frequent item set: frozenset(['whole milk', 'newspapers']) condition: frozenset(['whole milk']) conclusion: frozenset(['newspapers']) 0.107043374453 condition: frozenset(['newspapers']) conclusion: frozenset(['whole milk']) 0.342675159236 frequent item set: frozenset(['tropical fruit', 'pastry']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['pastry']) 0.125968992248 condition: frozenset(['pastry']) conclusion: frozenset(['tropical fruit']) 0.148571428571 frequent item set: frozenset(['rolls/buns', 'frankfurter']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['frankfurter']) 0.10447761194 condition: frozenset(['frankfurter']) conclusion: frozenset(['rolls/buns']) 0.325862068966 frequent item set: frozenset(['curd', 'whipped/sour cream']) condition: frozenset(['curd']) conclusion: frozenset(['whipped/sour cream']) 0.196564885496 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['curd']) 0.14609929078 frequent item set: frozenset(['other vegetables', 'curd']) condition: frozenset(['other vegetables']) conclusion: frozenset(['curd']) 0.0888071466106 condition: frozenset(['curd']) conclusion: frozenset(['other vegetables']) 0.322519083969 frequent item set: frozenset(['whole milk', 'fruit/vegetable juice']) condition: frozenset(['whole milk']) conclusion: frozenset(['fruit/vegetable juice']) 0.104257859133 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['whole milk']) 0.368495077356 frequent item set: frozenset(['rolls/buns', 'chocolate']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['chocolate']) 0.0641238253179 condition: frozenset(['chocolate']) conclusion: frozenset(['rolls/buns']) 0.237704918033 frequent item set: frozenset(['bottled water', 'soda']) condition: frozenset(['bottled water']) conclusion: frozenset(['soda']) 0.26218951242 condition: frozenset(['soda']) conclusion: frozenset(['bottled water']) 0.166180758017 frequent item set: frozenset(['root vegetables', 'fruit/vegetable juice']) condition: frozenset(['root vegetables']) conclusion: frozenset(['fruit/vegetable juice']) 0.110074626866 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['root vegetables']) 0.165963431786 frequent item set: frozenset(['curd', 'root vegetables']) condition: frozenset(['curd']) conclusion: frozenset(['root vegetables']) 0.204198473282 condition: frozenset(['root vegetables']) conclusion: frozenset(['curd']) 0.0998134328358 frequent item set: frozenset(['tropical fruit', 'bottled water']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['bottled water']) 0.176356589147 condition: frozenset(['bottled water']) conclusion: frozenset(['tropical fruit']) 0.167433302668 frequent item set: frozenset(['bottled water', 'bottled beer']) condition: frozenset(['bottled water']) conclusion: frozenset(['bottled beer']) 0.142594296228 condition: frozenset(['bottled beer']) conclusion: frozenset(['bottled water']) 0.195707070707 frequent item set: frozenset(['whole milk', 'berries']) condition: frozenset(['whole milk']) conclusion: frozenset(['berries']) 0.0461599681655 condition: frozenset(['berries']) conclusion: frozenset(['whole milk']) 0.354740061162 frequent item set: frozenset(['other vegetables', 'soda']) condition: frozenset(['other vegetables']) conclusion: frozenset(['soda']) 0.169206516027 condition: frozenset(['soda']) conclusion: frozenset(['other vegetables']) 0.187755102041 frequent item set: frozenset(['whole milk', 'bottled water']) condition: frozenset(['whole milk']) conclusion: frozenset(['bottled water']) 0.134500596896 condition: frozenset(['bottled water']) conclusion: frozenset(['whole milk']) 0.310947562098 frequent item set: frozenset(['rolls/buns', 'napkins']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['napkins']) 0.0635710337203 condition: frozenset(['napkins']) conclusion: frozenset(['rolls/buns']) 0.223300970874 frequent item set: frozenset(['whole milk', 'long life bakery product']) condition: frozenset(['whole milk']) conclusion: frozenset(['long life bakery product']) 0.0529247910864 condition: frozenset(['long life bakery product']) conclusion: frozenset(['whole milk']) 0.361413043478 frequent item set: frozenset(['brown bread', 'root vegetables']) condition: frozenset(['brown bread']) conclusion: frozenset(['root vegetables']) 0.156739811912 condition: frozenset(['root vegetables']) conclusion: frozenset(['brown bread']) 0.0932835820896 frequent item set: frozenset(['yogurt', 'soda']) condition: frozenset(['yogurt']) conclusion: frozenset(['soda']) 0.196064139942 condition: frozenset(['soda']) conclusion: frozenset(['yogurt']) 0.156851311953 frequent item set: frozenset(['rolls/buns', 'root vegetables']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['root vegetables']) 0.132117191819 condition: frozenset(['root vegetables']) conclusion: frozenset(['rolls/buns']) 0.222947761194 frequent item set: frozenset(['pork', 'rolls/buns']) condition: frozenset(['pork']) conclusion: frozenset(['rolls/buns']) 0.195767195767 condition: frozenset(['rolls/buns']) conclusion: frozenset(['pork']) 0.06135986733 frequent item set: frozenset(['soda', 'frankfurter']) condition: frozenset(['soda']) conclusion: frozenset(['frankfurter']) 0.06472303207 condition: frozenset(['frankfurter']) conclusion: frozenset(['soda']) 0.191379310345 frequent item set: frozenset(['yogurt', 'tropical fruit']) condition: frozenset(['yogurt']) conclusion: frozenset(['tropical fruit']) 0.209912536443 condition: frozenset(['tropical fruit']) conclusion: frozenset(['yogurt']) 0.279069767442 frequent item set: frozenset(['citrus fruit', 'root vegetables']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['root vegetables']) 0.213759213759 condition: frozenset(['root vegetables']) conclusion: frozenset(['citrus fruit']) 0.162313432836 frequent item set: frozenset(['whole milk', 'soda']) condition: frozenset(['whole milk']) conclusion: frozenset(['soda']) 0.156784719459 condition: frozenset(['soda']) conclusion: frozenset(['whole milk']) 0.229737609329 frequent item set: frozenset(['beef', 'root vegetables']) condition: frozenset(['beef']) conclusion: frozenset(['root vegetables']) 0.331395348837 condition: frozenset(['root vegetables']) conclusion: frozenset(['beef']) 0.159514925373 frequent item set: frozenset(['bottled water', 'fruit/vegetable juice']) condition: frozenset(['bottled water']) conclusion: frozenset(['fruit/vegetable juice']) 0.128794848206 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['bottled water']) 0.196905766526 frequent item set: frozenset(['rolls/buns', 'bottled beer']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['bottled beer']) 0.0740740740741 condition: frozenset(['bottled beer']) conclusion: frozenset(['rolls/buns']) 0.169191919192 frequent item set: frozenset(['other vegetables', 'bottled water']) condition: frozenset(['other vegetables']) conclusion: frozenset(['bottled water']) 0.128218602207 condition: frozenset(['bottled water']) conclusion: frozenset(['other vegetables']) 0.224471021159 frequent item set: frozenset(['pip fruit', 'soda']) condition: frozenset(['pip fruit']) conclusion: frozenset(['soda']) 0.176075268817 condition: frozenset(['soda']) conclusion: frozenset(['pip fruit']) 0.0763848396501 frequent item set: frozenset(['whole milk', 'margarine']) condition: frozenset(['whole milk']) conclusion: frozenset(['margarine']) 0.0947075208914 condition: frozenset(['margarine']) conclusion: frozenset(['whole milk']) 0.413194444444 frequent item set: frozenset(['citrus fruit', 'soda']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['soda']) 0.154791154791 condition: frozenset(['soda']) conclusion: frozenset(['citrus fruit']) 0.0734693877551 frequent item set: frozenset(['yogurt', 'bottled water']) condition: frozenset(['yogurt']) conclusion: frozenset(['bottled water']) 0.16472303207 condition: frozenset(['bottled water']) conclusion: frozenset(['yogurt']) 0.207911683533 frequent item set: frozenset(['newspapers', 'bottled water']) condition: frozenset(['newspapers']) conclusion: frozenset(['bottled water']) 0.141401273885 condition: frozenset(['bottled water']) conclusion: frozenset(['newspapers']) 0.102115915363 frequent item set: frozenset(['other vegetables', 'domestic eggs']) condition: frozenset(['other vegetables']) conclusion: frozenset(['domestic eggs']) 0.115081450342 condition: frozenset(['domestic eggs']) conclusion: frozenset(['other vegetables']) 0.350961538462 frequent item set: frozenset(['other vegetables', 'newspapers']) condition: frozenset(['other vegetables']) conclusion: frozenset(['newspapers']) 0.0998423541776 condition: frozenset(['newspapers']) conclusion: frozenset(['other vegetables']) 0.242038216561 frequent item set: frozenset(['pip fruit', 'bottled water']) condition: frozenset(['pip fruit']) conclusion: frozenset(['bottled water']) 0.139784946237 condition: frozenset(['bottled water']) conclusion: frozenset(['pip fruit']) 0.0956761729531 frequent item set: frozenset(['whole milk', 'citrus fruit']) condition: frozenset(['whole milk']) conclusion: frozenset(['citrus fruit']) 0.119379228014 condition: frozenset(['citrus fruit']) conclusion: frozenset(['whole milk']) 0.36855036855 frequent item set: frozenset(['whole milk', 'shopping bags']) condition: frozenset(['whole milk']) conclusion: frozenset(['shopping bags']) 0.0959013131715 condition: frozenset(['shopping bags']) conclusion: frozenset(['whole milk']) 0.24871001032 frequent item set: frozenset(['whole milk', 'other vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables']) 0.292877039395 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk']) 0.38675775092 frequent item set: frozenset(['yogurt', 'whole milk']) condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk']) 0.401603498542 condition: frozenset(['whole milk']) conclusion: frozenset(['yogurt']) 0.219259848786 frequent item set: frozenset(['rolls/buns', 'beef']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['beef']) 0.0740740740741 condition: frozenset(['beef']) conclusion: frozenset(['rolls/buns']) 0.259689922481 frequent item set: frozenset(['pip fruit', 'other vegetables']) condition: frozenset(['pip fruit']) conclusion: frozenset(['other vegetables']) 0.345430107527 condition: frozenset(['other vegetables']) conclusion: frozenset(['pip fruit']) 0.135049921177 frequent item set: frozenset(['rolls/buns', 'brown bread']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['brown bread']) 0.0685461580984 condition: frozenset(['brown bread']) conclusion: frozenset(['rolls/buns']) 0.194357366771 frequent item set: frozenset(['tropical fruit', 'rolls/buns']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['rolls/buns']) 0.234496124031 condition: frozenset(['rolls/buns']) conclusion: frozenset(['tropical fruit']) 0.133775566611 frequent item set: frozenset(['pork', 'root vegetables']) condition: frozenset(['pork']) conclusion: frozenset(['root vegetables']) 0.236331569665 condition: frozenset(['root vegetables']) conclusion: frozenset(['pork']) 0.125 frequent item set: frozenset(['other vegetables', 'butter milk']) condition: frozenset(['other vegetables']) conclusion: frozenset(['butter milk']) 0.0535995796111 condition: frozenset(['butter milk']) conclusion: frozenset(['other vegetables']) 0.370909090909 frequent item set: frozenset(['yogurt', 'citrus fruit']) condition: frozenset(['yogurt']) conclusion: frozenset(['citrus fruit']) 0.155247813411 condition: frozenset(['citrus fruit']) conclusion: frozenset(['yogurt']) 0.261670761671 frequent item set: frozenset(['tropical fruit', 'soda']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['soda']) 0.198643410853 condition: frozenset(['soda']) conclusion: frozenset(['tropical fruit']) 0.119533527697 frequent item set: frozenset(['butter', 'other vegetables']) condition: frozenset(['butter']) conclusion: frozenset(['other vegetables']) 0.361467889908 condition: frozenset(['other vegetables']) conclusion: frozenset(['butter']) 0.1035207567 frequent item set: frozenset(['whole milk', 'butter']) condition: frozenset(['whole milk']) conclusion: frozenset(['butter']) 0.107839235973 condition: frozenset(['butter']) conclusion: frozenset(['whole milk']) 0.497247706422 frequent item set: frozenset(['whole milk', 'ham']) condition: frozenset(['whole milk']) conclusion: frozenset(['ham']) 0.0449661758854 condition: frozenset(['ham']) conclusion: frozenset(['whole milk']) 0.44140625 frequent item set: frozenset(['yogurt', 'newspapers']) condition: frozenset(['yogurt']) conclusion: frozenset(['newspapers']) 0.110058309038 condition: frozenset(['newspapers']) conclusion: frozenset(['yogurt']) 0.192356687898 frequent item set: frozenset(['yogurt', 'butter']) condition: frozenset(['yogurt']) conclusion: frozenset(['butter']) 0.104956268222 condition: frozenset(['butter']) conclusion: frozenset(['yogurt']) 0.264220183486 frequent item set: frozenset(['dessert', 'other vegetables']) condition: frozenset(['dessert']) conclusion: frozenset(['other vegetables']) 0.312328767123 condition: frozenset(['other vegetables']) conclusion: frozenset(['dessert']) 0.0599054125066 frequent item set: frozenset(['tropical fruit', 'other vegetables']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['other vegetables']) 0.342054263566 condition: frozenset(['other vegetables']) conclusion: frozenset(['tropical fruit']) 0.185496584341 frequent item set: frozenset(['napkins', 'soda']) condition: frozenset(['napkins']) conclusion: frozenset(['soda']) 0.229126213592 condition: frozenset(['soda']) conclusion: frozenset(['napkins']) 0.068804664723 frequent item set: frozenset(['sausage', 'root vegetables']) condition: frozenset(['sausage']) conclusion: frozenset(['root vegetables']) 0.159090909091 condition: frozenset(['root vegetables']) conclusion: frozenset(['sausage']) 0.137126865672 frequent item set: frozenset(['other vegetables', 'beef']) condition: frozenset(['other vegetables']) conclusion: frozenset(['beef']) 0.101944298476 condition: frozenset(['beef']) conclusion: frozenset(['other vegetables']) 0.375968992248 frequent item set: frozenset(['yogurt', 'brown bread']) condition: frozenset(['yogurt']) conclusion: frozenset(['brown bread']) 0.104227405248 condition: frozenset(['brown bread']) conclusion: frozenset(['yogurt']) 0.224137931034 frequent item set: frozenset(['pip fruit', 'sausage']) condition: frozenset(['pip fruit']) conclusion: frozenset(['sausage']) 0.14247311828 condition: frozenset(['sausage']) conclusion: frozenset(['pip fruit']) 0.114718614719 frequent item set: frozenset(['citrus fruit', 'whipped/sour cream']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['whipped/sour cream']) 0.13144963145 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['citrus fruit']) 0.151773049645 frequent item set: frozenset(['canned beer', 'soda']) condition: frozenset(['canned beer']) conclusion: frozenset(['soda']) 0.178010471204 condition: frozenset(['soda']) conclusion: frozenset(['canned beer']) 0.0793002915452 frequent item set: frozenset(['pip fruit', 'rolls/buns']) condition: frozenset(['pip fruit']) conclusion: frozenset(['rolls/buns']) 0.184139784946 condition: frozenset(['rolls/buns']) conclusion: frozenset(['pip fruit']) 0.0757324488668 frequent item set: frozenset(['other vegetables', 'onions']) condition: frozenset(['other vegetables']) conclusion: frozenset(['onions']) 0.0735680504467 condition: frozenset(['onions']) conclusion: frozenset(['other vegetables']) 0.459016393443 frequent item set: frozenset(['whole milk', 'sugar']) condition: frozenset(['whole milk']) conclusion: frozenset(['sugar']) 0.0588937524871 condition: frozenset(['sugar']) conclusion: frozenset(['whole milk']) 0.444444444444 frequent item set: frozenset(['bottled beer', 'soda']) condition: frozenset(['bottled beer']) conclusion: frozenset(['soda']) 0.210858585859 condition: frozenset(['soda']) conclusion: frozenset(['bottled beer']) 0.0973760932945 frequent item set: frozenset(['yogurt', 'pip fruit']) condition: frozenset(['yogurt']) conclusion: frozenset(['pip fruit']) 0.129008746356 condition: frozenset(['pip fruit']) conclusion: frozenset(['yogurt']) 0.237903225806 frequent item set: frozenset(['root vegetables', 'domestic eggs']) condition: frozenset(['root vegetables']) conclusion: frozenset(['domestic eggs']) 0.131529850746 condition: frozenset(['domestic eggs']) conclusion: frozenset(['root vegetables']) 0.225961538462 frequent item set: frozenset(['citrus fruit', 'rolls/buns']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['rolls/buns']) 0.202702702703 condition: frozenset(['rolls/buns']) conclusion: frozenset(['citrus fruit']) 0.0912106135987 frequent item set: frozenset(['rolls/buns', 'fruit/vegetable juice']) condition: frozenset(['rolls/buns']) conclusion: frozenset(['fruit/vegetable juice']) 0.0790491984522 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['rolls/buns']) 0.201125175809 frequent item set: frozenset(['tropical fruit', 'curd']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['curd']) 0.0978682170543 condition: frozenset(['curd']) conclusion: frozenset(['tropical fruit']) 0.192748091603 frequent item set: frozenset(['yogurt', 'shopping bags']) condition: frozenset(['yogurt']) conclusion: frozenset(['shopping bags']) 0.109329446064 condition: frozenset(['shopping bags']) conclusion: frozenset(['yogurt']) 0.15479876161 frequent item set: frozenset(['white bread', 'other vegetables']) condition: frozenset(['white bread']) conclusion: frozenset(['other vegetables']) 0.326086956522 condition: frozenset(['other vegetables']) conclusion: frozenset(['white bread']) 0.0709406200736 frequent item set: frozenset(['whole milk', 'salty snack']) condition: frozenset(['whole milk']) conclusion: frozenset(['salty snack']) 0.0437723836053 condition: frozenset(['salty snack']) conclusion: frozenset(['whole milk']) 0.295698924731 frequent item set: frozenset(['yogurt', 'whole milk', 'root vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'root vegetables']) 0.104227405248 condition: frozenset(['whole milk']) conclusion: frozenset(['yogurt', 'root vegetables']) 0.0569040986868 condition: frozenset(['root vegetables']) conclusion: frozenset(['yogurt', 'whole milk']) 0.133395522388 condition: frozenset(['yogurt', 'whole milk']) conclusion: frozenset(['root vegetables']) 0.259528130672 condition: frozenset(['yogurt', 'root vegetables']) conclusion: frozenset(['whole milk']) 0.562992125984 condition: frozenset(['whole milk', 'root vegetables']) conclusion: frozenset(['yogurt']) 0.297297297297 frequent item set: frozenset(['yogurt', 'other vegetables', 'whipped/sour cream']) condition: frozenset(['yogurt']) conclusion: frozenset(['other vegetables', 'whipped/sour cream']) 0.0728862973761 condition: frozenset(['other vegetables']) conclusion: frozenset(['yogurt', 'whipped/sour cream']) 0.0525486074619 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['yogurt', 'other vegetables']) 0.141843971631 condition: frozenset(['yogurt', 'other vegetables']) conclusion: frozenset(['whipped/sour cream']) 0.234192037471 condition: frozenset(['yogurt', 'whipped/sour cream']) conclusion: frozenset(['other vegetables']) 0.490196078431 condition: frozenset(['other vegetables', 'whipped/sour cream']) conclusion: frozenset(['yogurt']) 0.352112676056 frequent item set: frozenset(['whole milk', 'tropical fruit', 'rolls/buns']) condition: frozenset(['whole milk']) conclusion: frozenset(['tropical fruit', 'rolls/buns']) 0.0429765220852 condition: frozenset(['tropical fruit']) conclusion: frozenset(['whole milk', 'rolls/buns']) 0.104651162791 condition: frozenset(['rolls/buns']) conclusion: frozenset(['whole milk', 'tropical fruit']) 0.0597014925373 condition: frozenset(['whole milk', 'tropical fruit']) conclusion: frozenset(['rolls/buns']) 0.259615384615 condition: frozenset(['whole milk', 'rolls/buns']) conclusion: frozenset(['tropical fruit']) 0.193895870736 condition: frozenset(['tropical fruit', 'rolls/buns']) conclusion: frozenset(['whole milk']) 0.446280991736 frequent item set: frozenset(['whole milk', 'other vegetables', 'soda']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'soda']) 0.0545165141265 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'soda']) 0.0719915922228 condition: frozenset(['soda']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.0798833819242 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['soda']) 0.186141304348 condition: frozenset(['whole milk', 'soda']) conclusion: frozenset(['other vegetables']) 0.347715736041 condition: frozenset(['other vegetables', 'soda']) conclusion: frozenset(['whole milk']) 0.425465838509 frequent item set: frozenset(['whole milk', 'other vegetables', 'bottled water']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'bottled water']) 0.0421806605651 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'bottled water']) 0.0557015239096 condition: frozenset(['bottled water']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.097516099356 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['bottled water']) 0.14402173913 condition: frozenset(['whole milk', 'bottled water']) conclusion: frozenset(['other vegetables']) 0.313609467456 condition: frozenset(['other vegetables', 'bottled water']) conclusion: frozenset(['whole milk']) 0.434426229508 frequent item set: frozenset(['whole milk', 'other vegetables', 'fruit/vegetable juice']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'fruit/vegetable juice']) 0.0409868682849 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'fruit/vegetable juice']) 0.0541250656858 condition: frozenset(['fruit/vegetable juice']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.144866385373 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['fruit/vegetable juice']) 0.139945652174 condition: frozenset(['whole milk', 'fruit/vegetable juice']) conclusion: frozenset(['other vegetables']) 0.393129770992 condition: frozenset(['other vegetables', 'fruit/vegetable juice']) conclusion: frozenset(['whole milk']) 0.497584541063 frequent item set: frozenset(['whole milk', 'sausage', 'other vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['sausage', 'other vegetables']) 0.0397930760048 condition: frozenset(['sausage']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.108225108225 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'sausage']) 0.0525486074619 condition: frozenset(['whole milk', 'sausage']) conclusion: frozenset(['other vegetables']) 0.340136054422 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['sausage']) 0.135869565217 condition: frozenset(['sausage', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.377358490566 frequent item set: frozenset(['tropical fruit', 'whole milk', 'root vegetables']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['whole milk', 'root vegetables']) 0.114341085271 condition: frozenset(['whole milk']) conclusion: frozenset(['tropical fruit', 'root vegetables']) 0.0469558296856 condition: frozenset(['root vegetables']) conclusion: frozenset(['tropical fruit', 'whole milk']) 0.110074626866 condition: frozenset(['tropical fruit', 'whole milk']) conclusion: frozenset(['root vegetables']) 0.283653846154 condition: frozenset(['tropical fruit', 'root vegetables']) conclusion: frozenset(['whole milk']) 0.570048309179 condition: frozenset(['whole milk', 'root vegetables']) conclusion: frozenset(['tropical fruit']) 0.245322245322 frequent item set: frozenset(['citrus fruit', 'other vegetables', 'root vegetables']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['other vegetables', 'root vegetables']) 0.125307125307 condition: frozenset(['other vegetables']) conclusion: frozenset(['citrus fruit', 'root vegetables']) 0.0535995796111 condition: frozenset(['root vegetables']) conclusion: frozenset(['citrus fruit', 'other vegetables']) 0.0951492537313 condition: frozenset(['citrus fruit', 'other vegetables']) conclusion: frozenset(['root vegetables']) 0.359154929577 condition: frozenset(['citrus fruit', 'root vegetables']) conclusion: frozenset(['other vegetables']) 0.586206896552 condition: frozenset(['other vegetables', 'root vegetables']) conclusion: frozenset(['citrus fruit']) 0.218884120172 frequent item set: frozenset(['whole milk', 'citrus fruit', 'yogurt']) condition: frozenset(['whole milk']) conclusion: frozenset(['citrus fruit', 'yogurt']) 0.0401910067648 condition: frozenset(['citrus fruit']) conclusion: frozenset(['whole milk', 'yogurt']) 0.124078624079 condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'citrus fruit']) 0.0736151603499 condition: frozenset(['whole milk', 'citrus fruit']) conclusion: frozenset(['yogurt']) 0.336666666667 condition: frozenset(['whole milk', 'yogurt']) conclusion: frozenset(['citrus fruit']) 0.183303085299 condition: frozenset(['citrus fruit', 'yogurt']) conclusion: frozenset(['whole milk']) 0.474178403756 frequent item set: frozenset(['whole milk', 'other vegetables', 'rolls/buns']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'rolls/buns']) 0.0700358137684 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'rolls/buns']) 0.0924855491329 condition: frozenset(['rolls/buns']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.0972913211719 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['rolls/buns']) 0.239130434783 condition: frozenset(['whole milk', 'rolls/buns']) conclusion: frozenset(['other vegetables']) 0.315978456014 condition: frozenset(['other vegetables', 'rolls/buns']) conclusion: frozenset(['whole milk']) 0.420047732697 frequent item set: frozenset(['yogurt', 'tropical fruit', 'other vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['tropical fruit', 'other vegetables']) 0.0881924198251 condition: frozenset(['tropical fruit']) conclusion: frozenset(['yogurt', 'other vegetables']) 0.117248062016 condition: frozenset(['other vegetables']) conclusion: frozenset(['yogurt', 'tropical fruit']) 0.0635838150289 condition: frozenset(['yogurt', 'tropical fruit']) conclusion: frozenset(['other vegetables']) 0.420138888889 condition: frozenset(['yogurt', 'other vegetables']) conclusion: frozenset(['tropical fruit']) 0.28337236534 condition: frozenset(['tropical fruit', 'other vegetables']) conclusion: frozenset(['yogurt']) 0.342776203966 frequent item set: frozenset(['whole milk', 'other vegetables', 'root vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'root vegetables']) 0.0907282132909 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'root vegetables']) 0.119810825013 condition: frozenset(['root vegetables']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.212686567164 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['root vegetables']) 0.309782608696 condition: frozenset(['whole milk', 'root vegetables']) conclusion: frozenset(['other vegetables']) 0.474012474012 condition: frozenset(['other vegetables', 'root vegetables']) conclusion: frozenset(['whole milk']) 0.489270386266 frequent item set: frozenset(['other vegetables', 'rolls/buns', 'root vegetables']) condition: frozenset(['other vegetables']) conclusion: frozenset(['rolls/buns', 'root vegetables']) 0.0630583289543 condition: frozenset(['rolls/buns']) conclusion: frozenset(['other vegetables', 'root vegetables']) 0.0663349917081 condition: frozenset(['root vegetables']) conclusion: frozenset(['other vegetables', 'rolls/buns']) 0.111940298507 condition: frozenset(['other vegetables', 'rolls/buns']) conclusion: frozenset(['root vegetables']) 0.286396181384 condition: frozenset(['other vegetables', 'root vegetables']) conclusion: frozenset(['rolls/buns']) 0.257510729614 condition: frozenset(['rolls/buns', 'root vegetables']) conclusion: frozenset(['other vegetables']) 0.502092050209 frequent item set: frozenset(['citrus fruit', 'whole milk', 'other vegetables']) condition: frozenset(['citrus fruit']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.157248157248 condition: frozenset(['whole milk']) conclusion: frozenset(['citrus fruit', 'other vegetables']) 0.0509351372861 condition: frozenset(['other vegetables']) conclusion: frozenset(['citrus fruit', 'whole milk']) 0.0672622175512 condition: frozenset(['citrus fruit', 'whole milk']) conclusion: frozenset(['other vegetables']) 0.426666666667 condition: frozenset(['citrus fruit', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.450704225352 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['citrus fruit']) 0.173913043478 frequent item set: frozenset(['whole milk', 'other vegetables', 'domestic eggs']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'domestic eggs']) 0.0481496219658 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'domestic eggs']) 0.0635838150289 condition: frozenset(['domestic eggs']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.19391025641 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['domestic eggs']) 0.164402173913 condition: frozenset(['whole milk', 'domestic eggs']) conclusion: frozenset(['other vegetables']) 0.410169491525 condition: frozenset(['other vegetables', 'domestic eggs']) conclusion: frozenset(['whole milk']) 0.552511415525 frequent item set: frozenset(['whole milk', 'other vegetables', 'pastry']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'pastry']) 0.041384799045 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'pastry']) 0.0546505517604 condition: frozenset(['pastry']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.118857142857 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['pastry']) 0.141304347826 condition: frozenset(['whole milk', 'pastry']) conclusion: frozenset(['other vegetables']) 0.318042813456 condition: frozenset(['other vegetables', 'pastry']) conclusion: frozenset(['whole milk']) 0.468468468468 frequent item set: frozenset(['whole milk', 'pip fruit', 'other vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['pip fruit', 'other vegetables']) 0.0529247910864 condition: frozenset(['pip fruit']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.17876344086 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'pip fruit']) 0.0698896479243 condition: frozenset(['whole milk', 'pip fruit']) conclusion: frozenset(['other vegetables']) 0.449324324324 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['pip fruit']) 0.180706521739 condition: frozenset(['pip fruit', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.517509727626 frequent item set: frozenset(['whole milk', 'rolls/buns', 'root vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['rolls/buns', 'root vegetables']) 0.049741345006 condition: frozenset(['rolls/buns']) conclusion: frozenset(['whole milk', 'root vegetables']) 0.069098949696 condition: frozenset(['root vegetables']) conclusion: frozenset(['whole milk', 'rolls/buns']) 0.116604477612 condition: frozenset(['whole milk', 'rolls/buns']) conclusion: frozenset(['root vegetables']) 0.224416517056 condition: frozenset(['whole milk', 'root vegetables']) conclusion: frozenset(['rolls/buns']) 0.259875259875 condition: frozenset(['rolls/buns', 'root vegetables']) conclusion: frozenset(['whole milk']) 0.523012552301 frequent item set: frozenset(['tropical fruit', 'other vegetables', 'root vegetables']) condition: frozenset(['tropical fruit']) conclusion: frozenset(['other vegetables', 'root vegetables']) 0.117248062016 condition: frozenset(['other vegetables']) conclusion: frozenset(['tropical fruit', 'root vegetables']) 0.0635838150289 condition: frozenset(['root vegetables']) conclusion: frozenset(['tropical fruit', 'other vegetables']) 0.112873134328 condition: frozenset(['tropical fruit', 'other vegetables']) conclusion: frozenset(['root vegetables']) 0.342776203966 condition: frozenset(['tropical fruit', 'root vegetables']) conclusion: frozenset(['other vegetables']) 0.584541062802 condition: frozenset(['other vegetables', 'root vegetables']) conclusion: frozenset(['tropical fruit']) 0.259656652361 frequent item set: frozenset(['yogurt', 'other vegetables', 'rolls/buns']) condition: frozenset(['yogurt']) conclusion: frozenset(['other vegetables', 'rolls/buns']) 0.082361516035 condition: frozenset(['other vegetables']) conclusion: frozenset(['yogurt', 'rolls/buns']) 0.0593799264319 condition: frozenset(['rolls/buns']) conclusion: frozenset(['yogurt', 'other vegetables']) 0.0624654505252 condition: frozenset(['yogurt', 'other vegetables']) conclusion: frozenset(['rolls/buns']) 0.264637002342 condition: frozenset(['yogurt', 'rolls/buns']) conclusion: frozenset(['other vegetables']) 0.334319526627 condition: frozenset(['other vegetables', 'rolls/buns']) conclusion: frozenset(['yogurt']) 0.26968973747 frequent item set: frozenset(['whole milk', 'butter', 'other vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['butter', 'other vegetables']) 0.0449661758854 condition: frozenset(['butter']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.207339449541 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'butter']) 0.0593799264319 condition: frozenset(['whole milk', 'butter']) conclusion: frozenset(['other vegetables']) 0.416974169742 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['butter']) 0.153532608696 condition: frozenset(['butter', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.573604060914 frequent item set: frozenset(['yogurt', 'whole milk', 'soda']) condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'soda']) 0.0750728862974 condition: frozenset(['whole milk']) conclusion: frozenset(['yogurt', 'soda']) 0.0409868682849 condition: frozenset(['soda']) conclusion: frozenset(['yogurt', 'whole milk']) 0.0600583090379 condition: frozenset(['yogurt', 'whole milk']) conclusion: frozenset(['soda']) 0.186932849365 condition: frozenset(['yogurt', 'soda']) conclusion: frozenset(['whole milk']) 0.382899628253 condition: frozenset(['whole milk', 'soda']) conclusion: frozenset(['yogurt']) 0.261421319797 frequent item set: frozenset(['whole milk', 'tropical fruit', 'yogurt']) condition: frozenset(['whole milk']) conclusion: frozenset(['tropical fruit', 'yogurt']) 0.0592916832471 condition: frozenset(['tropical fruit']) conclusion: frozenset(['whole milk', 'yogurt']) 0.144379844961 condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'tropical fruit']) 0.10860058309 condition: frozenset(['whole milk', 'tropical fruit']) conclusion: frozenset(['yogurt']) 0.358173076923 condition: frozenset(['whole milk', 'yogurt']) conclusion: frozenset(['tropical fruit']) 0.270417422868 condition: frozenset(['tropical fruit', 'yogurt']) conclusion: frozenset(['whole milk']) 0.517361111111 frequent item set: frozenset(['whole milk', 'tropical fruit', 'other vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['tropical fruit', 'other vegetables']) 0.066852367688 condition: frozenset(['tropical fruit']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.162790697674 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'tropical fruit']) 0.088281660536 condition: frozenset(['whole milk', 'tropical fruit']) conclusion: frozenset(['other vegetables']) 0.403846153846 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['tropical fruit']) 0.228260869565 condition: frozenset(['tropical fruit', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.475920679887 frequent item set: frozenset(['yogurt', 'whole milk', 'whipped/sour cream']) condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'whipped/sour cream']) 0.0779883381924 condition: frozenset(['whole milk']) conclusion: frozenset(['yogurt', 'whipped/sour cream']) 0.0425785913251 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['yogurt', 'whole milk']) 0.151773049645 condition: frozenset(['yogurt', 'whole milk']) conclusion: frozenset(['whipped/sour cream']) 0.194192377495 condition: frozenset(['yogurt', 'whipped/sour cream']) conclusion: frozenset(['whole milk']) 0.524509803922 condition: frozenset(['whole milk', 'whipped/sour cream']) conclusion: frozenset(['yogurt']) 0.337539432177 frequent item set: frozenset(['yogurt', 'other vegetables', 'root vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['other vegetables', 'root vegetables']) 0.0925655976676 condition: frozenset(['other vegetables']) conclusion: frozenset(['yogurt', 'root vegetables']) 0.0667367314766 condition: frozenset(['root vegetables']) conclusion: frozenset(['yogurt', 'other vegetables']) 0.118470149254 condition: frozenset(['yogurt', 'other vegetables']) conclusion: frozenset(['root vegetables']) 0.297423887588 condition: frozenset(['yogurt', 'root vegetables']) conclusion: frozenset(['other vegetables']) 0.5 condition: frozenset(['other vegetables', 'root vegetables']) conclusion: frozenset(['yogurt']) 0.272532188841 frequent item set: frozenset(['whole milk', 'pork', 'other vegetables']) condition: frozenset(['whole milk']) conclusion: frozenset(['pork', 'other vegetables']) 0.0397930760048 condition: frozenset(['pork']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.176366843034 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'pork']) 0.0525486074619 condition: frozenset(['whole milk', 'pork']) conclusion: frozenset(['other vegetables']) 0.45871559633 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['pork']) 0.135869565217 condition: frozenset(['pork', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.469483568075 frequent item set: frozenset(['yogurt', 'whole milk', 'other vegetables']) condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.159620991254 condition: frozenset(['whole milk']) conclusion: frozenset(['yogurt', 'other vegetables']) 0.0871468364505 condition: frozenset(['other vegetables']) conclusion: frozenset(['yogurt', 'whole milk']) 0.115081450342 condition: frozenset(['yogurt', 'whole milk']) conclusion: frozenset(['other vegetables']) 0.397459165154 condition: frozenset(['yogurt', 'other vegetables']) conclusion: frozenset(['whole milk']) 0.512880562061 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['yogurt']) 0.297554347826 frequent item set: frozenset(['whole milk', 'other vegetables', 'whipped/sour cream']) condition: frozenset(['whole milk']) conclusion: frozenset(['other vegetables', 'whipped/sour cream']) 0.0573020294469 condition: frozenset(['other vegetables']) conclusion: frozenset(['whole milk', 'whipped/sour cream']) 0.0756699947451 condition: frozenset(['whipped/sour cream']) conclusion: frozenset(['whole milk', 'other vegetables']) 0.204255319149 condition: frozenset(['whole milk', 'other vegetables']) conclusion: frozenset(['whipped/sour cream']) 0.195652173913 condition: frozenset(['whole milk', 'whipped/sour cream']) conclusion: frozenset(['other vegetables']) 0.454258675079 condition: frozenset(['other vegetables', 'whipped/sour cream']) conclusion: frozenset(['whole milk']) 0.507042253521 frequent item set: frozenset(['yogurt', 'whole milk', 'rolls/buns']) condition: frozenset(['yogurt']) conclusion: frozenset(['whole milk', 'rolls/buns']) 0.111516034985 condition: frozenset(['whole milk']) conclusion: frozenset(['yogurt', 'rolls/buns']) 0.0608834062873 condition: frozenset(['rolls/buns']) conclusion: frozenset(['yogurt', 'whole milk']) 0.0845771144279 condition: frozenset(['yogurt', 'whole milk']) conclusion: frozenset(['rolls/buns']) 0.277676950998 condition: frozenset(['yogurt', 'rolls/buns']) conclusion: frozenset(['whole milk']) 0.452662721893 condition: frozenset(['whole milk', 'rolls/buns']) conclusion: frozenset(['yogurt']) 0.274685816876
## 输出前10条关联规则
for index in range(10):
print association_rules[index]
[[frozenset(['whipped/sour cream']), frozenset(['whole milk'])], 0.44964539007092197] [[frozenset(['frozen vegetables']), frozenset(['whole milk'])], 0.4249471458773784] [[frozenset(['curd']), frozenset(['whole milk'])], 0.4904580152671756] [[frozenset(['root vegetables']), frozenset(['other vegetables'])], 0.43470149253731344] [[frozenset(['hamburger meat']), frozenset(['whole milk'])], 0.4434250764525994] [[frozenset(['beef']), frozenset(['whole milk'])], 0.4050387596899225] [[frozenset(['hamburger meat']), frozenset(['other vegetables'])], 0.41590214067278286] [[frozenset(['butter milk']), frozenset(['whole milk'])], 0.41454545454545455] [[frozenset(['domestic eggs']), frozenset(['whole milk'])], 0.47275641025641024] [[frozenset(['chicken']), frozenset(['other vegetables'])], 0.41706161137440756]
首先,我们构造创建FP树所需的类:Node
和FPTree
。
'''
Node类,包含以下变量:
name: 当前节点代表的频繁项
count:当前节点出现的频数
link:FP树的其他路径中代表相同频繁项的节点
parent:当前节点的父节点
children:当前节点的子节点
包含以下方法:
__init__(): 构造方法
increment():增加当前节点代表的频繁项的支持度
display():可视化节点,以及对应的频繁项支持度
'''
class Node:
'''
输入参数:name:节点代表的频繁项
count:频繁项的支持度
parent:节点的父节点
'''
def __init__(self, name, count, parent):
self.name = name
self.count = count
self.link = None
self.parent = parent
self.children = {}
'''
输入参数: num:整数,代表频繁项支持度增加的数值
'''
def increment(self, num):
self.count += num
'''
输入参数:lens:节点的初始支持度
'''
def display(self, lens = 1):
print ' '*lens, self.name, ' ', self.count
for child in self.children.values():
child.display(lens + 1)
'''
FPTree类,包含以下变量:
flag:表示构建FPTree还是条件FPTree,取决于输入数据
root: FP树的根节点
data:FP树代表的数据集
data_type:数据集存储的原始类型(字典或者嵌套列表)
min_support:最小支持度(绝对)
frequent:频繁1项集集合
headerTable:FP树对应的频繁项表
包含以下方法:
__init__(): 构造方法
find_frequent_items():根据数据集生成频繁1项集集合
build_tree():将数据集中的每条数据记录插入FP树种,也就是建树过程
get_tree():返回树的根节点
get_frequent_items():返回频繁1项集集合
get_headertable():返回频繁项表
get_data():返回数据集
show():可视化FP树的结构
'''
class FPTree:
'''
输入参数:transactions:数据集
min_support:最小支持度
root_value:根节点代表的频繁项
count:根节点代表的频繁项的支持度
'''
def __init__(self, transactions, min_support, root_value, count, flag):
self.flag = flag
self.root = Node(root_value, count, None)
self.data = transactions
self.data_type = type(self.data)
self.min_support = min_support
self.frequent = self.find_frequent_items()
self.headerTable = {v:[self.frequent[v], None] for v in self.frequent}
'''
返回参数:以字典格式存储的频繁1项集集合
'''
def find_frequent_items(self):
from collections import defaultdict
freq1 = defaultdict(int)
#统计列表中各个元素的出现频次
if self.data_type == list and self.flag == 'fptree':
flatten_list = [element for item in self.data for element in item]
for value in flatten_list:
freq1[frozenset([value])] += 1
# 条件FP树
elif self.data_type == dict and self.flag == 'cfptree':
for item in self.data:
for element in item:
if type(element) == frozenset:
freq1[element] += self.data[item]
else:
freq1[frozenset([element])] += self.data[item]
# 过滤掉非频繁项
return {v:freq1[v] for v in freq1 if freq1[v] >= self.min_support}
def build_tree(self):
root = Node('null', 1, None)
sorted_headertable = [v[0] for v in sorted(self.frequent.items(), key=lambda kv: (-kv[1], list(kv[0])[0]))]
# 将业务数据库中的每条记录插入树中,更新频繁项表
for record in self.data:
# 找到业务数据纪录中的频繁项
sorted_items = [item for item in sorted_headertable if list(item)[0] in record]
#print u'将排序后的频繁项集放入FP树中: '
#print sorted_items
#print ''
node = self.root
while len(sorted_items) > 0:
first_value = sorted_items[0]
#print u' 开始插入节点 ', first_value
if first_value in node.children:
#print u' 当前节点的子节点中包含节点 ', first_value
if self.data_type == list:
node.children[first_value].increment(1)
elif self.data_type == dict:
node.children[first_value].increment(self.data[record])
else:
# 创建新的子节点
#print u' 创建新节点 ', first_value
if self.data_type == list:
node.children[first_value] = Node(list(first_value)[0], 1, node)
elif self.data_type == dict:
node.children[first_value] = Node(first_value, self.data[record], node)
# 更新频繁项表
if self.headerTable[first_value][1] == None:
#print u' 在频繁项表中,添加对应链表的第一个节点', first_value
self.headerTable[first_value][1] = node.children[first_value]
else:
#print u' 添加到频繁项表对应链表的末尾'
currentNode = self.headerTable[first_value][1]
# 遍历连表,确保在表的尾部插入新的节点指针
while currentNode.link != None:
currentNode = currentNode.link
currentNode.link = node.children[first_value]
#print '***********'
sorted_items.pop(0)
node = node.children[first_value]
#print ''
def get_tree(self):
return self.root
def get_frequent_items(self):
return self.frequent
def get_headertable(self):
return self.headerTable
def get_data(self):
return self.data
def show(self, depth = 1):
print ' '*depth, self.root.name, ' ', self.root.count
for node in self.root.children.values():
node.display(depth + 1)
#最小支持度
min_support = 100
#创建实例
fptree = FPTree(data, min_support, 'null', 1, 'fptree')
然后,我们可以返回数据集的频繁1项集集合。
freq1 = fptree.get_frequent_items()
## 输出频繁1项集的前10个元素
freq1_list = freq1.items()
for index in range(10):
print freq1_list[index]
(frozenset(['beef']), 516) (frozenset(['rolls/buns']), 1809) (frozenset(['cling film/bags']), 112) (frozenset(['spread cheese']), 110) (frozenset(['liquor']), 109) (frozenset(['flower (seeds)']), 102) (frozenset(['white bread']), 414) (frozenset(['dessert']), 365) (frozenset(['pork']), 567) (frozenset(['whipped/sour cream']), 705)
fptree.build_tree()
FP树创建好之后,我们构造mine_tree()
函数,来实现FP树的挖掘过程。
find_prefix()
函数返回在FP书中以当前节点为后缀的所有路径,构造条件模式库mine_tree()
函数递归挖掘以条件模式库为基础构造的条件FP树'''
输入参数:Node节点
返回参数:以输入节点为后缀的条件模式库
'''
def find_prefix(node):
#条件模式库
cpb = {}
suffix_list = []
# 判断条件,是否已经达到链表的尾部
while node != None:
suffix_list.append(node)
node = node.link
for item in suffix_list:
path = []
num = item.count
# 判断条件,是否已经回溯到树的顶点
while item.parent != None:
path.append(item.name)
item = item.parent
# 除去当前节点的部分作为条件模式基,并以当前节点的支持度作为条件模式库的支持度
cpb[frozenset(path[1:])] = num
return cpb
'''
输入参数:frequent_items:数据集的频繁1项集集合
headerTable:数据集的频繁项表
frequent:每次迭代过程生成的频繁项
item_list:存储所有迭代过程生成的的频繁项集
'''
def mine_tree(frequent_items, headerTable, min_support, frequent, item_list):
# 频繁项表中的元素降序排列
candidates = [v[0] for v in sorted(frequent_items.items(), key=lambda kv: (-kv[1], list(kv[0])[0]))]
#print candidates
for item in candidates[::-1]:
#从以下的元素开始
#print 'from the node: ', item
# 针对每个条件模式库,生成频繁项集
freq_set = frequent.copy()
freq_set.add(item)
item_list.append(freq_set)
# 生成条件模式库
cpbs = find_prefix(headerTable[item][1])
#print 'its cpbs: ', cpbs
#创建条件FP树
cTree = FPTree(cpbs, min_support, 'root', 1, 'cfptree')
cTree.build_tree()
#print '-----headerTable: ', cTree.get_headertable()
#判断条件:频繁项表为空
if len(cTree.get_headertable()) != 0:
#print 'condtional tree for: ', freq_set
#cTree.show(1)
mine_tree(cTree.get_frequent_items(), cTree.get_headertable(), min_support, freq_set, item_list)
根据原始数据集构建FP树之后,可以得到FP树的节点root_node
,频繁项表headertable
,以及频繁1项集集合freq_items
。
将这些变量作为输入参数,带入到函数mine_tree()
函数中,生成的频繁项集翻入到列表变量frequent_item
中。
frequent_item = []
frequent = set()
root_node = fptree.get_tree()
headertable = fptree.get_headertable()
freq_items = fptree.get_frequent_items()
mine_tree(freq_items, headertable, min_support, frequent, frequent_item)
打印requent_item
的内容。从中我们可以发现,商场售卖的受客户欢迎的商品,比如yorgurt,soda等;当然,我们还发现顾客通常会一起购买whole milk和yourgurt等。更多的信息,可以继续分析frequent_item
的内容。
frequent_item
[{frozenset({'roll products'})}, {frozenset({'condensed milk'})}, {frozenset({'flower (seeds)'})}, {frozenset({'dish cleaner'})}, {frozenset({'salt'})}, {frozenset({'frozen dessert'})}, {frozenset({'canned vegetables'})}, {frozenset({'liquor'})}, {frozenset({'spread cheese'})}, {frozenset({'cling film/bags'})}, {frozenset({'frozen fish'})}, {frozenset({'mustard'})}, {frozenset({'packaged fruit/vegetables'})}, {frozenset({'cake bar'})}, {frozenset({'seasonal products'})}, {frozenset({'pasta'})}, {frozenset({'canned fish'})}, {frozenset({'herbs'})}, {frozenset({'processed cheese'})}, {frozenset({'soft cheese'})}, {frozenset({'potted plants'})}, {frozenset({'flour'})}, {frozenset({'dishes'})}, {frozenset({'semi-finished bread'})}, {frozenset({'baking powder'})}, {frozenset({'pickled vegetables'})}, {frozenset({'white wine'})}, {frozenset({'red/blush wine'})}, {frozenset({'detergent'})}, {frozenset({'chewing gum'})}, {frozenset({'grapes'})}, {frozenset({'cat food'})}, {frozenset({'sliced cheese'})}, {frozenset({'sliced cheese'}), frozenset({'whole milk'})}, {frozenset({'hard cheese'})}, {frozenset({'ice cream'})}, {frozenset({'meat'})}, {frozenset({'ham'})}, {frozenset({'ham'}), frozenset({'whole milk'})}, {frozenset({'beverages'})}, {frozenset({'specialty bar'})}, {frozenset({'butter milk'})}, {frozenset({'butter milk'}), frozenset({'other vegetables'})}, {frozenset({'butter milk'}), frozenset({'whole milk'})}, {frozenset({'oil'})}, {frozenset({'oil'}), frozenset({'whole milk'})}, {frozenset({'misc. beverages'})}, {frozenset({'frozen meals'})}, {frozenset({'candy'})}, {frozenset({'specialty chocolate'})}, {frozenset({'onions'})}, {frozenset({'onions'}), frozenset({'whole milk'})}, {frozenset({'onions'}), frozenset({'other vegetables'})}, {frozenset({'hygiene articles'})}, {frozenset({'hygiene articles'}), frozenset({'whole milk'})}, {frozenset({'hamburger meat'})}, {frozenset({'other vegetables'}), frozenset({'hamburger meat'})}, {frozenset({'whole milk'}), frozenset({'hamburger meat'})}, {frozenset({'berries'})}, {frozenset({'other vegetables'}), frozenset({'berries'})}, {frozenset({'berries'}), frozenset({'yogurt'})}, {frozenset({'berries'}), frozenset({'whole milk'})}, {frozenset({'UHT-milk'})}, {frozenset({'sugar'})}, {frozenset({'sugar'}), frozenset({'other vegetables'})}, {frozenset({'sugar'}), frozenset({'whole milk'})}, {frozenset({'dessert'})}, {frozenset({'other vegetables'}), frozenset({'dessert'})}, {frozenset({'whole milk'}), frozenset({'dessert'})}, {frozenset({'long life bakery product'})}, {frozenset({'other vegetables'}), frozenset({'long life bakery product'})}, {frozenset({'whole milk'}), frozenset({'long life bakery product'})}, {frozenset({'salty snack'})}, {frozenset({'other vegetables'}), frozenset({'salty snack'})}, {frozenset({'whole milk'}), frozenset({'salty snack'})}, {frozenset({'waffles'})}, {frozenset({'waffles'}), frozenset({'whole milk'})}, {frozenset({'cream cheese'})}, {frozenset({'yogurt'}), frozenset({'cream cheese'})}, {frozenset({'other vegetables'}), frozenset({'cream cheese'})}, {frozenset({'whole milk'}), frozenset({'cream cheese'})}, {frozenset({'white bread'})}, {frozenset({'soda'}), frozenset({'white bread'})}, {frozenset({'other vegetables'}), frozenset({'white bread'})}, {frozenset({'white bread'}), frozenset({'whole milk'})}, {frozenset({'chicken'})}, {frozenset({'root vegetables'}), frozenset({'chicken'})}, {frozenset({'chicken'}), frozenset({'whole milk'})}, {frozenset({'other vegetables'}), frozenset({'chicken'})}, {frozenset({'frozen vegetables'})}, {frozenset({'frozen vegetables'}), frozenset({'rolls/buns'})}, {frozenset({'root vegetables'}), frozenset({'frozen vegetables'})}, {frozenset({'frozen vegetables'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'frozen vegetables'})}, {frozenset({'frozen vegetables'}), frozenset({'whole milk'})}, {frozenset({'chocolate'})}, {frozenset({'chocolate'}), frozenset({'rolls/buns'})}, {frozenset({'chocolate'}), frozenset({'other vegetables'})}, {frozenset({'chocolate'}), frozenset({'soda'})}, {frozenset({'chocolate'}), frozenset({'whole milk'})}, {frozenset({'napkins'})}, {frozenset({'napkins'}), frozenset({'rolls/buns'})}, {frozenset({'soda'}), frozenset({'napkins'})}, {frozenset({'napkins'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'napkins'})}, {frozenset({'napkins'}), frozenset({'whole milk'})}, {frozenset({'beef'})}, {frozenset({'beef'}), frozenset({'yogurt'})}, {frozenset({'beef'}), frozenset({'rolls/buns'})}, {frozenset({'beef'}), frozenset({'root vegetables'})}, {frozenset({'beef'}), frozenset({'other vegetables'})}, {frozenset({'beef'}), frozenset({'whole milk'})}, {frozenset({'curd'})}, {frozenset({'curd'}), frozenset({'tropical fruit'})}, {frozenset({'whipped/sour cream'}), frozenset({'curd'})}, {frozenset({'root vegetables'}), frozenset({'curd'})}, {frozenset({'other vegetables'}), frozenset({'curd'})}, {frozenset({'curd'}), frozenset({'yogurt'})}, {frozenset({'curd'}), frozenset({'whole milk'})}, {frozenset({'butter'})}, {frozenset({'whipped/sour cream'}), frozenset({'butter'})}, {frozenset({'root vegetables'}), frozenset({'butter'})}, {frozenset({'rolls/buns'}), frozenset({'butter'})}, {frozenset({'yogurt'}), frozenset({'butter'})}, {frozenset({'other vegetables'}), frozenset({'butter'})}, {frozenset({'other vegetables'}), frozenset({'whole milk'}), frozenset({'butter'})}, {frozenset({'whole milk'}), frozenset({'butter'})}, {frozenset({'pork'})}, {frozenset({'pork'}), frozenset({'rolls/buns'})}, {frozenset({'soda'}), frozenset({'pork'})}, {frozenset({'root vegetables'}), frozenset({'pork'})}, {frozenset({'other vegetables'}), frozenset({'pork'})}, {frozenset({'pork'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'pork'}), frozenset({'whole milk'})}, {frozenset({'coffee'})}, {frozenset({'coffee'}), frozenset({'rolls/buns'})}, {frozenset({'other vegetables'}), frozenset({'coffee'})}, {frozenset({'coffee'}), frozenset({'whole milk'})}, {frozenset({'margarine'})}, {frozenset({'soda'}), frozenset({'margarine'})}, {frozenset({'bottled water'}), frozenset({'margarine'})}, {frozenset({'root vegetables'}), frozenset({'margarine'})}, {frozenset({'yogurt'}), frozenset({'margarine'})}, {frozenset({'rolls/buns'}), frozenset({'margarine'})}, {frozenset({'other vegetables'}), frozenset({'margarine'})}, {frozenset({'whole milk'}), frozenset({'margarine'})}, {frozenset({'frankfurter'})}, {frozenset({'frankfurter'}), frozenset({'root vegetables'})}, {frozenset({'frankfurter'}), frozenset({'yogurt'})}, {frozenset({'frankfurter'}), frozenset({'soda'})}, {frozenset({'frankfurter'}), frozenset({'other vegetables'})}, {frozenset({'frankfurter'}), frozenset({'rolls/buns'})}, {frozenset({'frankfurter'}), frozenset({'whole milk'})}, {frozenset({'domestic eggs'})}, {frozenset({'domestic eggs'}), frozenset({'citrus fruit'})}, {frozenset({'domestic eggs'}), frozenset({'tropical fruit'})}, {frozenset({'domestic eggs'}), frozenset({'soda'})}, {frozenset({'domestic eggs'}), frozenset({'yogurt'})}, {frozenset({'domestic eggs'}), frozenset({'root vegetables'})}, {frozenset({'domestic eggs'}), frozenset({'rolls/buns'})}, {frozenset({'domestic eggs'}), frozenset({'other vegetables'})}, {frozenset({'domestic eggs'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'domestic eggs'}), frozenset({'whole milk'})}, {frozenset({'brown bread'})}, {frozenset({'root vegetables'}), frozenset({'brown bread'})}, {frozenset({'brown bread'}), frozenset({'tropical fruit'})}, {frozenset({'brown bread'}), frozenset({'sausage'})}, {frozenset({'soda'}), frozenset({'brown bread'})}, {frozenset({'brown bread'}), frozenset({'rolls/buns'})}, {frozenset({'brown bread'}), frozenset({'yogurt'})}, {frozenset({'brown bread'}), frozenset({'other vegetables'})}, {frozenset({'brown bread'}), frozenset({'whole milk'})}, {frozenset({'whipped/sour cream'})}, {frozenset({'whipped/sour cream'}), frozenset({'citrus fruit'})}, {frozenset({'whipped/sour cream'}), frozenset({'soda'})}, {frozenset({'whipped/sour cream'}), frozenset({'tropical fruit'})}, {frozenset({'whipped/sour cream'}), frozenset({'rolls/buns'})}, {frozenset({'whipped/sour cream'}), frozenset({'root vegetables'})}, {frozenset({'whipped/sour cream'}), frozenset({'yogurt'})}, {frozenset({'whipped/sour cream'}), frozenset({'other vegetables'}), frozenset({'yogurt'})}, {frozenset({'whipped/sour cream'}), frozenset({'whole milk'}), frozenset({'yogurt'})}, {frozenset({'whipped/sour cream'}), frozenset({'other vegetables'})}, {frozenset({'whipped/sour cream'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'whipped/sour cream'}), frozenset({'whole milk'})}, {frozenset({'fruit/vegetable juice'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'citrus fruit'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'shopping bags'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'root vegetables'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'tropical fruit'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'bottled water'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'rolls/buns'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'soda'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'yogurt'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'other vegetables'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'fruit/vegetable juice'}), frozenset({'whole milk'})}, {frozenset({'pip fruit'})}, {frozenset({'bottled water'}), frozenset({'pip fruit'})}, {frozenset({'pastry'}), frozenset({'pip fruit'})}, {frozenset({'sausage'}), frozenset({'pip fruit'})}, {frozenset({'soda'}), frozenset({'pip fruit'})}, {frozenset({'citrus fruit'}), frozenset({'pip fruit'})}, {frozenset({'rolls/buns'}), frozenset({'pip fruit'})}, {frozenset({'root vegetables'}), frozenset({'pip fruit'})}, {frozenset({'yogurt'}), frozenset({'pip fruit'})}, {frozenset({'tropical fruit'}), frozenset({'pip fruit'})}, {frozenset({'other vegetables'}), frozenset({'pip fruit'})}, {frozenset({'other vegetables'}), frozenset({'whole milk'}), frozenset({'pip fruit'})}, {frozenset({'whole milk'}), frozenset({'pip fruit'})}, {frozenset({'canned beer'})}, {frozenset({'rolls/buns'}), frozenset({'canned beer'})}, {frozenset({'shopping bags'}), frozenset({'canned beer'})}, {frozenset({'soda'}), frozenset({'canned beer'})}, {frozenset({'newspapers'})}, {frozenset({'bottled water'}), frozenset({'newspapers'})}, {frozenset({'root vegetables'}), frozenset({'newspapers'})}, {frozenset({'newspapers'}), frozenset({'tropical fruit'})}, {frozenset({'soda'}), frozenset({'newspapers'})}, {frozenset({'newspapers'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'newspapers'})}, {frozenset({'newspapers'}), frozenset({'rolls/buns'})}, {frozenset({'newspapers'}), frozenset({'whole milk'})}, {frozenset({'bottled beer'})}, {frozenset({'bottled beer'}), frozenset({'rolls/buns'})}, {frozenset({'bottled beer'}), frozenset({'bottled water'})}, {frozenset({'bottled beer'}), frozenset({'other vegetables'})}, {frozenset({'bottled beer'}), frozenset({'soda'})}, {frozenset({'bottled beer'}), frozenset({'whole milk'})}, {frozenset({'citrus fruit'})}, {frozenset({'sausage'}), frozenset({'citrus fruit'})}, {frozenset({'soda'}), frozenset({'citrus fruit'})}, {frozenset({'bottled water'}), frozenset({'citrus fruit'})}, {frozenset({'rolls/buns'}), frozenset({'citrus fruit'})}, {frozenset({'root vegetables'}), frozenset({'citrus fruit'})}, {frozenset({'root vegetables'}), frozenset({'other vegetables'}), frozenset({'citrus fruit'})}, {frozenset({'tropical fruit'}), frozenset({'citrus fruit'})}, {frozenset({'yogurt'}), frozenset({'citrus fruit'})}, {frozenset({'whole milk'}), frozenset({'citrus fruit'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'citrus fruit'})}, {frozenset({'other vegetables'}), frozenset({'whole milk'}), frozenset({'citrus fruit'})}, {frozenset({'whole milk'}), frozenset({'citrus fruit'})}, {frozenset({'pastry'})}, {frozenset({'root vegetables'}), frozenset({'pastry'})}, {frozenset({'shopping bags'}), frozenset({'pastry'})}, {frozenset({'pastry'}), frozenset({'sausage'})}, {frozenset({'pastry'}), frozenset({'tropical fruit'})}, {frozenset({'pastry'}), frozenset({'yogurt'})}, {frozenset({'pastry'}), frozenset({'rolls/buns'})}, {frozenset({'soda'}), frozenset({'pastry'})}, {frozenset({'pastry'}), frozenset({'other vegetables'})}, {frozenset({'pastry'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'pastry'}), frozenset({'whole milk'})}, {frozenset({'sausage'})}, {frozenset({'bottled water'}), frozenset({'sausage'})}, {frozenset({'sausage'}), frozenset({'tropical fruit'})}, {frozenset({'root vegetables'}), frozenset({'sausage'})}, {frozenset({'shopping bags'}), frozenset({'sausage'})}, {frozenset({'sausage'}), frozenset({'yogurt'})}, {frozenset({'soda'}), frozenset({'sausage'})}, {frozenset({'other vegetables'}), frozenset({'sausage'})}, {frozenset({'sausage'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'sausage'}), frozenset({'whole milk'})}, {frozenset({'sausage'}), frozenset({'rolls/buns'})}, {frozenset({'shopping bags'})}, {frozenset({'shopping bags'}), frozenset({'bottled water'})}, {frozenset({'root vegetables'}), frozenset({'shopping bags'})}, {frozenset({'shopping bags'}), frozenset({'tropical fruit'})}, {frozenset({'shopping bags'}), frozenset({'yogurt'})}, {frozenset({'shopping bags'}), frozenset({'rolls/buns'})}, {frozenset({'shopping bags'}), frozenset({'other vegetables'})}, {frozenset({'shopping bags'}), frozenset({'whole milk'})}, {frozenset({'soda'}), frozenset({'shopping bags'})}, {frozenset({'tropical fruit'})}, {frozenset({'bottled water'}), frozenset({'tropical fruit'})}, {frozenset({'soda'}), frozenset({'tropical fruit'})}, {frozenset({'root vegetables'}), frozenset({'tropical fruit'})}, {frozenset({'root vegetables'}), frozenset({'whole milk'}), frozenset({'tropical fruit'})}, {frozenset({'root vegetables'}), frozenset({'other vegetables'}), frozenset({'tropical fruit'})}, {frozenset({'rolls/buns'}), frozenset({'tropical fruit'})}, {frozenset({'whole milk'}), frozenset({'rolls/buns'}), frozenset({'tropical fruit'})}, {frozenset({'yogurt'}), frozenset({'tropical fruit'})}, {frozenset({'other vegetables'}), frozenset({'tropical fruit'}), frozenset({'yogurt'})}, {frozenset({'whole milk'}), frozenset({'tropical fruit'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'tropical fruit'})}, {frozenset({'other vegetables'}), frozenset({'whole milk'}), frozenset({'tropical fruit'})}, {frozenset({'whole milk'}), frozenset({'tropical fruit'})}, {frozenset({'root vegetables'})}, {frozenset({'root vegetables'}), frozenset({'bottled water'})}, {frozenset({'root vegetables'}), frozenset({'soda'})}, {frozenset({'root vegetables'}), frozenset({'rolls/buns'})}, {frozenset({'root vegetables'}), frozenset({'other vegetables'}), frozenset({'rolls/buns'})}, {frozenset({'root vegetables'}), frozenset({'rolls/buns'}), frozenset({'whole milk'})}, {frozenset({'root vegetables'}), frozenset({'yogurt'})}, {frozenset({'root vegetables'}), frozenset({'other vegetables'}), frozenset({'yogurt'})}, {frozenset({'root vegetables'}), frozenset({'whole milk'}), frozenset({'yogurt'})}, {frozenset({'root vegetables'}), frozenset({'other vegetables'})}, {frozenset({'root vegetables'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'root vegetables'}), frozenset({'whole milk'})}, {frozenset({'bottled water'})}, {frozenset({'bottled water'}), frozenset({'yogurt'})}, {frozenset({'bottled water'}), frozenset({'rolls/buns'})}, {frozenset({'bottled water'}), frozenset({'other vegetables'})}, {frozenset({'bottled water'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'soda'}), frozenset({'bottled water'})}, {frozenset({'bottled water'}), frozenset({'whole milk'})}, {frozenset({'yogurt'})}, {frozenset({'soda'}), frozenset({'yogurt'})}, {frozenset({'soda'}), frozenset({'whole milk'}), frozenset({'yogurt'})}, {frozenset({'rolls/buns'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'rolls/buns'}), frozenset({'yogurt'})}, {frozenset({'whole milk'}), frozenset({'rolls/buns'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'yogurt'})}, {frozenset({'other vegetables'}), frozenset({'whole milk'}), frozenset({'yogurt'})}, {frozenset({'whole milk'}), frozenset({'yogurt'})}, {frozenset({'soda'})}, {frozenset({'soda'}), frozenset({'other vegetables'})}, {frozenset({'soda'}), frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'soda'}), frozenset({'rolls/buns'})}, {frozenset({'soda'}), frozenset({'whole milk'})}, {frozenset({'rolls/buns'})}, {frozenset({'other vegetables'}), frozenset({'rolls/buns'})}, {frozenset({'other vegetables'}), frozenset({'rolls/buns'}), frozenset({'whole milk'})}, {frozenset({'rolls/buns'}), frozenset({'whole milk'})}, {frozenset({'other vegetables'})}, {frozenset({'other vegetables'}), frozenset({'whole milk'})}, {frozenset({'whole milk'})}]