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% 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 Konsep Dasar : Istilah (1) • Support({A,B}) : banyaknya transaksi yang mengandung item A dan item B • Minimum Support : digunakan untuk membatasi variasi itemset 8 4 Basic concept : Istilah(2) • Confidence (A=>B): probabilitas (B|A), dihitung sebagai confidence( A => B ) = • sup({ 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 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--id Transaction Items bought • Itemset X = {x1, …, xk} 10 A, B, D • 20 A, C, D 30 A, D, E 40 B, E, F 50 B, C, D, E, F 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 Customer buys both Customer buys A Customer buys D confidence ( A => B ) = sup({ A , B }) sup({ A}) Let supmin = 50%, confmin = 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 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 Database TDB Tid 10 20 30 40 L2 Supmin = 2 C1 Items A, C, D B, C, E A, B, C, E B, E Itemset {A, C} {B, C} {B, E} {C, E} C3 1st scan C2 sup 2 2 3 2 Itemset {B, C, E} Itemset {A} {B} {C} {D} {E} Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} 3rd scan sup 2 3 3 1 3 sup 1 2 1 2 3 2 L3 Itemset {A} {B} {C} {E} L1 C2 2nd scan Itemset {B, C, E} sup 2 3 3 3 Itemset {A, B} {A, C} {A, E} {B, C} {B, E} {C, E} sup 2 17 Algoritma Apriori • Pseudo-code: Ck: Candidate itemset of size k Lk : frequent itemset of size k L1 = {frequent items}; for (k = 1; Lk !=∅; k++) do begin Ck+1 = candidates generated from Lk; for each transaction t in database do increment the count of all candidates in Ck+1 that are contained in t Lk+1 = candidates in Ck+1 with min_support end return ∪k Lk; 18 9 Detil penting dari Apriori • Bagaimana untuk menghasilkan kandidat? • • Langkah 1: self-joining Lk Langkah 2: pruning • Bagaimana cara menghitung support dari para kandidat? • Contoh dari cara menghasilkan kandidat • • L3={abc, abd, acd, ace, bcd} Self-joining: L3*L3 • • abcd from abc and abd acde from acd and ace • Pruning: • C4={abcd} • acde is removed because ade is not in L3 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-tree dari sebuah Basis Data Transaksi TID 100 200 300 400 500 Items bought (ordered) frequent items {f, a, c, d, g, i, m, p} {f, c, a, m, p} {a, b, c, f, l, m, o} {f, c, a, b, m} min_support = 3 {b, f, h, j, o, w} {f, b} {b, c, k, s, p} {c, b, p} {a, f, c, e, l, p, m, n} {f, c, a, m, p} {} Header Table 1. Scan DB sekali, temukan 1itemset yang sering muncul f:4 c:1 Item frequency head (pola satu item) f 4 2. Urutkan item yang sering c 4 c:3 b:1 b:1 muncul dalam urutan a 3 menurun, f-list b 3 a:3 p:1 3 3. Scan DB lagi, konstruksi FP- m tree p 3 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 Conditional pattern bases f:4 c:3 b:1 a:3 c:1 item cond. pattern base b:1 c f:3 a fc:3 b fca:1, f:1, c:1 m fca:2, fcab:1 p fcam:2, cb:1 p:1 m:2 b:1 p:2 m: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 m-conditional pattern base: Header Table Item frequency head f 4 c 4 a 3 b 3 m 3 p 3 fca:2, fcab:1 {} f:4 c:3 {} c:1 b:1 a:3 b:1 p:1 m:2 b:1 p:2 m:1 f:3 c:3 All frequent patterns relate to m m, fm, cm, am, fcm, fam, cam, fcam a:3 m-conditional 23 FP-tree 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 : Transaction--id Transaction Items bought Min_sup = 60% T100 K, A, B, D Min_conf = 80% T200 A, C, D, B, E T300 C, A, B, E T400 B, E T500 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 , item 2) ⇒ buys ( X , item3) 25 13