0% found this document useful (0 votes)
11 views

Apriori Algorithm

Apriori algorithm

Uploaded by

sravyasri2806
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Apriori Algorithm

Apriori algorithm

Uploaded by

sravyasri2806
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Association:

Association rule mining is a technique used to uncover hidden relationships between


variables in large datasets. It is a popular method in data mining and machine learning
and has a wide range of applications in various fields, such as market basket analysis,
customer segmentation, and fraud detection.
The idea behind association rule mining is to determine rules, that allow us to identify
which objects may be related to a set of objects we already know. In the association
rule mining terminology, we refer to the objects as items. A common example for
association rule mining is basket analysis.
For example, if 75% of people who buy cereal also buy milk, then there is a discernible
pattern in transactional data that customers who buy cereal often buy milk. An
association rule is that there is an association between buying cereal and milk.
The types of Association Rule Mining are Single-dimensional, Multidimensional,
Quantitative, and Boolean association rules.
Classification rule mining aims to discover a small set of rules in the database that
forms an accurate classifier. Association rule mining finds all the rules existing in the
database that satisfy some minimum support and minimum confidence constraints.
Apriori algorithm :
Apriori algorithm is given by R. Agrawal and R. Srikant in 1994 for finding frequent
itemsets in a dataset for boolean association rule. Name of the algorithm is Apriori
because it uses prior knowledge of frequent itemset properties. We apply an iterative
approach or level-wise search where k-frequent itemsets are used to find k+1 itemsets.
To improve the efficiency of level-wise generation of frequent itemsets, an important
property is used called Apriori property which helps by reducing the search space.
Apriori Property –
All non-empty subset of frequent itemset must be frequent. The key concept of Apriori
algorithm is its anti-monotonicity of support measure. Apriori assumes that
All subsets of a frequent itemset must be frequent(Apriori property).
If an itemset is infrequent, all its supersets will be infrequent.
Before we start understanding the algorithm, go through some definitions which are
explained in my previous post.
Consider the following dataset and we will find frequent itemsets and generate
association rules for them.

minimum support count is 2


minimum confidence is 60%
Step-1: K=1
(I) Create a table containing support count of each item present in dataset –
Called C1(candidate set)
(II) compare candidate set item’s support count with minimum support count(here
min_support=2 if support_count of candidate set items is less than min_support then
remove those items). This gives us itemset L1.

Step-2: K=2
 Generate candidate set C2 using L1 (this is called join step). Condition of joining Lk-
1 and Lk-1 is that it should have (K-2) elements in common.

 Check all subsets of an itemset are frequent or not and if not frequent remove
that itemset.(Example subset of{I1, I2} are {I1}, {I2} they are frequent.Check for
each itemset)
 Now find support count of these itemsets by searching in dataset.
(II) compare candidate (C2) support count with minimum support count(here
min_support=2 if support_count of candidate set item is less than min_support then
remove those items) this gives us itemset L2.

Step-3:
o Generate candidate set C3 using L2 (join step). Condition of joining Lk-1 and
Lk-1 is that it should have (K-2) elements in common. So here, for L2, first
element should match.
So itemset generated by joining L2 is {I1, I2, I3}{I1, I2, I5}{I1, I3, i5}{I2, I3,
I4}{I2, I4, I5}{I2, I3, I5}
o Check if all subsets of these itemsets are frequent or not and if not, then
remove that itemset.(Here subset of {I1, I2, I3} are {I1, I2},{I2, I3},{I1, I3}
which are frequent. For {I2, I3, I4}, subset {I3, I4} is not frequent so remove
it. Similarly check for every itemset)
o find support count of these remaining itemset by searching in dataset.

(II) Compare candidate (C3) support count with minimum support count(here
min_support=2 if support_count of candidate set item is less than min_support then
remove those items) this gives us itemset L3.

Step-4:
o Generate candidate set C4 using L3 (join step). Condition of joining Lk-1 and
Lk-1 (K=4) is that, they should have (K-2) elements in common. So here, for
L3, first 2 elements (items) should match.
o Check all subsets of these itemsets are frequent or not (Here itemset
formed by joining L3 is {I1, I2, I3, I5} so its subset contains {I1, I3, I5}, which
is not frequent). So no itemset in C4
o We stop here because no frequent itemsets are found further

Thus, we have discovered all the frequent item-sets. Now generation of strong
association rule comes into picture. For that we need to calculate confidence of each
rule.
Confidence –
A confidence of 60% means that 60% of the customers, who purchased milk and bread
also bought butter.
Confidence(A->B)=Support_count(A∪B)/Support_count(A)
So here, by taking an example of any frequent itemset, we will show the rule generation.
Itemset {I1, I2, I3} //from L3
SO rules can be
[I1^I2]=>[I3] //confidence = sup(I1^I2^I3)/sup(I1^I2) = 2/4*100=50%
[I1^I3]=>[I2] //confidence = sup(I1^I2^I3)/sup(I1^I3) = 2/4*100=50%
[I2^I3]=>[I1] //confidence = sup(I1^I2^I3)/sup(I2^I3) = 2/4*100=50%
[I1]=>[I2^I3] //confidence = sup(I1^I2^I3)/sup(I1) = 2/6*100=33%
[I2]=>[I1^I3] //confidence = sup(I1^I2^I3)/sup(I2) = 2/7*100=28%
[I3]=>[I1^I2] //confidence = sup(I1^I2^I3)/sup(I3) = 2/6*100=33%
So if minimum confidence is 50%, then first 3 rules can be considered as strong
association rules.
Limitations of Apriori Algorithm
Apriori Algorithm can be slow. The main limitation is time required to hold a vast number
of candidate sets with much frequent itemsets, low minimum support or large itemsets
i.e. it is not an efficient approach for large number of datasets. For example, if there are
10^4 from frequent 1- itemsets, it need to generate more than 10^7 candidates into 2-
length which in turn they will be tested and accumulate. Furthermore, to detect frequent
pattern in size 100 i.e. v1, v2… v100, it have to generate 2^100 candidate itemsets that
yield on costly and wasting of time of candidate generation. So, it will check for many
sets from candidate itemsets, also it will scan database many times repeatedly for
finding candidate itemsets. Apriori will be very low and inefficiency when memory
capacity is limited with large number of transactions.

You might also like