Anda di halaman 1dari 15

KAPITA SELEKTA INFORMATIKA

(CIK415)

MODUL SESI VII


ANALISIS ASOSIASI

DISUSUN OLEH
NOVIANDI, S.Kom, M.Kom

UNIVERSITAS ESA UNGGUL


2020

Universitas Esa Unggul


http://esaunggul.ac.id 0/
15
BAB V
Analisis Asosiasi

Tujuan

1. Menjelaskan Analisis Asosiasi


2. Menjelaskan Pembangkitan Frequent Itemset
3. Menjelaskan Prinsip Apriori
4. Menjelaskan Pembangkitan Frequent Itemset dalam Algoritma Apriori

Teori

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 7.1 Contoh Transaksi Belanja

Sebagai contoh, berikut ini merupakan aturan yang dapat di-ekstrak dari dataset
yang transaksi belanja (market basket transaction) pada Tabel 7.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
Universitas Esa Unggul
http://esaunggul.ac.id 1 / 15
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 7.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.

Tabel 7.2 Representasi Biner Data Transaksi Penjualan

 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 7.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) =| {ti | X ⊆ ti ,
ti ∈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

𝜎(𝑋 𝖴 𝑌)
𝑆𝑢𝑝𝑝𝑜𝑟𝑡, 𝑠 (𝑋 → 𝑌) = ;
𝑁

𝜎(𝑋 𝖴 𝑌)
𝐶𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒, 𝑐 (𝑋 → 𝑌) =
𝑋

Contoh 7.1:
Perhatikan aturan {Milk, Diapers}  {Beer}. Karena support count untuk {Milk,
Diapers, Beer} 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

 Formulasi Masalah Association Rule Mining. Permasalahan association


rule dapat dinyatakan secara formal sebagai berikut
Definisi 7.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.

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.

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 7.1.

Gambar 7.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 7.2.

Gambar 7.2 Menghitung Support bagi Candidate Itemset

Dalam Gambar 7.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.
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 7.2:
Pada struktur lattice di Gambar 7.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 7.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.

Gambar 7.3 Jika {c, d, e} frequent maka seluruh subset-nya juga harus frequent
Gambar 7.4 Jika {a, b} infrequent maka seluruh supersetnya juga infrequent

Pembangkitan Frequent Itemset dalam Algoritma Apriori


Apriori merupakan algoritma association rule mining pertama yang mempelopori
pengunaan pemangkasan itemset berdasarkan nilai support (support-based pruning)
untuk secara sistematis mengendalikan pertumbuhan candidate itemset yang
tumbuh secara eksponensial. Gambar 7.5 memberikan ilustrasi pembangkitan
frequent itemset dalam algoritma Apriori untuk transaksi yang terdapat di Tabel 7.1.
Gambar 7.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 empat
4
frequent 1-itemset, maka jumlah candidate 2-itemset ( ) = 6.
adalah 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
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 7.1.

Algoritma 7.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)
Candidate Generation dan Prunning
Fungsi apriori-gen yang ditunjukkan dalam Langkah 5 pada Algoritma 1
membangkitkan candidate itemset dengan melakukan dua operasi berikut:
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} ( 1,2,. ,k) j
∀ = 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 k ∀k : F ⊆ C
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.

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 7.6). Jumlah candidate itemset yang dibangkitkan pada

level k adalah 𝑑 dimana d adalah total 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 metode ini adalah 𝑂 (∑𝑑 ( 𝑑−1)
𝑑. 2
𝑘=1 𝑘𝑥 ( )) = 𝑂
𝑘

Gambar 7.6 Metode brute-force untuk meningkatkan candidate 3-itemset


Support Counting
ntukan 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 itemset berukuran 3 dalam
( ) = 10
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 7.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 7.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
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 7.9 Perhitungan 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 cocok dengan sebuah candidate
itemset maka support count untuk kandidat tersebut dinaikkan. Operasi pencocokan
ini dalam dilakukan secara efisien menggunakan struktur hash tree.
Latihan

1. Sebutkan dan jelaskan algoritma yang sudah dikembangkan mengenai


asosiasi rule
2. Jelaskan apa itu lift rasio
3. Jelaskan konsep FP-Growth

Anda mungkin juga menyukai