Content deleted Content added
Tag: Reverted |
Citation bot (talk | contribs) Add: doi, pages. | Use this bot. Report bugs. | Suggested by Dominic3203 | Linked from User:LinguisticMystic/cs/outline | #UCB_webform_linked 93/2277 |
||
(22 intermediate revisions by 16 users not shown) | |||
Line 4:
== Overview ==
The Apriori algorithm was proposed by Agrawal and Srikant in 1994. Apriori is designed to operate on [[database]]s containing transactions (for example, collections of items bought by customers, or details of a website frequentation or [[IP address]]es<ref>{{usurped|1=[https://web.archive.org/web/20210822191810/https://deductive.com/blogs/data-science-ip-matching/ The data science behind IP address matching]}} Published by deductive.com, September 6, 2018, retrieved September 7, 2018</ref>). Other algorithms are designed for finding association rules in data having no transactions ([[Winepi]] and Minepi), or having no timestamps ([[DNA sequencing]]). Each transaction is seen as a set of items (an ''itemset''). Given a threshold <math>C</math>, the Apriori algorithm identifies the item sets which are subsets of at least <math>C</math> transactions in the database.
Apriori uses a "bottom up" approach, where frequent subsets are extended one item at a time (a step known as ''candidate generation''), and groups of candidates are tested against the data. The algorithm terminates when no further successful extensions are found.
Line 13:
'''Apriori'''(T, ε)
L<sub>1</sub> ← {large
k ← 2
'''while''' L<sub>k−1</sub> '''is not''' empty
C<sub>k</sub> ←
'''for''' transactions t '''in''' T
D<sub>t</sub> ← {c in C<sub>k</sub> : c ⊆ t}
Line 25:
k ← k + 1
'''return''' Union(L<sub>k</sub>) '''over all''' k
'''
== Examples ==
Line 41:
Consider the following database, where each row is a transaction and each cell is an individual item of the transaction:
{| class="
|-
| α || β || ε
|-
| α || β ||
|-
| &alpha
|-
| α || β || θ
|}
The association rules that can be determined from this database are the following:
# 100% of sets with α also contain β
# 50% of sets with α, β also have ε
# 50% of sets with α, β also have θ
we can also illustrate this through a variety of examples.
Line 131 ⟶ 133:
We have thus determined the frequent sets of items in the database, and illustrated how some items were not counted because one of their subsets was already known to be below the threshold.
== Limitations ==
Line 140 ⟶ 141:
Also, both the time and space complexity of this algorithm are very high: <math>O\left(2^{|D|}\right)</math>, thus exponential, where <math>|D|</math> is the horizontal width (the total number of items) present in the database.
Later algorithms such as [[Max-Miner]]<ref>{{cite journal|author=Bayardo Jr, Roberto J.|title=Efficiently mining long patterns from databases|journal=ACM SIGMOD Record |volume=27|issue=2|year=1998|pages=85–93 |doi=10.1145/276305.276313 |url=http://www.cs.sfu.ca/CourseCentral/741/jpei/readings/baya98.pdf}}</ref> try to identify the maximal frequent item sets without enumerating their subsets, and perform "jumps" in the search space rather than a purely bottom-up approach.
== References ==
|