Download Data Mining- Bab 5 Analisis Asosiasi

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
BAB 5 ANALISIS ASOSIASI
Pendahuluan
Analisis asosiasi (association analysis) berguna untuk mengungkap
hubungan yang menarik yang tersembunyi dalam dataset besar. Hubungan yang
terungkap tersebut dapat direpresentasikan dalam bentuk aturan asosiasi
(association rules) atau himpunan item yang sering muncul (sets of frequent
items).
Tabel 5.1 Contoh transaksi belanja
TID
1
2
3
4
5
Item
{Bread, Milk}
{Bread, Diapers, Beer, Eggs}
{Milk, Diapers, Beer, Cola}
{Bread, Milk, Diapers, Beer}
{Bread, Milk, Diapers, Cola}
Sebagai contoh, berikut ini merupakan aturan yang dapat di-ekstrak dari
dataset yang transaksi belanja (market basket transaction) pada Tabel 5.1.
{Diapers} Æ {Beer}
Aturan di atas menunjukkan terdapat hubungan yang kuat antara penjualan
diapers dengan beer, karena banyak pembeli yang membeli diapers juga membeli
beer.
Selain data transaksi belanja, analisis asosiasi juga dapat diterapkan pada
domain masalah lainnya seperti bioinformatika, diagnosis medis, Web Mining,
dan analisis data scientifik. Meskipun teknik-teknik yang disajikan di sini secara
umum dapat diterapkan ke berbagai dataset yang lebih luas, namun untuk
mengilustasikan analisis asosiasi dalam modul ini hanya menggunakan data
transaksi belanja.
5.1 Definisi Masalah
Pada bagian ini akan dilihat kembali terminologi yang digunakan dalam
analisis asosiasi dan menyatakan pekerjaan asosiasi secara formal.
•
Binary Representation. Data transaksi belanja dapat dinyatakan dalam format
biner seperti ditunjukkan pada Tabel 5.2, dimana setiap baris menunjukkan
transaksi dan masing-masing kolom menunjukkan item. Item dapat
diperlakukan seperti variabel biner yang bernilai 1 jika item tersebut terdapat
dalam transaksi dan 0 jika selainnya.
•
Itemset. Ditetapkan I= {i1,i2, …., id} merupakan himpunan semua item dalam
data transaksi belanja dan T = {t1,t2, …., tN} merupakan himpunan semua
transaksi. Setiap transaksi ti mengandung subset item yang dipilih dari I.
Dalam analisis asosiasi, koleksi nol atau lebih item disebut itemset. Jika
itemset berisi k item, maka disebut k-itemset. Contoh, {Beer, Diapers, Milk}
adalah 3-itemset. Set null atau kosong adalah itemset yang tidak berisi item.
Modul Kuliah Data Mining
88
Tabel 5.2 Representasi biner data transaksi belanja
•
Transaction Width didefinisikan sebagai jumlah item yang terdapat dalam
sebuah transaksi. Transaksi tj dikatakan mengandung itemset X jika X
merupakan subset dari tj. Contoh , pada transaksi kedua dalam Tabel 5.2
mengandung itemset {Bread, Diapers} namun tidak mengandung itemset {Bread,
Milk}.
•
Support Count adalah jumlah transaksi yang mengandung itemset tertentu.
Secara matematik support count σ(X) dinyatakan sebagai
σ (X) =| {t i | X ⊆ t i , t i ∈ T} | ,
Dimana simbol |.| menyatakan jumlah elemen dalam set. Dalam data pada
Tabel 2, support count untuk {Beer, Diapers, Milk} adalah dua (2) karena hanya
dua transakasi yang mengandung ketiga item tersebut.
•
Aturan Asosiasi (Association Rule) adalah ekspresi implikasi yang
dinyatakan dalam bentuk XÆ Y, dimana X dan Y adalah itemset terpisah
(disjoint) yaitu X ∩ Y= Ø. Kekuatan aturan asosiasi dapat diikur dengan
support dan confidence. Support menentukan seberapa sering aturan tersebut
diterapkan dalam dataset, sedangkan Confidence menentukan frekuensi item
dalam Y muncul dalam transaksi yang mengandung X. Defini formal dari
keduanya adalah
Support, s(X → Y ) =
σ (X ∪ Y)
Confidence, c(X → Y ) =
N
;
σ (X ∪ Y)
X
Contoh 5.1:
Perhatikan aturan {Milk, Diapers} Æ {Beer}. Karena support count untuk {Milk,
adalah 2 dan jumlah total transaksi adalah 5, maka support bagi
aturan tersebut adalah 2/5 = 0.4. Confidence didapat dengan membagi support
count untuk {Milk, Diapers, Beer} dengan support count untuk {Milk, Diapers}, yaitu
2/3 = 0.67
Diapers, Beer}
•
Formulasi Masalah Association Rule Mining. Permasalahan association rule
dapat dinyatakan secara formal sebagai berikut
Definisi 5.1: (Association Rule Discovery)
Diberikan sebuah himpunan transaksi T, cari semua aturan yang memiliki
support ≥ minsup dan confidence ≥ minconf dimana minsup dan minconf
merupakan nilai ambang (treshold) bagi support dan confidence.
Modul Kuliah Data Mining
89
Jika dilakukan secara brute-force, maka total aturan yang mungkin di-ekstrak
dari dataset yang berisi d item adalah R= 3d – 2d+1 + 1, sehingga pendekatan
brute-force tidak mungkin dilakukan. Strategi yang sering diambil untuk
menyelesaikan permasalahan association rule discovery adalah dengan
memecah masalah tersebut ke dalam dua pekerjaan utama, yaitu
1.1. Pembangkitan Frequent Itemset, bertujuan untuk mencari semua itemset
yang memenuhi nilai ambang minsup. Itemset ini disebut frequent itemset.
1.2. Pembangkitan Aturan, bertujuan untuk meng-ekstrak seluruh aturan yang
memiliki confidence tinggi dari frequent itemset yang telah ditemukan
pada pekerjaan sebelumnya. Aturan yang memiliki confidence tinggi
disebut strong rules.
Secara umum pekerjaan pembangkitan frequent itemset memerlukan
sumberdaya komputasi yang lebih besar dibanding pekerjaan pembangkitan
aturan.
5.2 Pembangkitan Frequent Itemset
Misal terdapat itemset I = {a,b,c,d,e} daftar seluruh itemset yang mungkin
dibentuk dari itemset I dapat dilihat pada Gambar 5.1.
Gambar 5.1 Itemset Lattice
Umumnya, sebuah dataset yang mengandung k item dapat membangkitkan 2k-1
frequent itemset. Karena pada banyak aplikasi ukuran k sangat besar, maka ruang
pencarian itemset yang perlu dijelajahi membesar secara eksponensial. Jika
mengunakan pendekatan brute-force, maka kita harus menghitung support count
untuk seluruh candidate itemset dalam struktur lattice seperti diperlihatkan pada
Gambar 5.2.
Modul Kuliah Data Mining
90
Gambar 5.2 Menghitung support bagi candidate itemset.
Dalam Gambar 5.2 terlihat jika candidate itemset terdapat dalam transaksi, maka
nilai support count-nya akan dinaikkan. Sebagai contoh, support untuk {Bread, Milk}
dinaikkan tiga kali karena itemset tersebut terkandung dalam transaksi 1, 4 dan 5.
Pendekatan ini sangat mahal karena memerlukan pembandingan sebesar O(NMw),
dimana N adalah jumlah transaksi, M = 2k-1 adalah jumlah candidate itemset,
dan w adalah transaction width maksimum.
Ada beberapa beberapa cara untuk mengurangi kompleksitas komputasi dalam
pembangkitan frequent itemset, yaitu
1. Mengurangi jumlah candidate itemset (M). Prinsip apriori, akan dijelaskan
kemudian, merupakan cara yang efektif untuk menghilangkan beberapa
candidate itemset tanpa perlu menghitung nilai support-nya.
2. Mengurangi jumlah pembandingan. Daripada mencocokkan setiap
candidate itemset dengan setiap transaksi, kita dapat mengurangi jumlah
pembandingan dengan menggunakan struktur data lanjut, baik untuk
menyimpan candidate itemset atau untuk melakukan kompresi dataset.
5.2.1
Prinsip Apriori
Penggunaan support untuk memangkas (pruning) candidate itemset
dilakukan dengan mengikuti prinsip berikut
Teorema 5.1: (Prinsip Apriori)
Jika sebuah itemset sering muncul, maka seluruh subset dari itemset tersebut juga
harus sering muncul (If an itemset is frequent, then all of the subsets must also be
frequent).
Contoh 5.2:
Pada struktur lattice di Gambar 5.3 misal {c,d,e} adalah frequent itemset,
maka seluruh subset dari {c,d,e}- yaitu node yang abu-abu, juga harus sering
muncul (frequent). Sebaliknya jika itemset {a,b} jarang muncul (infrequent), maka
seluruh superset-nya juga harus jarang muncul sehingga dapat dipangkas (Gambar
5.4).
Strategi pemotongan ruang pencarian yang berdasarkan pada ukuran support
disebut support-based pruning. Dalam strategi ini nilai support untuk itemst tidak
pernah melebihi support subset-nya, sifat ini dikenal sebagai anti-monotone.
Modul Kuliah Data Mining
91
Gambar 5.3 Jika {c,d,e} frequent maka seluruh subset-nya juga harus frequent.
Gambar 5.4 Jika {a,b} infrequent maka seluruh supersetnya juga infrequent.
Definisi 5.2: (Monotonicity Property).
Ditetapkan I adalah sebuah set item, dan J=2I adalah pangkat dari I. Ukuran f
bersifat monoton (atau upward closed) jika
∀X, Y ∈ J : (X ⊆ Y) → f (X) ≤ f (Y) ,
yang bermakna jika X adalah subset dari Y, maka f(X) harus tidak melebihi f(Y).
Sebaliknya f bersifat anti-monoton (atau downward closed) jika
∀X, Y ∈ J : (X ⊆ Y) → f (Y) ≤ f (X) ,
yang bermakna jika X adalah subset dari Y, maka f(Y) harus tidak melebihi f(X).
Modul Kuliah Data Mining
92
5.2.2
Pembangkitan Frequent Itemset dalam Algoritma Apriori
Apriori merupakan algoritma association rule mining pertama yang
mempelopori pengunaan pemangkasan itemset berdasarkan nilai support (supportbased pruning) untuk secara sistematis mengendalikan pertumbuhan candidate
itemset yang tumbuh secara eksponensial. Gambar 5.5 memberikan ilustrasi
pembangkitan frequent itemset dalam algoritma Apriori untuk transaksi yang
terdapat di Tabel 5.1.
Gambar 5.5 Pembangkitan frequent itemset menggunakan program Apriori
(Treshold 60 % atau support count = 3)
Awalnya, setiap item dianggap sebagai candidate 1-itemset. Setelah
menghitung support untuk setiap item maka candidate itemset {Cola} dan {Eggs}
dibuang karena kemunculan itemset tersebut lebih sedikit dari tiga.
Pada iterasi berikutnya, candidate 2-itemset dibangkitkan hanya dengan
menggunakan frequent 1-itemset karena prinsip Apriori menjamin bahwa seluruh
superset dari infrequent 1-itemset pastilah juga infrequent. Karena hanya ada
⎛ 4⎞
empat frequent 1-itemset, maka jumlah candidate 2-itemset adalah ⎜⎜ ⎟⎟ = 6.
⎝ 2⎠
Dua dari enam candidate 2-itemset yaitu {Beer, Bread} dan {Beer, Milk}
ternyata setelah dihitung nilai support-nya ternyata infrequent. Karena yang
tersisa hanya empat kandidat, maka digunakan untuk membangkitkan candidate
3-itemset.
Tingkat ke-efektif-an strategi pemangkasan Apriori dapat ditunjukkan
dengan menghitung jumlah candidate itemset yang dihasilkan. Strategi bruteforce untuk mencacah seluruh itemset (sampai ukuran 3) menghasilkan kandidat
sebanyak
Modul Kuliah Data Mining
93
⎛ 6⎞ ⎛ 6⎞ ⎛ 6⎞
⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ = 6 + 15 + 20 = 41
⎝ 1⎠ ⎝ 2⎠ ⎝ 3⎠
Dengan prinsip Apriori, jumlah kandidat yang dihasilkan berkurang menjadi
⎛ 6⎞ ⎛ 4⎞
⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + 1 = 6 + 6 + 1 = 13
⎝1⎠ ⎝ 2⎠
Pseudocode untuk membangkitkan frequent itemset sebagai bagian dari algoritma
Apriori disajikan dalam Algoritma 5.1.
Algoritma 5.1. Pembangkitan Frequent Itemset dalam algoritma Apriori
Ditetapkan Ck menunjukkan candidate k-itemset dan Fk menunjukkan frequent kitemset.
•
Algoritma ini pada awalnya menghitung support untuk setiap item. Hasil
tahap ini adalah frequent 1-itemset F1 (Langkah 1 dan 2).
•
Berikutnya, algoritma secara iteratif akan membangkitkan candidate k-itemset
baru menggunakan frequent (k-1)itemset yang ditemukan pada iterasi
sebelumnya. (Langkah 5). Pembangkitan candidate itemset dilakukan
menggunakan fungsi apriori-gen yang akan dijelaskan pada Bagian 2.3
•
Untuk menghitung support dari kandidat, algoritma perlu membaca kembali
dataset (Langkah 6-10). Fungsi subset digunakan untuk menentukan semua
candidate itemset dalam Ck yang terkandung dalam setiap transaksi t.
Implementasi dari fungsi ini akan dibahas pada Bagian 2.4
•
Setelah menghitung support bagi candidate itemset maka algoritma akan
menghilangkan semua candidate itemset dengan nilai support count kurang
dari minsup (Langkah 12)
•
Algoritma berhenti ketika tidak ada lagi frequent itemset baru yang dihasilkan,
yaitu Fk = Ø (Langkah 13)
5.2.3
Candidate Generation dan Prunning
Fungsi apriori-gen yang ditunjukkan dalam Langkah 5 pada Algoritma 1
membangkitkan candidate itemset dengan melakukan dua operasi berikut:
Modul Kuliah Data Mining
94
1. Candidate Generation. Operasi ini membangkitkan candidate k-itemset baru
berdasarkan frequent (k-1)itemset yang ditemukan pada iterasi sebelumnya
2. Candidate Pruning. Operasi ini menghilangkan beberapa candidate k-itemset
menggunakan strategi pemangkasan berdasarkan nilai support.
Sebagai ilustrasi operasi pemangkasan kandidat, perhatikan candidate k-itemset
X={i1,i2,….,ik}. Algoritma harus menentukan apakah seluruh subset X-{ij}
(∀ j = 1,2,...., k ) frequent. Jika satu diantara subset tersebut infrequent, maka X
segera dipangkas. Pendekatan ini secara efektif mengurangi jumlah candidate
itemset yang dipertimbangkan selama penghitungan support. Kompleksitas
operasi ini adalah O(k) untuk setiap candidate k-itemset. Namun seperti
ditunjukkan kemudian, kita tidak perlu memeriksa seluruh k subset dari candidate
itemset. Jika m dari k subset telah digunakan untuk membangkitkan kandidat, kita
hanya perlu memeriksa sisa k-m subset selama pemangkasan kandidat.
Secara prinsip, terdapat beberapa cara untuk membangkitkan candidate
itemset. Berikut ini adalah persyaratan bagi prosedur pembangkitan kandidat
secara efektif:
1. Prosedur harus menghindari membangkitkan terlalu banyak kandidat yang
tidak perlu. Candidate itemset dinyatakan tidak perlu jika paling tidak satu
subset-nya infrequent.
2. Prosedur hraus menjamin bahwa himpunan kandidat adalah lengkap, yaitu
tidak ada frequent itemset yang tertinggal. Untuk menjamin kelengkapan,
himpunan candidate itemset harus memasukkan himpunan semua frequent
itemset, yaitu ∀k : Fk ⊆ Ck
3. Prosedur seharusnya tidak membangkitkan candidate itemset yang sama lebih
dari sekali. Sebagai contoh, candidate itemset {a,b,c,d} dapat dibangkitkan
dalam beberapa cara – dengan menggabung {a,b,c} dengan {d},{b,d} dengan
{a,c}, {c} dengan {a,b,d} dan sebagainya. Pembangkitan kandidat yang
duplikat menyebabkan pemborosan sumberdaya komputasi dan tidak efisien.
Berikutnya, akan dijelaskan beberapa prosedur pembangkitan
kandidat, termasuk yang digunakan dalam fungsi apriori-gen.
1. Metode Brute-Force
Metode Brute-Force mempertimbangkan semua k-itemset sebagai kandidat
potensial
dan kemudian menerapkan pemangkasan kandidat untuk
menghilangkan kandidat yang tidak perlu (Gambar 5.6). Jumlah candidate
⎛d ⎞
itemset yang dibangkitkan pada level k adalah ⎜⎜ ⎟⎟ dimana d adalah total
⎝k ⎠
jumlah item. Meskipun metode ini terlihat sederhana, namun proses
pemangkasan kandidat akan memerlukan sumberdaya komputasi yang besar
karena banyaknya itemset yang harus diperiksa. Komputasi yang diperlukan
untuk setiap kandidat adalah O(k), sehingga kompleksitas keseluruhan dari
⎛ d
⎛ d ⎞⎞
metode ini adalah O⎜⎜ ∑ k × ⎜⎜ ⎟⎟ ⎟⎟ = O d ⋅ 2 d −1 .
⎝ k =1 ⎝ k ⎠ ⎠
(
Modul Kuliah Data Mining
)
95
Gambar 5.6 Metode brute-force untuk membangkitkan candidate 3-itemset
2. Fk-1 × F1 Method
Metode alternatif untuk membangkitkan kandidat adalah dengan memperluas
masing-masing frequent (k-1)itemset dengan frequent itemset lainnya. Gambar
5.7 merupakan ilustrasi bagaimana frequent 2-itemset seperti {Beer, Diaper}
dapat ditambah dengan frequent item seperti Bread untuk menghasilkan
frequent 3-itemset { Beer, Diaper, Bread}. Metode ini akan menghasilkan
O ( Fk −1 × F1 ) candidate k-itemset, dimana F j adalah jumlah frequent j-
(
)
itemset. Kompleksitas keseluruhan tahap ini adalah O ∑ k k Fk −1 F1 .
Gambar 5.7 Metode Fk-1 × F1
Prosedur ini lengkap karena setiap frequent k-itemset tersusun dari frequent
(k-1)itemset dan frequent 1-itemset. Dengan demikian, semua frequent kitemset merupakan bagian dari candidate k-itemset yang dibangkitkan oleh
prosedur ini. Pendekatan ini, bagaimanapun, tidak mencegah candidate
itemset yang sama dibangkitkan lebih dari sekali. Contoh {Bread, Diapers, Milk}
Modul Kuliah Data Mining
96
dapat dibangkitkan dengan menggabung {Bread, Diapers} dengan {Milk}, {Bread,
Milk} dengan {Diapers}, atau {Diapers,Milk} dengan {Bread}. Salah satu cara
untuk menghindari pembangkitan kandidat yang duplikat adalah dengan
memastikan bahwa item-item dalam setiap frequent itemset disusun berurut
berdasarkan aturan perkamusan (lexicographic). Setiap frequent (k-1)itemset
X kemudian diperluas dengan frequent item yang secara leksikal lebih besar
dari item di dalam X. Contoh, itemset {Bread, Diapers} dapat ditambah dengan
{Milk} karena Milk secara leksikal lebih besar dari Bread dan Diapers. Namun,
kita seharusnya tidak menambahkan {Diapers, Milk} dengan {Bread} tidak juga
{Bread,Milk} dengan {Diapers} karena melanggar kondisi urutan leksikal.
Meskipun prosedur ini merupakan perbaikan yang mendasar dari metode
brute-force, namun metode ini masih menghasilkan sejumlah besar kandidat
yang tidak perlu. Contoh, candidate itemset yang diperoleh dengan
menggabungkan {Beer, Diapers} dengan {Milk} tidak diperlukan karena salah
satu subset-nya yaitu {Beer, Milk} infrequent. Terdapat beberapa heuristics
untuk mengurangi jumlah kandidat yang tidak perlu. Misalnya, diperhatikan
bahwa, setiap candidate k-itemset yang lolos dari tahap pemangkasan, setiap
item dalam kandidat tersebut harus terkandung paling tidak dalam k-1 buah
frequent (k-1)itemset. Selainnya, kandidat tersebut dapat dijamin infrequent.
Contoh, {Beer, Diapers, Milk} dapat terus menjadi candidate 3-itemset hanya
jika setiap item dalam kandidat, termasuk Beer, terdapat paling tidak dalam
dua frequent 2-itemset. Karena hanya satu frequent 2-itemset yang
mengandung Beer, maka semua candidate itemset yang melibatkan Beer
haruslah infrequent.
3.
Fk-1 × Fk-1 Method
Prosedur pembangkitan kandidat dalam fungsi apriori-gen menggabungkan
sepasang frequent (k-1)itemset hanya jika k-2 item pertama-nya identik.
Misalkan A={a1,a2,….ak-1} dan B={b1,b2,…..,bk-1} adalah sepasang frequent
(k-1)itemset. A dan B digabung jika memenuhi kondisi berikut
ai = bi (untuk i=1,2,…..,k-2) dan ak-1 ≠ bk-1.
Dalam Gambar 5.8 frequent itemset {Bread, Diapers} dan {Bread, Milk} digabung
untuk membentuk candidate 3-itemset {Bread, Diapers, Milk}. Algoritma tidak
menggabungkan {Beer, Diapers} dengan {Diapers, Milk} karena item pertama
dalam kedua itemset berbeda. Sebenarnya, jika {Beer, Diapers, Milk} merupakan
kandidat yang akan bertahan, itemset tersebut dapat diperoleh dengan
menggabungkan {Beer, Diapers} dengan {Beer, Milk}. Contoh di atas
memberikan ilustrasi sifat kelengkapan dari prosedur pembangkitan kandidat
dan keunggulan menggunakan urutan leksikal untuk menghindari kandidat
yang duplikat. Bagaimanapun, karena setiap kandidat diperoleh dengan
menggabungkan sepasang frequent (k-1)itemset, maka perlu dilakukan
langkah tambahan dalam pemangkasan kandidat untuk memastikan bahwa
k-2 subset yang tersisa adalah frequent.
Modul Kuliah Data Mining
97
Gambar 5.8 Metode Fk-1 x Fk-1
5.2.4
Support Counting
Penghitungan nilai support count (Support counting) adalah proses
menentukan frekuensi kejadian bagi setiap candidate itemset yang bertahan dari
tahap pemangkasan kandidat dalam fungsi apriori-gen. Penghitungan support
count di-implementasikan dalam langkah 6 sampai 11 dari Algoritma 1. Satu
pendekatan untuk melakukan penghitungan support count adalah dengan
membandingkan masing-masing transaksi dengan setiap candidate itemset
(Gambar 2) dan memperbarui support count dari kandidat yang terdapat dalam
transaksi. Pendekatan ini memerlukan sumberdaya komputasi yang besar,
terutama jika jumlah transaksi dan kandidat besar.
Pendekatan alternatif adalah dengan menghitung itemset yang terkandung
dalam setiap transaksi dan menggunakannya untuk memperbarui support count
dari candidate itemset masing-masing. Sebagai ilustrasi, terdapat transaksi t yang
⎛ 5⎞
mengandung lima item {1,2,3,5,6}. Terdapat ⎜⎜ ⎟⎟ =10 itemset berukuran 3 dalam
⎝ 3⎠
transaksi ini. Beberapa itemset mungkin berhubungan dengan candidate 3-itemset
yang sedang diperiksa, dalam kasus ini support count dinaikkan.Subset lainnya
dari t yang tidak berhubungan dengan kandidat manapun dapat diabaikan.
Gambar 5.9 memperlihatkan cara sistematis untuk mencacah 3-itemset yang
terkandung dalam t. Diasumsikan bahwa masing-masing item diurutkan menaik
secara leksikal. Sebagai ilustrasi, diberikan t = {1,2,3,5,6}, seluruh 3-itemset yang
terkandung dalam t harus diawali dengan item 1,2, atau 3. Tidak mungkin
membentuk 3-itemset yang diawali dengan 5 atau 6, karena hanya terdapat dua
item dalam yang diawali dengan 5 atau 6, karena hanya terdapat dua item dalam t
yang label-nya lebih besar atau sama dengan 5. Jumlah cara untuk menentukan
item pertama dari 3-itemset di-ilustrasikan oleh struktur prefix Level 1 dalam
Gambar 5.9. Sebagai contoh, 1 2 3 5 6 menyatakan 3-itemset yang diawali dengan
1, dan diikuti oleh dua item selanjutnya yang dipilih dari himpunan {2 3 5 6}.
Setelah menetapkan item pertama, stuktur prefix Level 2 merepresentasikan
banyaknya cara untuk memilih item kedua. Sebagai contoh, 1 2 3 5 6 merujuk
Modul Kuliah Data Mining
98
itemset yang diawali dengan prefix {1 2} dan diikuti oleh item 3,5 atau 6.
Akhirnya, struktur prefix Level 3 menyatakan set lengkap 3-itemset dalam t.
Sebagai contoh, 3-itemset yang dimulai dengan prefix {1 2} adalah {1,2,3},
{1,2,5} dan {1,2,6}, sedangkan yang dimulai dengan prefix {2 3} adalah {2,3,5}
dan {2,3,6}.
Gambar 5.9 Penghitungan subset dengan tiga item dari transaksi t.
Struktur prefix yang ditampilkan dalam Gambar 9 menunjukkan bagaimana
itemset dalam transaksi dalam dicacah secara sistematis, yaitu dengan menentukan
item satu per satu, dari item paling kiri ke item paling kanan. Namun kita tetap
perlu menentukan apakah masing-masing 3-itemset yang tercacah berhubungan
dengan candidate itemset yang ada. Jika 3-itemset tercacah cock dengan sebuah
candidate itemset maka support count untuk kandidat tersebut dinaikkan. Operasi
pencocokan ini dalam dilakukan secara efisien menggunakan struktur hash tree.
5.3 Pembangkitan Aturan
Bagian ini menjelaskan bagaimana meng-ekstrak aturan asosiasi
(association rule) dari frequent itemset yang diberikan. Setiap frequent k-itemset Y,
dapat menghasilkan sampai dengan 2k-2 aturan asosiasi, dengan mengabaikan
aturan yang memiliki anteseden atau konsekuen kosong (ØÆ Y atau YÆ Ø).
Aturan asosiasi dapat di-ekstrak dengan membagi itemset Y ke dalam dua sub-set
yang tidak kosong, yaitu X dan (Y-X), sehingga XÆ Y-X memenuhi nilai ambang
confidence. Perlu dicatat bahwa semua aturan harus telah memenuhi nilai ambang
support karena aturan tersebut dibangkitkan dari frequent itemset.
Contoh 5.3:
Ditetapkan X={1,2,3} merupakan frequent itemset. Terdapat enam kandidat aturan
asosiasi yang dapat dibangkitkan dari X yaitu : {1,2}Æ{3}, {1,3}Æ{2},
{2,3}Æ{1}, {1}Æ{2,3}, {2}Æ{1,3}, dan {3}Æ{1,2}. Karena setiap support
Modul Kuliah Data Mining
99
kandidat aturan asosiasi di atas sama dengan support bagi X, maka aturan di atas
pastilah memenuhi support treshold.
Menghitung confidence bagi aturan asosiasi tidak memerlukan pembacaan dataset
lagi. Perhatikan aturan {1,2}Æ{3}, yang dibangkitkan dari frequent itemset
X={1,2,3}. Confidence bagi aturan ini adalah σ({1,2,3})/ σ({1,2}). Karena {1,2,3}
frequent, sifat anti-monoton bagi support menjamin bahwa {1,2} juga frequent.
Karena support count bagi kedua itemset telah ditemukan selama kegiatan
pembangkitan itemset, maka tidak perlu lagi membaca seluruh dataset.
5.4 Pemangkasan berdasarkan Confidence
Tidak seperti pengukuran support, confidence tidak memiliki sifat monoton.
Sebagai contoh, confidence aturan XÆ Y dapat lebih besar, lebih kecil atau sama
dengan confidence aturan
dimana
dan
. Meskipun
demikian, jika kita membandingkan aturan-aturan yang dibangkitkan dari frequent
itemset Y yang sama, maka teorema berikut berlaku bagi ukuran confidence
Teorema 5.2:
Jika aturan XÆ Y-X tidak memenuhi nilai ambang confidence, maka aturan X’Æ
Y-X’, dimana X’ adalah subset dari X, pastilah juga tidak memenuhi nilai ambang
confidence.
5.5 Pembangkitan Aturan dalam Algoritma Apriori
Algoritma Apriori menggunakan pendekatan level-wise untuk
membangkitkan aturan asosiasi, dimana masing-masing level berhubungan
dengan jumlah item yang menjadi konsekuen aturan.
Awalnya, seluruh aturan dengan confidence tinggi yang hanya memiliki satu
item pada sisi konsekuen, di-ekstrak. Aturan ini nanti akan digunakan untuk
membangkitkan aturan kandidat yang baru. Sebagai contoh, jika {acd}Æ{b} dan
{abd}Æ {c} merupakam aturan dengan confidence tinggi, maka aturan kandidat
{ad}Æ{bc} dibangkitkan dengan menggabungkan konsekuen dari kedua aturan.
Gambar 10 memperlihatkan struktur lattice untuk aturan asosiasi yang
dibangkitkan dari frequent itemset {a,b,c,d}. Jika sembarang node dalam lattice
memiliki confidence rendah, maka menurut Teorema 2, seluruh subgraph yang
terentang oleh node tersebut dapat langsung dipangkas. Sebagai contoh, jika
confidence untuk {bcd} Æ{a} rendah. Seluruh aturan yang mengandung item a
dalam konsekuen-nya, termasuk {cd}Æ{ab}, {bd}Æ{ac}, {bc}Æ{ad} dan
{d}Æ{abc} dapat dihilangkan.
Pseucode untuk pembangkitan aturan asosiasi dapat dilihat pada Algoritma
5.2 dan 5.3. Perhatikan kesamaan antara prosedur ap-genrules pada Algoritma
5.3 dengan prosedur apriori-gen untuk membangkitkan frequent itemset pada
Algoritma 5.1. Perbedaannya adalah, kita tidak perlu melakukan pembacaan ulang
seluruh dataset untuk menghitung confidence dari aturan kandidat. Tentu saja,
kita menentukan confidence untuk setiap aturan berdasarkan support count yang
telah dihitung selama pembangkitan frequent itemset.
Modul Kuliah Data Mining
100
Gambar 5.10 Pemangkasan aturan asosiasi menggunakan ukuran confidence.
Algoritma 5.2. Pembangkitan aturan dalam Algoritma Apriori
Algoritma 5.3. Prosedur ap-genrules(fk,Hm)
5.6 Contoh : Congressional Voting Records
Bagian ini menunjukkan hasil penerapan analisis asosiasi pada data voting
anggota Kongres Amerika (Congressional Voting Records).
Setiap transaksi berisi informasi tentang afiliasi partai (Partai Republik atau Partai
Demokrat) dari anggota kongres dan catatan pilihan voting yang dilakukan oleh
masing-masing anggota (ada 16 isu utama). Terdapat 435 transaksi dan 34 item
dalam dataset. Himpunan item dapat dilihat pada Tabel 5.3.
Modul Kuliah Data Mining
101
Tabel 5.3 Atribut biner dari Congressional Voting Record USA tahun 1984
Algoritma Apriori diterapkan pada dataset dengan minsup = 30% dan minconf =
90%. Beberapa aturan dengan confidence tinggi yang berhasil di-ekstrak oleh
algoritma disajikan pada Tabel 5.4.
Tabel 5.4 Aturan asosiasi yang di-ekstrak dari
Congressional Voting Record USA tahun 1984
5.7 Evaluasi Pola Asosiasi
Algoritma analisis asosiasi memiliki potensi untuk membangkitkan pola
(pattern) dalam jumlah besar. Sebagai contoh, meskipun dataset pada Tabel 1
hanya berisi enam item, dataset tersebut dapat menghasilkan ribuan aturan
asosiasi pada nilai support dan confidence tertentu. Dengan ukuran dan dimensi
basisdata yang mungkin sangat besar, mungkin diperoleh ribuan atau jutaan pola
yang kebanyakan tidak menarik. Menyaring pola untuk mengidentifikasi pola
yang paling menarik bukanlah pekerjaan yang sederhana karena pola yang tidak
menarik bagi seseorang mungkin menjadi menarik bagi orang lain (“one person’s
trash might be another person’s treasure”). Karena itu perlu ada kriteria yang
diterima secara umum untuk menguji kualitas dari pola asosiasi.
5.7.1 Argumen Statistik
Kriteria pertama yang dapat ditetapkan adalah argumen statistik. Pola yang
melibatkan himpunan item yang saling independen (mutually independent) atau
mencakup sangat sedikit transaksi dianggap tidak menarik karena mungkin
menangkap hubungan yang semu dalam data. Pola seperti itu dapat dihilangkan
dengan menerapkan ukuran kemenarikan objektif (objective interestingness
measure). Ukuran kemenarikan objektif menggunakan statistik yang diturunkan
dari data untuk menentukan apakah sebuah pola menarik. Contoh ukuran
kemenarikan objektif adalah support, confidence dan correlation. Beberapa
Modul Kuliah Data Mining
102
ukuran simetrik bagi itemset {A,B} dapat dilihat pada Tabel 5.5. Sedangkan
contoh ukuran asimetrik bagi aturan AÆB dapat dilihat pada Tabel 5.6.
Tabel 5.5 Contoh symmetric objective measures bagi itemset {A,B}
Tabel 5.6 Contoh asymetric objective measures bagi aturan AÆB
5.7.2 Argumen Subjektif
Kriteria kedua yang dapat ditetapkan adalah argumen subjektif. Pola
secara subjektif dianggap tidak menarik kecuali aturan tersebut mengungkap
informasi yang tidak terduga (unexpected information) tentang data, atau
memberikan pengetahuan yang berguna sehingga memicu tindakan yang
menguntungkan. Contoh, aturan {Butter}Æ{Bread} mungkin tidak menarik,
meskipun memiliki nilai support dan confidence yang tinggi, karena pola tersebut
terlihat umum. Pada sisi lain, aturan {Diapers}Æ{Beer} menarik karena hubungan
tersebut tidak terduga dan dapat meningkatkan penjualan silang (cross-selling).
Menyertakan pengetahuan subjektif dalam evaluasi pola merupakan tugas yang
sukar karena memerlukan sejumlah informasi dari ahli bidang yang bersangkutan.
Berikut adalah beberapa pendekatan untuk menyertakan pengetahuan
subjektif dalam pekerjaan pencarian pola
4. Visualisasi. Pendekatan ini memerlukan lingkungan yang user-frienly untuk
memudahkan domain expert memeriksa pola yang ditemukan.
5. Template-based approach. Pendekatan ini mengijinkan pengguna untuk
membatasi jenis pola yang di-ekstrak oleh algoritma data mining. Daripada
melaportkan seluruh aturan yang di-ekstrak, hanya aturan yang memenuhi
template yang telah ditentukan oleh pengguna yang disajikan ke pengguna.
Modul Kuliah Data Mining
103
6. Subjective interestingness measure. Ukuran subjektif didefinisikan
berdasarkan domain information seperti hirarki konsep atau profit margin dari
item. Ukuran ini kemudian dapat digunakan untuk menyaring pola yang
umum dan non-actionable.
5.6 Topik Riset
Topik riset dalam data mining terus berkembang. Topik isu untuk pola
asosiasi dapat dilihat pada Gambar 5.11.
Gambar 5.11 Topik riset dalam mining association pattern
Penutup – Soal Latihan
Tugas Individu
Jawablah pertanyaan berikut secara singkat dan jelas.
1. Apa yang dimaksud dengan confidence dan support dalam teknik asosiasi.
2. Berikan contoh sebuah aturan asosiasi dari data set transaksi swalayan yang
memenuhi kondisi berikut:
a. Sebuah aturan yang memiliki support yang tinggi dan confidence yang
tinggi
b. Sebuah aturan yang memiliki support yang tinggi dan confidence yang
rendah
c. Sebuah aturan yang memiliki support yang rendah dan confidence yang
tinggi
Modul Kuliah Data Mining
104
d. Sebuah aturan yang memiliki support yang rendah dan confidence yang
rendah
Jelaskan apakah aturan-aturan demikian dapat dinyatakan sebagai aturan
yang menarik.
Tugas Kelompok
1. Sebuah basis data terdiri dari 5 transaksi, sebagai berikut
TID
T100
T200
T300
T400
T500
Item_yang_dibeli
{Mie, Susu, Mentega, Roti, Saus, Kecap}
{Kopi, Susu, Mentega, Roti, Saus, Kecap}
{Mie, Gula, Roti, Saus }
{Mie, Sirup, Snack, Roti, Kecap}
{Snack, Susu, Susu, Roti, Air Mineral, Saus}
Misalkan min_sup = 60% dan min_conf = 80%. Tentukan semua frequent
itemset dengan menggunakan algoritme Apriori.
2. Diberikan data set transaksi berikut:
a. Hitunglah support untuk itemset {e}, {b,d}, dan {b, d, e}.
b. Berdasarkan hasil dari point a, hitunglah confidence untuk aturan asosiasi
{b, d} Æ {e} dan {e} Æ {b, d}.
3. Perhatikan frequent 3-itemset:
{1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 4}, {1, 3, 5}, {2, 3, 4}, {2, 3, 5}, {3, 4, 5}
Asumsikan bahwa hanya terdapat lima aitem dalam data set.
a. Tentukan semua 4-itemset kandidat yang diperoleh dengan prosedur
generasi kandidat dengan mengunakan strategi penggabungan Fk-1 × F1.
b. Tentukan semua 4-itemset kandidat yang diperoleh dengan prosedur
generasi kandidat dalam Apriori.
Modul Kuliah Data Mining
105