Apriori is an algorithm for frequent item set mining and association rule learning over transactional databases. It proceeds by identifying the frequent individual items in the database and extending them to larger and larger item sets as long as those item sets appear sufficiently often in the database.

- Consider a database, D, consisting of 9 transactions.
- Suppose min. support count required is 2 (i.e. min_sup = 2/9 = 22%)
- Let minimum confidence required is 70%.
- We have to first find out the frequent itemset using Apriori algorithm.
- Then, Association rules will be generated using min. support & min. confidence.

TID | List of Items |

T100 | I1, I2, I5 |

T100 | I2, I4 |

T100 | I2, I3 |

T100 | I1, I2, I4 |

T100 | I1, I3 |

T100 | I2, I3 |

T100 | I1, I3 |

T100 | I1, I2, I3, I5 |

T100 | I1, I2, I3 |

### Step 1: Generating 1-itemset Frequent Pattern

#### Generate C2 candidates from L1

Itemset | Sup.Count |

{I1} | 6 |

{I2} | 7 |

{I3} | 6 |

{I4} | 2 |

{I5} | 2 |

#### Compare candidate support count with the minimum support count

- The set of frequent 1-itemsets, L1, consists of the candidate 1-itemsets satisfying minimum support.
- In the first iteration of the algorithm, each item is a member of the set of candidate.

### Step 2: Generating 2-itemset Frequent Pattern

#### Generate C2 candidates from L1

Itemset |

{I1, I2} |

{I1, I3} |

{I1, I4} |

{I1, I5} |

{I2, I3} |

{I2, I4} |

{I2, I5} |

{I3, I4} |

{I3, I5} |

{I4, I5} |

#### Scan D for count of each candidate

Itemset | Sup. Count |

{I1, I2} | 4 |

{I1, I3} | 4 |

{I1, I4} | 1 |

{I1, I5} | 2 |

{I2, I3} | 4 |

{I2, I4} | 2 |

{I2, I5} | 2 |

{I3, I4} | 0 |

{I3, I5} | 1 |

{I4, I5} | 0 |

#### Compare candidate support count with minimum support count

Itemset | Sup. Count |

{I1, I2} | 4 |

{I1, I3} | 4 |

{I1, I5} | 2 |

{I2, I3} | 4 |

{I2, I4} | 2 |

{I2, I5} | 2 |

- To discover the set of frequent 2-itemsets, L2 , the algorithm uses L1 Join L1 to generate a candidate set of 2-itemsets, C2.
- Next, the transactions in D are scanned and the support count for each candidate itemset in C2 is accumulated (as shown in the middle table).
- The set of frequent 2-itemsets, L2, is then determined, consisting of those candidate 2-itemsets in C2 having minimum support.
**Note: We haven’t used Apriori Property yet.**

### Step 3: Generating 3-itemset Frequent Pattern

#### Scan D for count of each candidate

Itemset |

{I1, I2, I3} |

{I1, I2, I5} |

#### Scan D for count of each candidate

Itemset | Sup. Count |

{I1, I2, I3} | 2 |

{I1, I2, I5} | 2 |

#### Compare candidate support count with min support count

Itemset | Sup. Count |

{I1, I2, I3} | 2 |

{I1, I2, I5} | 2 |

- The generation of the set of candidate 3-itemsets, C3, involves use of the Apriori Property.
**In order to find C3, we compute L2 Join L2.**

C3 = L2 Join L2 = {{I1, I2, I3}, {I1, I2, I5}, {I1, I3, I5}, {I2, I3, I4}, {I2, I3, I5}, {I2, I4, I5}}.- Now, Join step is complete and Prune step will be used to reduce the size of C3. Prune step helps to avoid heavy computation due to large Ck.
- Based on the Apriori property that all subsets of a frequent itemset must also be frequent, we can determine that four latter candidates cannot possibly be frequent. How?
- For example , lets take {I1, I2, I3}. The 2-item subsets of it are {I1, I2}, {I1,I3} & {I2, I3}. Since all 2-item subsets of {I1, I2, I3} are members of L2, We will keep {I1, I2, I3} in C3.
- Lets take another example of {I2, I3, I5} which shows how the pruning is performed. The 2-item subsets are {I2, I3}, {I2, I5} & {I3,I5}.
- BUT, {I3, I5} is not a member of L2 and hence it is not frequent violating Apriori Property. Thus We will have to remove {I2, I3, I5} from C3.
- Therefore, C3 = {{I1, I2, I3}, {I1, I2, I5}} after checking for all members of result of Join operation for Pruning.
- Now, the transactions in D are scanned in order to determine L3, consisting of those candidates 3-itemsets in C3 having minimum support.

#### Step 4: Generating 4-itemset Frequent Pattern

The algorithm uses L3 Join L3 to generate a candidate set of 4-itemsets, C4. Although the join results in {{I1, I2, I3, I5}}, this itemset is pruned since its subset {{I2, I3, I5}}

is not frequent.

Thus, C4 = φ, and algorithm terminates, having found all of the frequent items. This completes our Apriori Algorithm.

What’s Next?

These frequent itemsets will be used to generate strong association rules ( where strong association rules satisfy both minimum support & minimum confidence).

#### Step 5: Generating Association Rules from Frequent Itemsets

Procedure:

For each frequent itemset “l”, generate all nonempty subsets of l.

For every nonempty subset s of l, output the rule “s ⇒ (l-s)” if support_count(l) support_count(s) >= min_conf where min_conf is minimum confidence threshold.

Back To Example:

We had L = {{I1}, {I2}, {I3}, {I4}, {I5}, {I1,I2}, {I1,I3}, {I1,I5}, {I2,I3},{I2,I4}, {I2,I5}, {I1,I2,I3}, {I1,I2,I5}}.

Lets take l = {I1,I2,I5}.

Its all nonempty subsets are {I1,I2}, {I1,I5}, {I2,I5}, {I1}, {I2}, {I5}.

#### Step 5: Generating Association Rules from Frequent Itemsets

Let minimum confidence threshold is , say 70%.

• The resulting association rules are shown below,

each listed with its confidence.

– R1: I1 ^ I2 ⇒ I5

• Confidence = sc{I1,I2,I5}/sc{I1,I2} = 2/4 = 50%

• R1 is Rejected.

– R2: I1 ^ I5 ⇒ I2

• Confidence = sc{I1,I2,I5}/sc{I1,I5} = 2/2 = 100%

• R2 is Selected.

– R3: I2 ^ I5 ⇒ I1

• Confidence = sc{I1,I2,I5}/sc{I2,I5} = 2/2 = 100%

• R3 is Selected.

– R4: I1 ⇒ I2 ^ I5

• Confidence = sc{I1,I2,I5}/sc{I1} = 2/6 = 33%

• R4 is Rejected.

– R5: I2 ⇒ I1 ^ I5

• Confidence = sc{I1,I2,I5}/{I2} = 2/7 = 29%

• R5 is Rejected.

– R6: I5 ⇒ I1 ^ I2

• Confidence = sc{I1,I2,I5}/ {I5} = 2/2 = 100%

• R6 is Selected.

In this way, We have found three strong association rules.