APRIORI ALGORITHM IMPLEMENTATION IN PYTHON

 The Apriori algorithm says "All the subsets of a frequent itemset should be frequent. And all the supersets of infrequent itemset should be infrequent"

Here's the code for Apriori algorithm in python:

#install mlxtend to use apriori command

pip install mlxtend 

from mlxtend.frequent_patterns import apriori


dataset = [['Milk', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],

           ['Dill', 'Onion', 'Nutmeg', 'Kidney Beans', 'Eggs', 'Yogurt'],

           ['Milk', 'Apple', 'Kidney Beans', 'Eggs'],

           ['Milk', 'Unicorn', 'Corn', 'Kidney Beans', 'Yogurt'],

           ['Corn', 'Onion', 'Onion', 'Kidney Beans', 'Ice cream', 'Eggs']]

import pandas as pd

from mlxtend.preprocessing import TransactionEncoder


t = TransactionEncoder()

x = t.fit(dataset).transform(dataset)

df = pd.DataFrame(x, columns=t.columns_)

df


from mlxtend.frequent_patterns import apriori

apriori(df, min_support=0.6)


apriori(df, min_support=0.6, use_colnames=True)


frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)

frequent_itemsets['length'] = frequent_itemsets['itemsets'].apply(lambda x: len(x))

frequent_itemsets


frequent_itemsets[ (frequent_itemsets['length'] == 2) &(frequent_itemsets['support'] >= 0.8) ]



Comments