-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathHello.py
More file actions
41 lines (36 loc) · 1.36 KB
/
Copy pathHello.py
File metadata and controls
41 lines (36 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
data_str = 'apple,beer,rice,chicken\n'
data_str += 'apple,beer,rice\n'
data_str += 'apple,beer\n'
data_str += 'apple,mango\n'
data_str += 'milk,beer,rice,chicken\n'
data_str += 'milk,beer,rice\n'
data_str += 'milk,beer\n'
data_str += 'milk,mango'
def gen_record(data_str):
for line in data_str.strip().split('\n'):
yield sorted(list(set(line.split(','))))
test = gen_record(data_str)
print(sorted(next(test)))
print(sorted(next(test)))
def gen_frequent_1_itemset(dataset,min_support):
freq = {}
for data in dataset:
for item in data:
freq[item] = freq.get(item, 0) + 1
num_items = len(dataset)
freq_1_items = (item for item, count in freq.items() if (count / num_items) >= min_support)
return set(freq_1_items)
dataset = list(gen_record(data_str))
print(sorted(list(gen_frequent_1_itemset(dataset, 0.7))))
def gen_frequent_2_itemset(dataset,min_support):
freq = {}
for data in dataset:
for item in data:
freq[item] = freq.get(item, 0) + 1
num_items = len(dataset)
freqitemA = (item for item, count in freq.items() if (count / num_items) >= min_support)
freqitemB = (item for item, count in freq.items() if (count / num_items) >= min_support)
freq_2_items = set()
return set(freq_2_items)
dataset = list(gen_record(data_str))
print(sorted(list(gen_frequent_2_itemset(dataset, 0.5))))