(CTI311)
MODUL 4
PENAMBANGAN ASOSIASI POLA
(ASSOCIATION PATTERN MINING)
DISUSUN OLEH
AGUNG MULYO WIDODO, ST, M.Sc.
4.1 Introduksi
Tujuannya adalah untuk menentukan hubungan antara kelompok item yang dibeli oleh
pelanggan, yang secara intuitif dapat dilihat sebagai korelasi k-way antar item. Model paling
populer untuk penambangan pola asosiasi menggunakan frekuensi set item sebagai
kuantifikasi tingkat asosiasi. Kumpulan item yang ditemukan disebut sebagai kumpulan
item besar, kumpulan item yang sering, atau pola yang sering. Masalah penambangan pola
asosiasi memiliki berbagai macam aplikasi:
Karena masalah penambangan pola yang sering pada awalnya diusulkan dalam konteks data
keranjang pasar, sejumlah besar terminologi yang digunakan untuk menggambarkan data
(misalnya, transaksi) dan output (misalnya, itemset) dipinjam dari analogi supermarket.
Dari perspektif aplikasi-netral, pola yang sering dapat didefinisikan sebagai subset
yang sering, yang didefinisikan pada alam semesta dari semua set yang mungkin. Namun
demikian, karena terminologi keranjang pasar telah digunakan secara populer, bab ini akan
konsisten dengannya.
Kumpulan item yang sering dapat digunakan untuk menghasilkan aturan asosiasi
dalam bentuk X Y , di mana X dan Y adalah himpunan item. Contoh terkenal dari aturan
asosiasi, yang sekarang telah menjadi bagian 1 dari cerita rakyat penambangan data, adalah
{𝐵𝑒𝑒𝑟} ⟹ {𝐷𝑖𝑎𝑝𝑒𝑟𝑠}. Aturan ini menunjukkan bahwa membeli bir membuat popok juga
lebih mungkin dibeli. Dengan demikian, ada arah tertentu pada implikasi yang
dikuantifikasi sebagai probabilitas bersyarat. Aturan asosiasi sangat berguna untuk berbagai
aplikasi target pasar. Misalnya, jika pemilik supermarket menemukan bahwa
{𝐸𝑔𝑔, 𝑀𝑖𝑙𝑘} ⟹ {𝑌𝑜𝑔𝑢𝑟𝑡} adalah aturan asosiasi, dia dapat mempromosikan yogurt kepada
pelanggan yang sering membeli telur dan susu. Sebagai alternatif, pemilik supermarket
dapat menempatkan yogurt di rak yang terletak di dekat telur dan susu.
Model berbasis frekuensi untuk penambangan pola asosiasi sangat populer karena
kesederhanaannya. Namun, frekuensi mentah dari suatu pola tidak sama dengan
signifikansi statistik dari korelasi yang mendasarinya. Oleh karena itu, banyak model untuk
penambangan pola yang frequent telah diusulkan yang didasarkan pada signifikansi statistik.
Bab ini disusun sebagai berikut. Bagian 4.2 memperkenalkan model dasar untuk
penambangan pola asosiasi. Pembuatan aturan asosiasi dari frequent itemset dibahas di
bagian. 4.3. Berbagai algoritma untuk penambangan pola sering dibahas di bagian. 4.4.
Ini termasuk algoritma Apriori, sejumlah algoritma pohon enumerasi, dan pendekatan
rekursif berbasis akhiran. Metode untuk menemukan pola frekuensi yang menarik dibahas
di bagian 4.5. Meta-algoritma untuk penambangan pola yang sering dibahas di bagian 4.6.
Masalah penambangan pola asosiasi secara alami didefinisikan pada data set yang tidak
berurutan.
Setiap atribut biner dalam catatan ini mewakili item tertentu. Nilai atribut dalam catatan
ini adalah 1 jika item tersebut ada dalam transaksi, dan 0 jika tidak. Dalam pengaturan
praktis, semesta item U sangat besar dibandingkan dengan jumlah tipikal item dalam setiap
transaksi 𝑇𝑖 . Misalnya, database supermarket mungkin memiliki puluhan ribu item, dan satu
transaksi biasanya berisi kurang dari 50 item. Properti ini sering dimanfaatkan dalam desain
algoritma penambangan pola yang frequent.
Itemset adalah kumpulan item. Sebuah k-itemset adalah sebuah itemset yang berisi tepat
k item. Dengan kata lain, himpunan k-item adalah himpunan item yang memiliki
kardinalitas k. Fraksi transaksi di 𝑇1 … 𝑇𝑛 di mana sebuah itemset muncul sebagai subset
Dukungan dari itemset I dilambangkan dengan sup(𝐼). Jelas, item yang berkorelasi akan
sering terjadi bersama-sama dalam transaksi. Itemset seperti itu akan memiliki dukungan
yang tinggi. Oleh karena itu, masalah penambangan pola yang sering terjadi adalah
penentuan itemset yang memiliki tingkat dukungan minimum (minimum support) yang
diperlukan.
Fraksi 𝑚𝑖𝑛𝑠𝑢𝑝 yang telah ditentukan sebelumnya disebut sebagai minimum support.
Sementara konvensi default dalam buku ini adalah untuk mengasumsikan bahwa 𝑚𝑖𝑛𝑠𝑢𝑝
mengacu pada nilai pecahan relatif, kadang-kadang juga ditentukan sebagai nilai mutlak
integer dalam hal jumlah mentah dari transaksi. Bab ini akan selalu mengasumsikan
konvensi nilai relatif, kecuali ditentukan lain. Pola yang sering juga disebut sebagai frequent
itemset, atau large itemset. Modul ini akan menggunakan istilah-istilah ini secara bergantian.
Seperti yang dibahas dalam Bab. 1, data multidimensi biner dan data set setara. Kesetaraan
ini karena setiap atribut multidimensi dapat mewakili elemen set (atau item). Nilai 1 untuk
atribut multidimensi sesuai dengan penyertaan dalam set (atau transaksi). Oleh karena itu,
set data transaksi (atau set set) juga dapat direpresentasikan sebagai database biner
multidimensi yang dimensinya sama dengan jumlah item.
Jumlah frequent itemset umumnya sangat sensitif terhadap level support minimum.
Pertimbangkan kasus di mana level minimum support 0,3 digunakan. Setiap item Bread,
Milk, Egg, Cheese, dan Yogurt terjadi di lebih dari 2 transaksi, dan oleh karena itu dapat
dianggap sebagai item yang sering muncul pada level minimum support 0,3. Item ini sering
menjadi 1-itemset. Faktanya, satu-satunya item yang tidak sering muncul di level minimum
support 0,3 adalah Butter. Selanjutnya, 2-itemset yang sering muncul pada level minimum
support 0,3 adalah {𝐵𝑟𝑒𝑎𝑑, 𝑀𝑖𝑙𝑘} , {𝐸𝑔𝑔𝑠, 𝑀𝑖𝑙𝑘} , {𝐶ℎ𝑒𝑒𝑠𝑒, 𝑀𝑖𝑙𝑘} , {𝐸𝑔𝑔𝑠, 𝑌𝑜𝑔𝑢𝑟𝑡} , dan
{𝑀𝑖𝑙𝑘, 𝑌𝑜𝑔𝑢𝑟𝑡}. Satu-satunya 3-itemset yang dilaporkan pada level minimum support 0,3
adalah {𝐸𝑔𝑔𝑠, 𝑀𝑖𝑙𝑘, 𝑌𝑜𝑔𝑢𝑟𝑡} . Di sisi lain, jika level minimum support diatur ke 0,2, itu
sesuai dengan nilai dukungan absolut (absolut support) hanya 1. Dalam kasus seperti itu,
setiap subset dari setiap transaksi akan dilaporkan. Oleh karena itu, penggunaan level
minimum suppo yang lebih rendah menghasilkan jumlah pola frekuensi yang lebih besar.
Di sisi lain, jika level support terlalu tinggi, maka tidak akan ada pola yang sering ditemukan.
Oleh karena itu, pilihan yang tepat dari tingkat dukungan sangat penting untuk menemukan
satu pola set yang frequent dengan ukuran yang berarti.
Ketika sebuah itemset I terkandung dalam suatu transaksi, semua subsetnya juga akan
terkandung dalam transaksi tersebut. Oleh karena itu, support dari setiap subset J dari I akan
selalu setidaknya sama dengan support dari I. Properti ini disebut sebagai properti support
monotonicity.
Properti downward closure dari pola yang frequent secara algoritmik sangat nyaman karena
memberikan batasan penting pada struktur yang melekat pada pola yang sering. Batasan ini
sering dimanfaatkan oleh algoritma penambangan pola yang sering untuk memangkas
proses pencarian dan mencapai efisiensi yang lebih besar. Selanjutnya, properti downward
closure dapat digunakan untuk membuat representasi ringkas dari pola yang sering, di mana
hanya subset frekuensi maksimal yang dipertahankan.
Pada contoh Tabel 4.1, itemset {𝐸𝑔𝑔𝑠, 𝑀𝑖𝑙𝑘, 𝑌𝑜𝑔𝑢𝑟𝑡} adalah itemset frequent maksimal pada
level minimum support 0,3. Namun, itemset {𝐸𝑔𝑔𝑠, 𝑀𝑖𝑙𝑘} belum maksimal karena memiliki
superset yang juga frequent. Selanjutnya, himpunan pola frekuensi maksimum pada level
dukungan minimum 0,3 adalah {𝐵𝑟𝑒𝑎𝑑, 𝑀𝑖𝑙𝑘} , {𝐶ℎ𝑒𝑒𝑠𝑒, 𝑀𝑖𝑙𝑘} dan {𝐸𝑔𝑔𝑠, 𝑀𝑖𝑙𝑘, 𝑌𝑜𝑔𝑢𝑟𝑡}.
Jadi, hanya ada 3 frequent itemset maksimal, sedangkan jumlah frequent itemset di seluruh
database transaksi adalah 11.
Sebuah properti yang menarik dari itemset adalah bahwa mereka dapat disusun secara
konseptual dalam bentuk kisi itemset (lattice of itemsets). Kisi ini berisi satu simpul untuk
masing-masing 2|𝑈| set yang diambil dari semesta item U. Sebuah tepi (edge) ada di antara
sepasang node, jika set yang sesuai berbeda dengan tepat satu item. Contoh kisi itemset
dengan ukuran 25 = 32 pada semesta yang terdiri dari 5 item diilustrasikan pada Gambar
4.1. Kisi mewakili ruang pencarian pola frequent. Semua algoritma penambangan pola
frequent, secara implisit atau eksplisit, melintasi ruang pencarian ini untuk menentukan pola
pola frequent.
Kisi-kisi tersebut dipisahkan menjadi kumpulan item frequent dan infrequent oleh sebuah
batas (border), yang diilustrasikan oleh garis putus-putus pada Gambar. 4.1. Semua set item
di atas perbatasan ini sering terjadi, sedangkan yang di bawah perbatasan jarang terjadi.
Perhatikan bahwa semua kumpulan item frekuensi maksimum berdekatan dengan batas
kumpulan item ini. Selanjutnya, setiap batas yang valid mewakili pembagian yang benar
antara itemset frequent dan infrequent akan selalu menghormati properti properti downward
closure.
Seperti dalam hal dukungan, minconf ambang batas kepercayaan minimum dapat
digunakan untuk menghasilkan aturan asosiasi yang paling relevan. Aturan asosiasi
didefinisikan menggunakan kriteria support dan confidence.
Kerangka keseluruhan untuk pembuatan aturan asosiasi menggunakan dua fase. Fase-fase
ini sesuai dengan dua kriteria dalam Definisi 4.3.2, yang mewakili batasan dukungan dan
keyakinan.
1. Pada fase pertama, semua frequent itemset dibangkitkan pada minimum support,
minsup.
2. Pada fase kedua, aturan asosiasi dibangkitkan dari frequent itemset pada tingkat
kepercayaan minimum, minconf.
Fase pertama lebih intensif secara komputasi dan, oleh karena itu, merupakan bagian yang
lebih menarik dari proses. Fase kedua relatif mudah. Oleh karena itu, pembahasan fase
pertama akan ditunda ke bagian selanjutnya dari bab ini, dan diskusi singkat tentang fase
kedua (yang lebih lugas) disediakan di sini.
Properti ini mengikuti langsung dari definisi kepercayaan dan properti dukungan monoton.
Perhatikan aturan{𝐵𝑟𝑒𝑎𝑑} ⟹ {𝐵𝑢𝑡𝑡𝑒𝑟, 𝑀𝑖𝑙𝑘} dan {𝐵𝑟𝑒𝑎𝑑, 𝐵𝑢𝑡𝑡𝑒𝑟} ⟹ {𝑀𝑖𝑙𝑘}. Aturan kedua
berlebihan (redundant) sehubungan dengan yang pertama karena akan memiliki support
yang sama, tetapi confidence yang tidak kurang dari yang pertama. Karena confidence
monotonicity, dimungkinkan untuk melaporkan hanya aturan yang tidak berlebihan (non-
redundant).
Pada bagian ini, sejumlah algoritma populer untuk pembangkitan frequent itemset akan
dibahas. Karena ada sejumlah besar algoritma penambangan itemset yang sering, fokus bab
ini adalah membahas algoritma tertentu yakni Brute force dan Apriori secara rinci untuk
memperkenalkan pada anda, trik kunci dalam desain algoritmik.
Untuk semesta item U, ada total 2|𝑈| − 1 himpunan bagian yang berbeda, tidak
termasuk himpunan kosong. Semua 25 himpunan bagian untuk semesta yang terdiri dari 5
item diilustrasikan pada Gambar 4.1. Oleh karena itu, satu kemungkinan adalah
membangkitkan semua candidate itemset ini, dan menghitung support-nya terhadap basis
data transaksi 𝜏. Dalam literatur frequent itemset mining, istilah candidate itemset biasanya
digunakan untuk merujuk pada itemset yang mungkin frequent (atau kandidat untuk
menjadi frequent). Kandidat ini perlu diverifikasi terhadap database transaksi dengan
penghitungan support. Untuk menghitung support dari itemset, kita perlu memeriksa
apakah itemset I yang diberikan adalah subset dari setiap transaksi 𝜏𝑖 ∈ 𝜏. Pendekatan
Untuk menempatkan angka ini dalam perspektif, jika komputer tercepat yang tersedia saat
ini entah bagaimana mampu memproses satu kandidat dalam satu siklus mesin dasar, maka
waktu yang dibutuhkan untuk memproses semua kandidat akan menjadi ratusan kali lipat
lebih besar dari usia alam semesta. Oleh karena itu, ini bukan solusi praktis.
Tentu saja, seseorang dapat membuat pendekatan brute force lebih cepat dengan mengamati
bahwa tidak ada pola (k + 1) yang frequent terjadi jika tidak ada pola-k yang frequent.
Pengamatan ini mengikuti langsung dari properti downward closure. Oleh karena itu,
seseorang dapat mengenumerasi dan menghitung support dari semua pola dengan
bertambahnya panjang. Dengan kata lain, seseorang dapat menghitung dan menghitung
dukungan dari semua pola yang mengandung satu item, dua item, dan seterusnya, sampai
untuk panjang l tertentu, tidak ada kandidat dengan panjang l yang menjadi frequent. Untuk
basis data transaksi yang jarang, nilai l biasanya sangat kecil dibandingkan dengan |U|. Pada
titik ini, seseorang dapat mengakhiri. Ini merupakan peningkatan yang signifikan dari
|𝑈|
pendekatan sebelumnya karena memerlukan penghitungan ∑𝑙𝑖=1 ( ) ≪ 2|𝑈| kandindat.
𝑖
Karena frequent itemset terpanjang memiliki panjang yang jauh lebih kecil dari |U| dalam
basis data transaksi yang jarang, pendekatan ini lebih cepat.
Namun, kompleksitas komputasi yang dihasilkan masih belum memuaskan untuk nilai U
|𝑈|
yang besar. Misalnya, saat |U| = 1000 dan l = 10, nilai ∑10
𝑖=1 ( ) ≪ 2|𝑈| adalah orde 1023 .
𝑖
Nilai ini masih cukup besar dan di luar kemampuan komputasi yang wajar tersedia saat ini.
Satu pengamatan adalah bahwa bahkan aplikasi yang sangat kecil dan agak tumpul dari
properti penutupan ke bawah membuat algoritme ratusan kali lipat lebih cepat. Banyak
algoritma cepat untuk pembuatan itemset menggunakan properti penutupan ke bawah
dengan cara yang lebih halus, baik untuk menghasilkan kandidat dan memangkasnya
sebelum menghitung. Algoritma untuk pencarian pola yang sering mencari kisi
kemungkinan (atau kandidat) untuk pola yang frequent (lihat Gambar 4.1) dan gunakan
database transaksi untuk menghitung support kandidat dalam kisi ini. Efisiensi yang lebih
baik dapat dicapai dalam algoritma penambangan pola yang sering dengan menggunakan
satu atau lebih pendekatan berikut:
Algoritma pertama yang menggunakan pemangkasan efektif dari ruang pencarian dengan
menggunakan properti downward closure adalah algoritma Apriori.
Algoritma Apriori menghasilkan kandidat dengan panjang k yang lebih kecil terlebih
dahulu dan menghitung dukungannya sebelum menghasilkan kandidat dengan panjang (k
+1). K-itemset yang dihasilkan sering digunakan untuk membatasi jumlah (k + 1)-kandidat
dengan properti downward closure. Generasi kandidat dan penghitungan dukungan pola
dengan panjang yang bertambah disisipkan di Apriori. Karena penghitungan support
kandidat adalah bagian paling mahal dari proses pembuatan pola frequent, sangat penting
untuk menjaga jumlah kandidat tetap rendah.
Jika sepasang itemset X dan Y dalam ℱ𝑘 memiliki (k-1) item yang sama, maka
gabungan di antara mereka menggunakan item umum (k-1) akan membuat kandidat itemset
berukuran (k +1). Misalnya, dua 3-itemset {𝑎, 𝑏, 𝑐} (atau 𝑎𝑏𝑐 untuk pendek) dan {𝑎, 𝑏, 𝑑}
(atau 𝑎𝑏𝑑 untuk pendek), ketika bergabung bersama pada dua item umum 𝑎 dan 𝑏, akan
menghasilkan kandidat 4-itemset 𝑎𝑏𝑐𝑑.
Tentu saja, adalah mungkin untuk bergabung dengan pola frekuensi lain untuk
membuat kandidat yang sama. Seseorang mungkin juga bergabung dengan 𝑎𝑏𝑐 dan 𝑏𝑐𝑑
untuk mencapai hasil yang sama. Misalkan keempat dari 3-subset 𝑎𝑏𝑐𝑑 hadir dalam
himpunan 3-itemset yang frequent. Seseorang dapat membuat kandidat 4-itemset dalam
4
( ) = 6 cara berbeda. Untuk menghindari redundansi dalam pembuatan kandidat,
2
konvensinya adalah memaksakan urutan leksikografis pada item dan menggunakan item
pertama (k-1) dari itemset untuk bergabung. Jadi, dalam kasus ini, satu-satunya cara untuk
menghasilkan 𝑎𝑏𝑐𝑑 adalah dengan menggabungkan menggunakan dua item pertama 𝑎 dan
𝑏 . Oleh karena itu, itemset 𝑎𝑏𝑐 dan 𝑎𝑏𝑑 perlu digabungkan untuk membuat 𝑎𝑏𝑐𝑑 .
Perhatikan bahwa, jika salah satu dari 𝑎𝑏𝑐 dan 𝑎𝑏𝑑 infrequent, maka 𝑎𝑏𝑐𝑑 tidak akan
dihasilkan sebagai kandidat menggunakan pendekatan join ini. Selanjutnya, dalam kasus
seperti itu, dipastikan bahwa 𝑎𝑏𝑐𝑑 tidak akan sering karena properti downward closure dari
kumpulan item yang frequent. Dengan demikian properti downward closure memastikan
Setelah kandidat itemset 𝒞𝑘+1 dengan ukuran (k+1) dihasilkan, dukungannya dapat
ditentukan dengan menghitung jumlah kemunculan setiap kandidat dalam database
transaksi 𝜏 . Hanya kumpulan item kandidat yang memiliki dukungan minimum yang
diperlukan yang dipertahankan untuk membuat himpunan (k+1)-itemset sering ℱ𝑘+1 ⊆
𝒞𝑘+1 . Jika himpunan ℱ𝑘+1 kosong, algoritma berakhir. Pada saat terminasi, penyatuan
⋃𝑘𝑖=1 ℱ𝑖 dari pola frekuensi dengan ukuran berbeda dilaporkan sebagai keluaran akhir dari
algoritma.
Dapat diasumsikan bahwa semua node interior menggunakan fungsi hash yang sama
𝑓(. ) yang memetakan ke [0, 1, … , ℎ − 1]. Nilai h juga merupakan derajat percabangan dari
pohon hash. Itemset kandidat di 𝒞𝑘+1 dipetakan ke simpul daun dari pohon dengan
mendefinisikan jalur dari akar ke simpul daun dengan menggunakan fungsi hash ini di
simpul internal. Asumsikan bahwa akar pohon hash adalah level 1, dan semua level yang
berurutan di bawahnya bertambah 1. Seperti sebelumnya, asumsikan bahwa item dalam
Untuk melakukan penghitungan, semua kandidat k-itemset yang mungkin pada 𝒞𝑘+1 yang
merupakan subset dari transaksi 𝑇𝑗 ∈ 𝜏 ditemukan dalam satu eksplorasi hash tree. Untuk
mencapai tujuan ini, semua jalur yang mungkin di pohon hash, yang daunnya mungkin
berisi subset itemset dari transaksi 𝑇𝑗 , ditemukan menggunakan rekursif traversal.
Pemilihan node daun yang relevan dilakukan dengan rekursif traversal sebagai berikut.
Pada simpul akar, semua cabang diikuti sedemikian rupa sehingga salah satu item dalam
transaksi 𝑇𝑗 hash ke salah satu cabang. Pada node interior tertentu, jika item ke-i dari
transaksi 𝑇𝑗 terakhir di-hash (pada node induk), maka semua item yang mengikutinya dalam
transaksi di-hash untuk menentukan anak-anak yang mungkin untuk diikuti. Jadi, dengan
mengikuti semua jalur ini, simpul daun yang relevan di pohon ditentukan.
C. LATIHAN
Tentukan support mutlak dari itemset {a, e, f}, dan {d, f}. Ubah dukungan absolut menjadi
dukungan relatif.
2. Untuk database dalam soal no. 1, hitung semua pola frequent pada nilai minimum support
absolut 2, 3, dan 4.
3. Untuk database pada soal no. 1, tentukan semua pola frekuensi maksimum pada nilai nilai
minimum support absolut 2, 3, dan 4.
4. Representasikan database pada soal no. 1 dalam format vertikal.
5. Perhatikan database transaksi pada tabel di bawah ini:
Tentukan semua pola frequent dan pola maksimal pada level support 3, 4, dan 5.
D. Kunci Jawaban
1. Tan, Steinbach, Karpatne, Kumar, Introduction to Data Mining, 2nd Edition, 2019
https://www-users.cs.umn.edu/~kumar001/dmbook/index.php#item3
2. Charu C. Aggarwal , Data Mining: Textbook, IBM T.J. Watson Research Center
Yorktown Heights, New York
USA, 2015