Algorithm
Algorithm
Program:
from itertools import combinations
def load_data():
# Sample transactional dataset
dataset = [
['bread', 'milk', 'beer'],
['bread', 'diaper', 'beer', 'egg'],
['milk', 'diaper', 'beer', 'cola'],
['bread', 'milk', 'diaper', 'beer'],
['bread', 'milk', 'diaper', 'cola']
]
return dataset
def create_c1(dataset):
c1 = set()
for transaction in dataset:
for item in transaction:
c1.add(frozenset([item]))
return c1
num_transactions = float(len(dataset))
qualified_items = []
support_data = {}
for candidate, count in candidate_counts.items():
support = count / num_transactions
if support >= min_support:
qualified_items.append(candidate)
support_data[candidate] = support
return qualified_items, support_data
Output:
Frequent 1-itemsets
===================
frozenset({'bread'}) - support: 0.8
frozenset({'beer'}) - support: 0.8
frozenset({'milk'}) - support: 0.8
frozenset({'diaper'}) - support: 0.8
frozenset({'cola'}) - support: 0.4
Frequent 2-itemsets
===================
frozenset({'beer', 'bread'}) - support: 0.6
frozenset({'milk', 'bread'}) - support: 0.6
frozenset({'beer', 'milk'}) - support: 0.6
frozenset({'diaper', 'bread'}) - support: 0.6
frozenset({'beer', 'diaper'}) - support: 0.6
frozenset({'diaper', 'milk'}) - support: 0.6
frozenset({'milk', 'cola'}) - support: 0.4
frozenset({'diaper', 'cola'}) - support: 0.4
Frequent 3-itemsets
===================
frozenset({'beer', 'milk', 'bread'}) - support: 0.4
frozenset({'beer', 'diaper', 'bread'}) - support: 0.4
frozenset({'beer', 'diaper', 'milk'}) - support: 0.4
frozenset({'diaper', 'milk', 'cola'}) - support: 0.4
frozenset({'diaper', 'milk', 'bread'}) - support: 0.4
Frequent 4-itemsets
===================
Association Rules
===================
{'beer'} => frozenset({'bread'}) - confidence: 0.7499999999999999
{'bread'} => frozenset({'beer'}) - confidence: 0.7499999999999999
{'milk'} => frozenset({'bread'}) - confidence: 0.7499999999999999
{'bread'} => frozenset({'milk'}) - confidence: 0.7499999999999999
{'beer'} => frozenset({'milk'}) - confidence: 0.7499999999999999
{'milk'} => frozenset({'beer'}) - confidence: 0.7499999999999999
{'diaper'} => frozenset({'bread'}) - confidence: 0.7499999999999999
{'bread'} => frozenset({'diaper'}) - confidence: 0.7499999999999999
{'beer'} => frozenset({'diaper'}) - confidence: 0.7499999999999999
{'diaper'} => frozenset({'beer'}) - confidence: 0.7499999999999999
{'diaper'} => frozenset({'milk'}) - confidence: 0.7499999999999999
{'milk'} => frozenset({'diaper'}) - confidence: 0.7499999999999999
{'milk'} => frozenset({'cola'}) - confidence: 1.0
{'diaper'} => frozenset({'cola'}) - confidence: 1.0
{'diaper', 'milk'} => frozenset({'cola'}) - confidence: 1.0
FP Growth Algorithm:
Program:
from mlxtend.frequent_patterns import fpgrowth
import pandas as pd
dataset = [
['milk', 'bread', 'biscuit'],
['bread', 'butter'],
['milk', 'bread', 'butter'],
['milk', 'bread'],
['milk', 'bread', 'biscuit', 'butter'],
['jam', 'butter'],
['jam', 'bread'],
['milk', 'jam'],
['bread', 'butter']
]
df = pd.DataFrame(dataset)
encoded_df = pd.get_dummies(df.apply(lambda x: pd.Series(x)), prefix='', prefix_sep='')
frequent_itemsets = fpgrowth(encoded_df, min_support=0.2, use_colnames=True)
print(frequent_itemsets)
Output:
Accuracy: 1.0