Mining Association Rules dalam Basis Data yang Besar

advertisement
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
Download