Escolar Documentos
Profissional Documentos
Cultura Documentos
Mining Association Rules between Sets of Items in Large Databases (R. Agrawal, T. Imielinski & A. Swami) 1993. Fast Algorithms for Mining Association Rules (R. Agrawal & R. Srikant) 1994.
Basket Data
Retail organizations, e.g., supermarkets, collect and store massive amounts sales data, called basket data. A record consist of transaction date items bought Or, basket data may consist of items bought by a customer over a period.
Example Queries
Find all the rules that have Uluda Gazozu as consequent. Find all rules that have Diet Coke in the antecedent. Find all rules that have sausage in the antecedent and mustard in the consequent. Find all the rules relating items located on shelves A and B in the store. Find the best (most confident) k rules that have Uluda Gazozu in the consequent.
Formal Model
I = i1, i2, , im: set of literals (items) D : database of transactions T D : a transaction. T I TID: unique identifier, associated with each T X: a subset of I T contains X if X T.
Association rule: X Y here X I, Y I and X Y = . Rule X Y has a confidence c in D if c% of transactions in D that contain X also contain Y. Rule X Y has a support s in D if s% of transactions in D contain X Y.
Example
1 {{cucumber, parsley, onion, tomato, salt, bread}, 2 {tomato, cucumber, parsley}, 3 {tomato, cucumber, olives, onion, parsley}, 4 {tomato, cucumber, onion, bread}, 5 {tomato, salt, onion}, 6 {bread, cheese} 7 {tomato, cheese, cucumber} 8 {bread, butter}}
Problem
Given a set of transactions, Generate all association rules that have the support and confidence greater than the user-specified minimum support (minsup) and minimum confidence (minconf).
Problem decomposition
1. Find all itemsets that have transaction support above minimum support. 2. Use the large itemsets to generate the Association rules: 2 1. For every large itemset I, find its all subsets 2.2. For every subset a, output a rule: a (I - a) if minconf e support(l)
support(a)
Apriori Algorithm
L1 = { large 1-itemsets } for (k=2; Lk-1{; k++) do begin Ck = apriori-gen(Lk-1); // New candidates forall transactions t D do begin Ct = subset (Ck, t) // Candidates contained in t forall candidates c Ct do c.count++ end Lk = {c Ct | c.count u minsup} end Return
k Lk
Go thru all transactions in D, increment the counts of all itemsets in Ck Lk is the set of all large itemsets in Ck For minsup s=30%,
L= {{bread}, {cheese}, {cucumber}, {onion}, {parsley}, {salt}, {tomato}, {cucumber, onion}, {cucumber, parsley}, {cucumber, tomato}, {onion, tomato}, {parsley, tomato}, {cucumber, parsley, tomato}}
Subset Function
Subset (Ck, t): candidate itemsets contained in t Candidate itemsets in Ck are stored in a hash-tree Leaf node: contains a list of itemsets Interior node: contains a hash table Each bucket points to another node Depth of root = 1 Buckets of a node at depth d points to nodes at depth d+1
After constructing the hash-tree for Ck, subset function finds candidates contained in t as follows: At a leaf, find itemsets contained in t At an interior node reached by hashing on item i, hash on each item that comes after i in t, recursively apply to the nodes in the corresponding bucket At root, hash on every item in t.
AprioriTid Algorithm
Uses apriori-gen to generate candidates Database D is not used for counting support after the first pass The set Ck is used, for this purpose Elements of Ck are in the form <TID, {Xk}> where each Xk is a potentially large k-itemset present in the transaction with identifier TID. The member of Ck corresponding to transaction t is <t.TID, {c Ck | c contained in t}>
Example
minsup = 2 transactions, s=50
D: TID Items L1: Itemset Sup C1: TID Set-of-Itemsets 100 1 3 4 {1} 2 100 {{1},{3},{4}} 200 2 3 5 {2} 3 200 {{2},{3},{5}} 300 1 2 3 5 {3} 3 300 {{1},{2},{3},{5}} 400 2 5 {5} 3 400 {{2},{5}} C2={{100,{{1,3}}},{200,{{2,3},{2,5},{3,5}}, {300,{{2,3},{2,5},{3,5}}, {400,{{2,5}}}} L2={{1,3}, {2,3}, {2,5}, {3,5}}
Performance
Example: HW: IBM RS/6000, 33MHz Dataset: Number of Items: 1000 Avg. size of transactions: 10 Avg. size of maximal potentially large items: 4 Number of transactions: 100K Data size: 4.4 MBytes
AprioriHybrid Algorithm
Uses Apriori in the initial passes and switches to AprioriTid when it expects that the set Ck at the end of the pass will fit in memory.
Apriori, AprioriTid and AprioriHybrid algorithms presented Future work: use is-a hirarchies (e.g., beef is-a red-meat is-a meat) use quantities of items bought This work is in the context of Quest Project of IBM