Mining Association Rules dalam Basis Data yang Besar S1 Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Maranatha Agenda Pendahuluan Association Rule Mining Market Basket Analysis Konsep Dasar Contoh Algoritma Apriori Frequent Pattern Growth (FP Growth) 2 1
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 Analis : Item mana yang sering dibeli bersamaan oleh customer saya? 4 2
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 3
Contoh Penggunaan Hasil MBA Support dan confidence merupakan ukuran tingkat kemenarikan. Keduanya menunjukkan tingkat kegunaan dan keyakinan dari rule yang ada. Support 2% berarti2% dariseluruhtransaksiyang dianalisismenunjukkanbahwacomputer dansoftware 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 tertentuyang disetolehuser / domain expert. 7 Konsep Dasar : Istilah(1) Support({A,B}): banyaknyatransaksiyang mengandungitem A danitem B Minimum Support : digunakan untuk membatasi variasi itemset 8 4
Basic concept : Istilah(2) Confidence(A=>B): probabilitas(b A), dihitung sebagai sup({ A, B}) confidence ( A => B) = sup({ A}) Jikarule inimempunyaiconfidence 0.33, berartijikaa danb terjadidalamsatu 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 5
Konsep Dasar : 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 Langkah Langkah dalam Association Rule Mining Temukan seluruh frequent itemset Harus memenuhi minimum support yang telah ditentukan sebelumnya. Generate association rules yang kuat dari frequent itemset Memenuhi confidence threshold 12 6
Frequent Patterns & Association Rules Transaction-idid Customer buys both 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 A Customer buys D sup({ A, B}) confidence ( A => B ) = sup({ A}) ItemsetX = {x 1,, x k } Find all the rules X Ywith minimum support and confidence support, s, probabilitythat 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 meningkatsecaraeksponensialsesuaiproblem yang ada Cukup sulit untuk menentukan itemset yang benar untuk dianalisis Tidak bisa menangani item yang jarang. 14 7
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 Prinsip apriori pruning:jika terdapat semua itemset yang jarang frekuensinya, superset dari itemset tersebut tidak perlu dibuat / dites! (Agrawal& Srikant@VLDB 94, Mannila, et al. @ KDD 94) Metode: Awalnya, scan basis data sekali untuk mendapatkan 1-itemset yang sering muncul Membuat kandidat itemset dengan panjang (k+1) dari itemset k yan gsering muncul Tes kandidat tersebut terhadap basis data Berhenti saat tidak ada set atau kandidat yang sering muncul sudah tidak dapat dibuat lagi 16 8
Algoritma Apriori- Contoh 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 Algoritma Apriori 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 9
Detil penting dari Apriori Bagaimana untuk menghasilkan kandidat? Langkah 1: self-joining L k Langkah 2: pruning Bagaimana cara menghitung support dari para kandidat? Contoh dari cara menghasilkan kandidat L 3 ={abc, abd, acd, ace, bcd} Self-joining: L 3 *L 3 abcdfrom abcand abd acdefrom acdand ace Pruning: acdeis removed because adeis not in L 3 C 4 ={abcd} 19 Mining Frequent Patterns Without Candidate Generation Menumbuhkan pola pola yang panjang dari yang pendek dengan item lokal yang sering muncul abc adalah pola yang sering muncul Mengambil semua transaksi yg mengandung abc : DB abc d adalah pola lokal yang sering muncul di DB abc abcd adalah sebuah pola yang sering muncul 20 10
Konstruksi FP-treedari sebuah Basis Data Transaksi 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 sekali, temukan 1- itemset yang sering muncul (pola satu item) 2. Urutkan item yang sering muncul dalam urutan menurun, f-list 3. Scan DB lagi, konstruksi FPtree Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 min_support = 3 {} f:4 c:1 c:3 a:3 b:1 b:1 p:1 m:2 b:1 F-list=f-c-a-b-m-p 21 p:2 m:1 Menenukan Pola Pola yang Memiliki P dari DB Kondisional P Dimulai dari item yang sering muncul dari FP-tree Runut FP-tree dengan mengikuti setiap link dari setiap item yang sering muncul p Akumulasi setiap transformed prefix path dari item p untuk membentuk basis pola p Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 DM-MA/S1IF/FIT/UKM/2010 {} f:4 c:1 c:3 a:3 b:1 b:1 p:1 m:2 p:2 b:1 m:1 Conditional pattern bases item cond. pattern base c f:3 a fc:3 b fca:1, f:1, c:1 m fca:2, fcab:1 p fcam:2, cb:1 22 11
Dari basis Pola Kondisional ke FP-trees Kondisional Untuk setiap basis pola Akumulasi count dari setiap item dalam basis Konstruksi FP-tree untuk item yang sering muncul dari basis pola 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 23 All frequent patterns relate to m m, fm, cm, am, fcm, fam, cam, fcam Keuntungan dari FP-tree Structure Lengkap Menyimpan informasi yang lengkap dari mining pola yang sering muncul Tidak pernah memutus sebuah pola yang panjang dari setiap transaksi Padat Mengurangi info yang tidak relevan item yang jarang muncul hilang Item disusun denga urutan menurun: semakin sering muncul, semakin mungkin dibagi dengan yang lain Tidak pernah lebih besar dari DB asal (tidak menghitung nodelinks dan hitungan field) Untuk DB jenis Connect-4, rasio kompresi sampai lebih dari 100 24 12
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 Carilahsemuaitemsetfrequent denganaprioridanfp-growth, bandingkan efisiensi keduanya Daftarkan semua strong association rules yang memenuhi: x transaksi, buys( X, item1) buys( X, item2) buys( X, item3) 25 13