Mining Association Rules in Large Databases S1 Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Maranatha
Agenda Pendahuluan Association Rule Mining Market Basket Analysis Basic Concept Contoh Algoritma Apriori Frequent Pattern Growth (FP Growth) 2
Pendahuluan Asosiasi atau korelasi hubungan dalam sekumpulan besar data. Pendorong : Jumlah data yang dikoleksi dan disimpan oleh industri yang semakin besar. Asosiasi hubungan yang ditemukan dapat menolong dalam pembuatan keputusan bisnis seperti desain katalog dan marketing Contoh umum : market basket analysis 3
Market Basket Analysis Cust. 1 : milk, bread, cereal Cust. 2 : milk, bread, Sugar, eggs Cust. 3 : milk, bread, butter Market Analyst : Item mana yang sering dibeli bersamaan oleh customer saya? 4
Contoh Market Basket Analysis (MBA) Sales manager, ingin mengetahui kebiasaan membeli para customernya. Pertanyaan : kelompok atau item mana saja yang biasa dibeli oleh customer pada satu kali waktu belanja? MBA : diterapkan pada data retail transaksi customer. Hasil dapat digunakan untuk merencanakan strategi marketing atau advertising. 5
Contoh Penggunaan Hasil MBA Untuk menentukan layout toko. Item yang sering dibeli bersamaan ditempatkan berdekatan. Penggambaran pola dapat direpresentasikan dengan association rule. Ex. : computer => software Support = 2%, confidence = 60% 6
Contoh Penggunaan Hasil MBA Support dan confidence merupakan ukuran tingkat kemenarikan. Keduanya menunjukkan tingkat kegunaan dan keyakinan dari rule yang ada. Support 2% berarti 2% dari seluruh transaksi yang dianalisis menunjukkan bahwa computer dan software dibeli bersamaan. Confidence 60% berarti 60% customer yang membeli computer juga membeli software. Pada umumnya, suatu association rule dianggap menarik jika memenuhi minimum support dan confidence threshold tertentu yang diset oleh user / domain expert. 7
Basic concept : Istilah (1) Support({A,B}) : banyaknya transaksi yang mengandung item A dan item B Minimum Support : digunakan untuk membatasi variasi itemset 8
Basic concept : Istilah(2) Confidence (A=>B):: probabilitas (B A), dihitung sebagai sup({ A, B}) confidence ( A => B ) = sup({ A}) Jika rule ini mempunyai confidence 0.33, berarti jika A dan B terjadi dalam satu transaksi, terdapat 33% kemungkinan bahwa B juga terjadi. 9
Basic concept : Istilah (3) K-itemset : suatu itemset yang berisi k item. Ex. {computer,software} adalah 2-itemset. Frekuensi kejadian / occurrence frequency of itemset : banyaknya transaksi yang berisi itemset. Sering disebut juga sebagai frequency, support count, atau count. Rule disebut strong jika memenuhi min support dan confidence threshold. 10
Basic Concept : Contoh Total transaksi : 1000 Hammer : 50 Nails : 80 Lumber : 20 Hammer + nails : 15 Nails + lumber : 10 Hammer + lumber : 10 Hammer, nails, lumber : 5 Support u/ hammer, nails : 1,5% (15/1000) Support u/ hammer, nails, lumber : 0,5% (5/1000) Confidence hammer nails : 30% (15/50) Confidence nails hammer : 19% (15/80) Confidence hammer, nails lumber : 33% (5/15) Confidence lumber hammer, nails : 25% (5/20) 11
Step association rule mining Temukan seluruh frequent itemset Harus memenuhi minimum support yang telah ditentukan sebelumnya. Generate strong association rules dari frequent itemset Memenuhi confidence threshold 12
Transaction-idid Customer buys D Frequent Patterns & Association Rules Items bought 10 A, B, D 20 A, C, D 30 A, D, E 40 B, E, F 50 B, C, D, E, F Customer buys both confidence ( A => B ) = Customer buys A sup({ A, B}) sup({ A}) Itemset X = {x 1,, x k } Find all the rules X Y with minimum support and confidence support, s, probability that a transaction contains X Y confidence, c, conditional probability that a transaction having X also contains Y Let sup min = 50%, conf min = 50% Jumlah Transaksi : 5 Freq. Pat.: {A:3, B:3, D:4, E:3, AD:3 } Association rules (support, confidence): A D (60%, 100%) D A (60%, 75%) 13
Kekuatan dan Kelemahan AR Kekuatan : Result yang mudah dipahami dengan jelas Mendukung undirected DM Dapat dijalankan pada data yang variable length Kelemahan : Membutuhkan resource komputasi yang besarnya meningkat secara eksponensial sesuai problem yang ada Cukup sulit untuk menentukan itemset yang benar untuk dianalisis Tidak menghandle item yang jarang. 14
Algoritma Apriori & FP Growth Algoritma apriori : algoritma untuk menemukan frequent itemset dengan candidate generation. FP Growth : metode mining frequent itemset tanpa candidate generation. 15
Apriori: A Candidate Generation-and- Test Approach Apriori pruning principle: If there is any itemset which is infrequent, its superset should not be generated/tested! (Agrawal & Srikant @VLDB 94, Mannila, et al. @ KDD 94) Method: Initially, scan DB once to get frequent 1-itemset Generate length (k+1) candidate itemsets from length k frequent itemsets Test the candidates against DB Terminate when no frequent or candidate set can be generated 16
The Apriori Algorithm An An Example Sup Database TDB min = 2 Itemset sup {A} 2 L Tid Items C 1 1 10 A, C, D 20 B, C, E 30 A, B, C, E 40 B, E 1 st scan Itemset {B} 3 {C} 3 {D} 1 {E} 3 C 2 C 2 {A, B} 1 L 2 Itemset sup 2 nd scan {A, C} 2 {B, C} 2 {B, E} 3 {C, E} 2 C 3 Itemset 3 rd scan L 3 {B, C, E} sup {A, C} 2 {A, E} 1 {B, C} 2 {B, E} 3 {C, E} 2 Itemset sup {B, C, E} 2 Itemset sup {A} 2 {B} 3 {C} 3 {E} 3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} 17
The Apriori Algorithm Pseudo-code: C k : Candidate itemset of size k L k : frequent itemset of size k L 1 = {frequent items}; for (k = 1; L k!= ; k++) do begin C k+1 = candidates generated from L k ; for each transaction t in database do increment the count of all candidates in C k+1 that are contained in t L k+1 = candidates in C k+1 with min_support end return k L k ; 18
Important Details of Apriori How to generate candidates? Step 1: self-joining L k Step 2: pruning How to count supports of candidates? Example of Candidate-generation L 3 ={abc, abd, acd, ace, bcd} Self-joining: L 3 *L 3 abcd from abc and abd acde from acd and ace Pruning: acde is removed because ade is not in L 3 C 4 ={abcd} 19
Mining Frequent Patterns Without Candidate Generation Grow long patterns from short ones using local frequent items abc is a frequent pattern Get all transactions having abc : DB abc d is a local frequent item in DB abc abcd is a frequent pattern 20
Construct FP-tree from a Transaction Database TID Items bought (ordered) frequent items 100 {f, a, c, d, g, i, m, p} {f, c, a, m, p} 200 {a, b, c, f, l, m, o} {f, c, a, b, m} 300 {b, f, h, j, o, w} {f, b} 400 {b, c, k, s, p} {c, b, p} 500 {a, f, c, e, l, p, m, n} {f, c, a, m, p} Header Table 1. Scan DB once, find frequent 1-itemset (single item pattern) 2. Sort frequent items in frequency descending order, f-list 3. Scan DB again, construct FP-tree Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 F-list=f-c-a-b-m-p min_support = 3 m:2 c:3 a:3 {} f:4 c:1 b:1 p:2 m:1 b:1 b:1 p:1 21
Find Patterns Having P From P-conditional Database Starting at the frequent item header table in the FP- tree Traverse the FP-tree by following the link of each frequent item p Accumulate all of transformed prefix paths of item p to form p s s conditional pattern base Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 m:2 c:3 a:3 {} f:4 c:1 b:1 p:2 m:1 b:1 b:1 p:1 Conditional pattern bases item c f:3 a cond. pattern base fc:3 b fca:1, f:1, c:1 m p fca:2, fcab:1 fcam:2, cb:1 22
From Conditional Pattern-bases to Conditional FP-trees For each pattern-base Accumulate the count for each item in the base Construct the FP-tree for the frequent items of the pattern base Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 m:2 c:3 a:3 {} f:4 c:1 b:1 p:2 m:1 b:1 b:1 p:1 m-conditional pattern base: fca:2, fcab:1 {} f:3 c:3 a:3 m-conditional FP-tree All frequent patterns relate to m m, fm, cm, am, fcm, fam, cam, fcam 23
Benefits of the FP-tree Structure Completeness Preserve complete information for frequent pattern mining Never break a long pattern of any transaction Compactness Reduce irrelevant info infrequent infrequent items are gone Items in frequency descending order: the more frequently occurring, the more likely to be shared Never be larger than the original database (not count node-links and the count field) For Connect-4 DB, compression ratio could be over 100 24
Latihan Diberikan : Min_sup = 60% Min_conf = 80% Transaction-idid T100 T200 T300 T400 T500 Items bought K, A, B, D A, C, D, B, E C, A, B, E B, E B, A, D Carilah semua itemset frequent dengan Apriori dan FP- growth, bandingkan efisiensi keduanya Daftarkan semua strong association rules yang memenuhi : x transaksi, buys( X, item1) buys( X, item2) buys( X, item3) 25