Let's see how we can generate association rules using the FP-growth algorithm in Python. For this, we will be using the pyfpgrowth package. First, if we have never used pyfpgrowth before, let's install it first:
!pip install pyfpgrowth
Then, let's import the packages that we need to use to implement this algorithm:
import pandas as pd
import numpy as np
import pyfpgrowth as fp
Now we will create the input data in the form of transactionSet:
dict1 = {
'id':[0,1,2,3],
'items':[["wickets","pads"],
["bat","wickets","pads","helmet"],
["helmet","pad"],
["bat","pads","helmet"]]
}
transactionSet = pd.DataFrame(dict1)
Once the input data is generated, we will generate patterns that will be based on the parameters that we passed in the find_frequent_patterns(). Note that the second parameter passed to this function is the minimum support, which is 1 in this case:
patterns = fp.find_frequent_patterns(transactionSet['items'],1)
The patterns have been generated. Now let's print the patterns. The patterns list the combinations of items with their supports:
Now let's generate the rules:
Each rule has a left-hand side and a right-hand side, separated by a colon (:). It also gives us the support of each of the rules in our input dataset.