Suhatati Tjandra
Dosen Teknik Informatika Sekolah Tinggi Teknik Surabaya
e-mail: tati@stts.edu
ABSTRAK
Frequent itemset mining adalah algoritma yang digunakan utnuk mencari frequent itemset. Salah satu
algorima yang dapat digunakan adalah Algoritma PIE ( Probabilistic Iterative Expansion). Algoritma PIE
(Probabilistic Iterative Expansion) adalah sebuah algoritma frequent itemset mining (FIM) yang
menggunakan probabilitas item sebagai dasar untuk men-generate kandidat-kandidat berikutnya. Para
kandidat disimpan dalam sebuah trie dimana setiap path dari root menuju suatu node merepresentasikan
sebuah kandidat itemset. Algoritma ini membentuk trie secara iteratif sampai semua frequent itemset
ditemukan. Karena pembentukan trie inilah maka algoritma PIE membutuhkan waktu untuk melakukan
kalkulasi. Algoritma ini diuji coba pada tiga dataset yaitu dataset Chess, Mushroom dan T10I4D100K dan
kemudian dilakukan pencatatan waktu yang dibutuhkan untuk melakukan miningnya.
ABSTRACT
Frequent Itemset Mining is algorithm which is used to find frequent itemset. Probabilistic Iterative
Expansion (PIE) algorithm is one of Frequent Itemset Mining algorithms which use probabilistic to
generate next candidates and the candidates is stored in a common trie data structure. This algorithm
build trie iteratively until all frequent itemset was found.PIE algorithm, need more times to calculate and
build the trie. PIE algorithm be implemented for three datasets in order to record total time used for
mining process.
41
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
42
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
S)).estim_suppo
Algoritma 3 merupakan algoritma untuk rt(v) >= iter.σ
membentuk trie pada algoritma PIE. Trie dibentuk 3.1.1.1.4 end if
berdasarkan probabilitas item, dimana apabila 3.1.1.2 end for
probabilitas suatu item lebih kecil dari relative 3.1.2 end if
3.2 end for
minimum support, maka item tersebut tidak akan
ditambahkan kedalam trie.
Algoritma 4 merupakan loop utama pada
algoritma PIE. Algoritma ini akan secara
Algoritma 4 Algoritma Ekspansi Trie bergantian melakukan tiga proses yaitu
Input : PIE trie P perhitungan frekuensi sebenarnya dari setiap node
Output : expanded PIE trie P pada trie, pemeriksaan apakah ada node pada trie
// the main loop : alternating count, yang masih not ready dan proses ekspasi trie.
test and expand Proses ekspansi trie ini akan dilakukan terus
1. [Scan the database and check selama masih ada node pada trie yang belum
readiness] ready.
1.1 scan D and count the support
and pending support values for Algoritma 5 Algoritma Pembacaan Hasil
non ready nodes in P Dari Trie
2. [Test readiness of each node] Input : PIE trie P
2.1 iter = iter + 1 Output : Frequent Itemsets FP
2.2 for each node p P do 1. [Baca hasil dari trie]
2.2.1 if pending_support(p) < σ 1.1 return the paths for nodes p
2.2.1.1 if p is a leaf in P such that support(p) >= σ
2.2.1.1.1 set p ready
2.2.1.2 else
Algoritma 5 merupakan algoritma untuk membaca
2.2.1.2.1 if the children of
p are ready semua hasil frequent itemset dari trie pada
2.2.1.2.1.1 set p ready algoritma PIE. Algoritma ini akan mengembalikan
2.2.1.2.2 end if semua path pada trie yang mana nilai support tiap
2.2.1.3 end if node yang dilaluinya lebih besar atau sama dengan
2.2.2 end if minimum support threshold.
2.3 end for
2.4 if root(P) is ready Contoh Kasus
2.4.1 exit loop
2.5 end if
3. [Expansion phase] Tabel 1
3.1 for each non ready node p in P Contoh Database Transaksi
do
3.1.1 if pending_support(p) >= σ Tid Items
3.1.1.1 for each virtual child 1 345679
v of p do 2 1 3 4 5 13
3.1.1.1.1 compute 3 1 2 4 5 7 11
local_prob(v) 4 1348
3.1.1.1.2 estim_support(v) = 5 1 3 4 10
local_prob(v).pend
ing_support(p)
3.1.1.1.3 if estim_support(v) Misalkan user melakukan proses mining semua
>= iter.σ frequent itemset dari sebuah database transaksi
3.1.1.1.3.1 create node v seperti yang ditunjukkan pada Tabel 1 dengan
as the child of p minimum support threshold dua transaksi.
3.1.1.1.3.2 add such Database diasumsikan telah dalam format seperti
ordered subsets pada Tabel 1 dan setiap item pada setiap
S F\{1..v} as transaksinya urut secara ascending.
descendant Langkah-langkah pembentukan trie pada algoritma
paths of v, for PIE untuk contoh dataset di atas dengan minimum
which (Prob(s support threshold 50% (2 transaksi) adalah :
1. Preprocessing
43
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
Pertama-tama database akan dibaca sekali secara probabilitas ini adalah nilai frekuensi item pada
keseluruhan untuk mencari semua frequent 1- setiap transaksi pada database dibagi dengan total
itemset. Karena minimum support threshold-nya jumlah transaksi. Jadi misalkan untuk node 1 maka
adalah 2, maka semua item dengan kemunculan (4/5) = 0,8.
lebih kecil dari 2 tidak termasuk frequent item.
Pada contoh database ini frequent item-nya adalah
1, 3, 4, 5 dan 7. Kemudian semua frequent item
tersebut akan dimasukkan kedalam tabel frequent
item seperti ditunjukkan pada Tabel 2. Gambar 2
Root Dan Node-Node Level Pertama
Tabel 2
Frequent Item Kemudian proses selanjutnya adalah pembentukan
child dari node-node level pertama. Proses ini
Item Count diiterasi sebanyak jumlah frequent 1-itemset
1 4 dikurangi 1. Karena pada contoh ini jumlah
3 4 frequent 1-itemset adalah 5, maka trie akan selesai
4 5 dibentuk setelah empat iterasi. Pada iterasi pertama
5 3 child dari node 1 akan dibentuk. Semua frequent 1-
7 2 itemset yang nilai item-nya lebih besar dari 1 akan
dicari probabilitasnya. Apabila hasilnya lebih besar
Kemudian dicari nilai alfa, yaitu sebuah konstanta atau sama dengan Rminsup, maka node tersebut
bernilai antara 0 dan 1 yang akan digunakan untuk akan ditambahkan sebagai child dari node 1.
perhitungan pada tahap ekspansi trie. Cara mencari Apabila hasilnya lebih kecil, maka node tersebut
alfa adalah nilai total nilai probabilitas semua tidak akan dibuat dan digambar dengan garis
frequent 1-itemset dibagi dengan total jumlah putus-putus dan dinamakan virtual node. Virtual
transaksi dalam database. Dalam contoh ini nilai node ini pada tahap ekspansi trie akan diperiksa
alfa adalah : ((4/5)+(4/5)+(5/5)+(3/5)+(2/5))/5 = apakah dapat dimaterialisasi atau tidak.
0,72. Misal untuk child pertama dari node 1 pada branch
Nilai relative minimum support (Rminsup) juga paling kiri yaitu node 3, nilai probabilitasnya
akan dicari. Rminsup digunakan pada saat adalah 0,64. Nilai ini didapat dari probabilitas item
pembentukan trie. Apabila nilai probabilitas suatu 3 sendiri, yaitu 0,8, dikalikan dengan probabilitas
node lebih besar atau sama dengan Rminsup, maka item 1, yaitu 0,8 juga. Karena hasilnya >=
node tersebut akan dibuat. Sebaliknya, apabila nilai Rminsup (0,4) maka node 3 dibuat. Perhitungan ini
probabilitasnya lebih kecil, maka node tersebut berbeda dengan perhitungan probabilitas saat
tidak akan dibuat. Hal ini bertujuan untuk pembentukan child dari root diatas, karena dalam
menghindari trie explosion atau pembentukan trie hal ini node 3 adalah child dari node 1, maka
secara lengkap. Cara mencari Rminsup adalah nilai probabilitas node 1 harus disertakan pula.
minimum support dibagi dengan total jumlah
transaksi dalam database. Dalam contoh ini nilai
Rminsup adalah : (2/5) = 0,4.
2. Pembentukan Trie
Setelah proses preprocessing selesai dilakukan,
maka langkah selanjutnya adalah pembentukan
trie. Untuk mempermudah penjelasan, trie akan
dibentuk secara breadth first dan nilai item dari
tiap node akan dituliskan. Sementara pada
implementasi sesungguhnya, trie dibentuk secara
depth first dan nilai item tiap node tidak akan
disimpan. Pertama-tama dibentuk root dari trie. Gambar 3
Root pada trie dari algoritma PIE adalah sebuah Keadaan Child Pertama (Node 1) Dari Root
node dengan item kosong. Kemudian child dari Setelah Iterasi Pertama
root tersebut adalah semua frequent 1-itemset.
Angka-angka yang ada disamping tiap node adalah Pada iterasi kedua, child kedua dari root yaitu node
probabilitas dari tiap node tersebut. Cara mencari 3 akan dicari child-nya. Caranya sama dengan
44
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
Gambar 6
Keadaan Child Keempat (Node 5) Dari
Root Setelah Iterasi Keempat
0,8 Apabila hasilnya lebih besar atau sama dengan
3
Rminsup, maka node tersebut akan ditambahkan
0,32
0,8 0,48 sebagai child dari node 5.
4 5 7 Setelah iterasi keempat masih ada satu node child
terakhir dari root, yaitu node 7. Akan tetapi karena
0,48 0,32 0,19 item 7 adalah frequent 1-itemset terbesar maka dia
5 7 7 tidak mempunyai child. Oleh karena itu setelah
menambahkan node 7 sebagai child dari root maka
0,19
trie telah terbentuk secara lengkap. Dapat dilihat
pada trie hasil algoritma PIE hanya mempunyai 15
7
node. Jika dibandingkan dengan trie lengkap
Gambar 4 apabila semua node dibuat tanpa pemeriksaan
Keadaan Child Kedua (Node 3) Dari Root probabilitas item, dimana terdapat 31 node, maka
Setelah Iterasi Kedua trie hasil algoritma PIE jauh lebih sedikit. Hal ini
dilakukan untuk menghindari trie explosion atau
Pada iterasi ketiga, child kedua dari root yaitu node pembuatan node-node pada trie yang belum tentu
4 akan dicari child-nya. Caranya sama dengan merupakan frequent itemset.
proses iterasi pertama dan kedua, yaitu semua
frequent 1-itemset yang nilai item-nya lebih besar 3. Perhitungan frekuensi dan child error
dari 4 akan dicari probabilitasnya. Apabila Proses selanjutnya adalah penghitungan frekuensi
hasilnya lebih besar atau sama dengan Rminsup, sebenarnya dan child error dari tiap node pada trie.
maka node tersebut akan ditambahkan sebagai Hal ini dilakukan dengan menelusuri sekali lagi
child dari node 4. database secara keseluruhan dan hanya item yang
1 frequent yang dipilih dari setiap transaksinya.
4 Child error atau yang disebut juga PS (Pending
Support) adalah sebuah variable yang digunakan
0,6 0,4 untuk menyimpan informasi jumlah transaksi
dalam database yang mengandung suatu node.
5 7
Variable child error pada algoritma PIE digunakan
pada tahap ekspansi trie.
0,24
7 PS = 100
A
Gambar 5 D
B C
Keadaan Child Ketiga (Node 4) Dari Root
Setelah Iterasi Ketiga
E F G
Pada iterasi keempat, child kedua dari root yaitu
node 5 akan dicari child-nya. Caranya sama
dengan proses iterasi pertama, kedua dan ketiga, Gambar 7
yaitu semua frequent 1-itemset yang nilai item-nya Ilustrasi Child Error
lebih besar dari 5 akan dicari probabilitasnya.
0,6
0,24
45
7
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
Misalkan nilai minimum support threshold untuk Dengan berakhirnya iterasi kelima diatas, maka
trie diatas adalah 80. Sebuah node A mempunyai trie telah terbentuk secara lengkap. Langkah
child error = 100. Hal ini berarti pada database selanjutnya adalah memeriksa apakah semua node
masukan terdapat 100 transaksi yang mengandung pada trie telah ready. Sebuah node dikatakan ready
item sepanjang path dari root menuju node A apabila :
tersebut, termasuk item C dan/atau item D.2 Nilai child error-nya lebih kecil dari minimum
Apabila nilai child error suatu node lebih besar support threshold. Apabila nilai child error
atau sama dengan nilai minimum support suatu node lebih besar atau sama dengan
threshold, maka ada kemungkinan salah satu atau minimum support threshold, maka ada
kedua virtual child dari node tersebut adalah kemungkinan salah satu virtual child dari node
frequent, oleh karena itu node tersebut harus tersebut frequent, oleh karena itu node tersebut
diperiksa untuk proses ekspansi. harus di-expand.
Bentuk tabel Trans seperti pada Tabel 3. Tabel ini Semua child dari node tersebut telah ready.
berisi semua frequent item yang terdapat pada Atau dengan kata lain, apabila sebuah node
setiap transaksi pada database. tidak ready, maka parent-nya pasti juga tidak
ready.
Tabel 3 Selanjutnya adalah proses ekspansi trie. Pertama-
Frequent Item tama dilakukan perhitungan ES (Estimated
Support) terhadap semua virtual child dari sebuah
Tid Frequent Item
node yang tidak ready.
1 3457
3 1345
4 1457
5 134 (5,0)
7 134 4 5
(3,2)
Kemudian proses berikutnya adalah membaca
setiap baris dari tabel Trans untuk perhitungan 5 7 7
child error pada trie. Iterasi pertama akan (3,2) (2,0)
memproses baris pertama dari Tabel Trans (3, 4, 5,
7). Hal ini berarti hanya node-node level pertama
7
dari root (Gambar 2) dengan item tersebut beserta
semua child-nya pada trie yang akan diperiksa.
Gambar 8 menunjukkan proses perhitungan child Gambar 9
error pada node pertama dari baris pertama dari Node Yang Tidak Ready (Kuning)
Tabel Trans.
Trie ditelusuri secara depth first, jadi perhitungan
dilakukan terhadap virtual node 7 yang kiri
terlebih dahulu. Apabila nilai ES sebuah virtual
node lebih besar atau sama dengan nilai alfa
dikalikan nilai minimum support threshold, maka
virtual node tersebut akan dimaterialisasi. Nilai
alfa dikalikan nilai minimum support threshold
adalah = (0,72*2) = 1,44. Rumus untuk
perhitungan ES adalah :
ES(vi) = LP(vi) . PS(parent(vi))
dimana :
LP(vi) = local probability node vi.
Gambar 8 PS(parent(vi)) = pending support (child error) dari
Ilustrasi Perhitungan Child Error parent dari node vi.
Sedangkan rumus untuk menghitung LP (Local
4. Proses ekspansi trie Probability) dari sebuah virtual node adalah
probabilitas node tersebut dibagi dengan
2
Attila Gyenesei dan Jukka Teuhola, Probabilistic
probabilitas semua sibling-nya yang juga virtual.
Iterative Expansion of Candidates in Mining LP(vi) = prob(vi)/(1-(1-prob(v0)(1-prob(v1)…(1-
Frequent Itemsets, hal 3 prob(vs))
46
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
47
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
PENUTUP
DAFTAR PUSTAKA
48