Dinatek Algoritma PIE
FREQUENT ITEMSET MINING MENGGUNAKAN ALGORITMA PIE
Suhatati Tjandra
Dosen Teknik Informatika Sekolah Tinggi Teknik Surabaya
e-mail: [email protected]
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.
Kata kunci: Data Mining, PIE, Probabilistic, Itemset, trie
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.
Keywords: Data Mining, PIE, Probabilistic, Itemset, trie
PENDAHULUAN
Pada tahap kedua yaitu tahap pembentukan trie,
algoritma membentuk trie berdasarkan probabilitas
tiap item. Pada tahap ketiga algoritma menelusuri
database masukan untuk menghitung frekuensi
sekaligus child error dari setiap node pada trie.
Proses ini bertujuan untuk memeriksa apakah ada
virtual child dari setiap node pada trie yang
berpotensi untuk di-expand. Pada tahap terakhir
yaitu ekspansi trie, trie diperiksa apakah ada nodenode yang bisa di-expand. Proses ekspansi
dilakukan dengan berdasarkan pada perhitunganperhitungan tertentu.
Algoritma PIE (Probabilistic Iterative Expansion)
adalah sebuah algoritma frequent itemset mining
(FIM) yang menggunakan probabilitas item
sebagai dasar untuk men-generate kandidatkandidat 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.
Secara garis besar proses mining dengan
menggunakan algoritma PIE terdiri atas empat
tahap
yaitu
tahap
preprocessing,
tahap
pembentukan trie, tahap perhitungan frekuensi dan
child error dan tahap ekspansi trie.
Pada tahap preprocessing, algoritma mencari
semua frequent 1-itemset dengan menelusuri
database masukan sekaligus menyiapkan variablevariable yang dibutuhkan untuk pembentukan trie.
STRUKTUR DATA YANG DIGUNAKAN
Struktur data yang digunakan pada algoritma PIE
adalah trie. Sebuah trie lengkap untuk n item akan
41
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
mempunyai node sebanyak 2n. Gambar 1
menunjukkan sebuah trie lengkap untuk 4 item.1
Pada algoritma PIE, pembentukan trie secara
lengkap seperti contoh diatas akan dihindari
dengan menghitung probabilitas dari setiap node
yang akan dibuat pada trie. Apabila nilai
probabilitasnya lebih kecil dari relative minimum
support, maka node tersebut tidak akan dibuat.
0
1
2
1
2
3
3
3
2
2
3
3
3
3
3
Gambar 1
Trie Lengkap Untuk 4 Item
ALGORITMA PIE
Algoritma PIE (Probabilistic Iterative Expansion)
adalah sebuah algoritma data mining 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.
Algoritma 1 Algoritma PIE
Input: D (Database Transaksi); σ
(Minimum Support Threshold)
Output: Semua Frequent Itemset
1. [Baca dataset untuk preprocessing]
1.1 Scan D to do preprocessing
2. [Bentuk trie]
2.1 Build the trie based on items’
probabilities
3. [Hitung frekuensi dan child error]
3.1 Scan D to count items
frequencies and child errors
4. [Set ready nodes]
4.1 Set ready nodes to 1
5. [Expand trie]
5.1 If trie contains not ready
nodes
1
Attila Gyenesei dan Jukka Teuhola, Probabilistic
Iterative Expansion of Candidates in Mining
Frequent Itemsets, hal 2
42
5.1.1 expand trie
5.1.2 go to step 3
5.2 else
5.2.1 go to step 6
5.3 end if
6. [Tampilkan hasil frequent itemset]
6.1 Output FreqItems
Algoritma 1 merupakan algoritma utama pada
algoritma PIE ini. Pertama-tama dataset yang telah
dipersiapkan formatnya dibaca untuk melakukan
proses preprocessing. Kemudian trie dibentuk
berdasarkan probabilitas tiap item. Setelah itu
database ditelusuri kembali untuk menghitung
frekuensi sesungguhnya dari setiap node pada trie,
sekaligus menghitung child error-nya. Apabila
semua node pada trie mempunyai child error yang
lebih kecil dari minimum support threshold, maka
semua node tersebut adalah ready. Apabila ada
node yang belum ready, maka proses ekspansi
dilakukan dan diulangi lagi. Apabila semua node
telah ready, maka hasil semua frequent itemset
yang memenuhi minimum support threshold dapat
dibaca dari trie.
Algoritma 2 Algoritma Preprocessing
Input : D (Database Transaksi); σ
(Minimum Support Threshold)
Output : Rminsup dan Alfa
1. [Initial steps]
1.1 scan D and collect the set F
of frequent items
1.2 Alfa = average probability of
items in F
1.3 iter = 0
Algoritma 2 merupakan algoritma untuk
melakukan proses preprocessing pada algoritma
PIE. Pada proses ini, database ditelusuri dan
algoritma mencari semua frequent 1-itemset dan
alfa. Alfa adalah sebuah konstanta bernilai antara
0 dan 1 yang akan digunakan pada tahap ekspansi
dari trie. Cara mencari alfa adalah nilai rata-rata
probabilitas semua frequent 1-itemset.
Algoritma
3
Algoritma
Pembentukan
Trie
Input : semua hasil dari proses
preprocessing
Output : PIE trie P
1. [Bentuk trie]
1.1 create a PIE trie P so that it
contains all such ordered
subsets S F for which
(Prob(s S)).|D| >= σ
2. [Set ready nodes]
2.1 set the status of all nodes of
P to not ready
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
Algoritma 3 merupakan algoritma untuk
membentuk trie pada algoritma PIE. Trie dibentuk
berdasarkan probabilitas item, dimana apabila
probabilitas suatu item lebih kecil dari relative
minimum support, maka item tersebut tidak akan
ditambahkan kedalam trie.
Algoritma 4 Algoritma Ekspansi Trie
Input : PIE trie P
Output : expanded PIE trie P
// the main loop : alternating count,
test and expand
1. [Scan the database and check
readiness]
1.1 scan D and count the support
and pending support values for
non ready nodes in P
2. [Test readiness of each node]
2.1 iter = iter + 1
2.2 for each node p P do
2.2.1 if pending_support(p) < σ
2.2.1.1 if p is a leaf
2.2.1.1.1 set p ready
2.2.1.2 else
2.2.1.2.1 if the children of
p are ready
2.2.1.2.1.1 set p ready
2.2.1.2.2 end if
2.2.1.3 end if
2.2.2 end if
2.3 end for
2.4 if root(P) is ready
2.4.1 exit loop
2.5 end if
3. [Expansion phase]
3.1 for each non ready node p in P
do
3.1.1 if pending_support(p) >= σ
3.1.1.1 for each virtual child
v of p do
3.1.1.1.1 compute
local_prob(v)
3.1.1.1.2 estim_support(v) =
local_prob(v).pend
ing_support(p)
3.1.1.1.3 if estim_support(v)
>= iter.σ
3.1.1.1.3.1 create node v
as the child of p
3.1.1.1.3.2 add such
ordered subsets
S F\{1..v} as
descendant
paths of v, for
which (Prob(s
S)).estim_suppo
rt(v) >= iter.σ
3.1.1.1.4 end if
3.1.1.2 end for
3.1.2 end if
3.2 end for
Algoritma 4 merupakan loop utama pada
algoritma PIE. Algoritma ini akan secara
bergantian melakukan tiga proses yaitu
perhitungan frekuensi sebenarnya dari setiap node
pada trie, pemeriksaan apakah ada node pada trie
yang masih not ready dan proses ekspasi trie.
Proses ekspansi trie ini akan dilakukan terus
selama masih ada node pada trie yang belum
ready.
Algoritma 5 Algoritma Pembacaan Hasil
Dari Trie
Input : PIE trie P
Output : Frequent Itemsets FP
1. [Baca hasil dari trie]
1.1 return the paths for nodes p
in P such that support(p) >= σ
Algoritma 5 merupakan algoritma untuk membaca
semua hasil frequent itemset dari trie pada
algoritma PIE. Algoritma ini akan mengembalikan
semua path pada trie yang mana nilai support tiap
node yang dilaluinya lebih besar atau sama dengan
minimum support threshold.
Contoh Kasus
Tabel 1
Contoh Database Transaksi
Tid
1
2
3
4
5
Items
345679
1 3 4 5 13
1 2 4 5 7 11
1348
1 3 4 10
Misalkan user melakukan proses mining semua
frequent itemset dari sebuah database transaksi
seperti yang ditunjukkan pada Tabel 1 dengan
minimum support threshold dua transaksi.
Database diasumsikan telah dalam format seperti
pada Tabel 1 dan setiap item pada setiap
transaksinya urut secara ascending.
Langkah-langkah pembentukan trie pada algoritma
PIE untuk contoh dataset di atas dengan minimum
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
keseluruhan untuk mencari semua frequent 1itemset. Karena minimum support threshold-nya
adalah 2, maka semua item dengan kemunculan
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.
Tabel 2
Frequent Item
Item
1
3
4
5
7
Count
4
4
5
3
2
Kemudian dicari nilai alfa, yaitu sebuah konstanta
bernilai antara 0 dan 1 yang akan digunakan untuk
perhitungan pada tahap ekspansi trie. Cara mencari
alfa adalah nilai total nilai probabilitas semua
frequent 1-itemset dibagi dengan total jumlah
transaksi dalam database. Dalam contoh ini nilai
alfa adalah : ((4/5)+(4/5)+(5/5)+(3/5)+(2/5))/5 =
0,72.
Nilai relative minimum support (Rminsup) juga
akan dicari. Rminsup digunakan pada saat
pembentukan trie. Apabila nilai probabilitas suatu
node lebih besar atau sama dengan Rminsup, maka
node tersebut akan dibuat. Sebaliknya, apabila nilai
probabilitasnya lebih kecil, maka node tersebut
tidak akan dibuat. Hal ini bertujuan untuk
menghindari trie explosion atau pembentukan trie
secara lengkap. Cara mencari Rminsup adalah nilai
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.
Root pada trie dari algoritma PIE adalah sebuah
node dengan item kosong. Kemudian child dari
root tersebut adalah semua frequent 1-itemset.
Angka-angka yang ada disamping tiap node adalah
probabilitas dari tiap node tersebut. Cara mencari
44
probabilitas ini adalah nilai frekuensi item pada
setiap transaksi pada database dibagi dengan total
jumlah transaksi. Jadi misalkan untuk node 1 maka
(4/5) = 0,8.
Gambar 2
Root Dan Node-Node Level Pertama
Kemudian proses selanjutnya adalah pembentukan
child dari node-node level pertama. Proses ini
diiterasi sebanyak jumlah frequent 1-itemset
dikurangi 1. Karena pada contoh ini jumlah
frequent 1-itemset adalah 5, maka trie akan selesai
dibentuk setelah empat iterasi. Pada iterasi pertama
child dari node 1 akan dibentuk. Semua frequent 1itemset yang nilai item-nya lebih besar dari 1 akan
dicari probabilitasnya. Apabila hasilnya lebih besar
atau sama dengan Rminsup, maka node tersebut
akan ditambahkan sebagai child dari node 1.
Apabila hasilnya lebih kecil, maka node tersebut
tidak akan dibuat dan digambar dengan garis
putus-putus dan dinamakan virtual node. Virtual
node ini pada tahap ekspansi trie akan diperiksa
apakah dapat dimaterialisasi atau tidak.
Misal untuk child pertama dari node 1 pada branch
paling kiri yaitu node 3, nilai probabilitasnya
adalah 0,64. Nilai ini didapat dari probabilitas item
3 sendiri, yaitu 0,8, dikalikan dengan probabilitas
item 1, yaitu 0,8 juga. Karena hasilnya >=
Rminsup (0,4) maka node 3 dibuat. Perhitungan ini
berbeda dengan perhitungan probabilitas saat
pembentukan child dari root diatas, karena dalam
hal ini node 3 adalah child dari node 1, maka
probabilitas node 1 harus disertakan pula.
Gambar 3
Keadaan Child Pertama (Node 1) Dari Root
Setelah Iterasi Pertama
Pada iterasi kedua, child kedua dari root yaitu node
3 akan dicari child-nya. Caranya sama dengan
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
proses iterasi pertama., yaitu semua frequent 1itemset yang nilai item-nya lebih besar dari 3 akan
dicari probabilitasnya. Apabila hasilnya lebih besar
atau sama dengan Rminsup, maka node tersebut
akan ditambahkan sebagai child dari node 3.
Gambar 6
Keadaan Child Keempat (Node 5) Dari
Root Setelah Iterasi Keempat
0,8
0,8
0,32
0,48
4
0,48
3
5
0,32
5
7
0,19
7
7
0,19
7
Gambar 4
Keadaan Child Kedua (Node 3) Dari Root
Setelah Iterasi Kedua
Pada iterasi ketiga, child kedua dari root yaitu node
4 akan dicari child-nya. Caranya sama dengan
proses iterasi pertama dan kedua, yaitu semua
frequent 1-itemset yang nilai item-nya lebih besar
dari 4 akan dicari probabilitasnya. Apabila
hasilnya lebih besar atau sama dengan Rminsup,
maka node tersebut akan ditambahkan sebagai
child dari node 4.
1
4
0,6
0,4
5
7
Apabila hasilnya lebih besar atau sama dengan
Rminsup, maka node tersebut akan ditambahkan
sebagai child dari node 5.
Setelah iterasi keempat masih ada satu node child
terakhir dari root, yaitu node 7. Akan tetapi karena
item 7 adalah frequent 1-itemset terbesar maka dia
tidak mempunyai child. Oleh karena itu setelah
menambahkan node 7 sebagai child dari root maka
trie telah terbentuk secara lengkap. Dapat dilihat
pada trie hasil algoritma PIE hanya mempunyai 15
node. Jika dibandingkan dengan trie lengkap
apabila semua node dibuat tanpa pemeriksaan
probabilitas item, dimana terdapat 31 node, maka
trie hasil algoritma PIE jauh lebih sedikit. Hal ini
dilakukan untuk menghindari trie explosion atau
pembuatan node-node pada trie yang belum tentu
merupakan frequent itemset.
3. Perhitungan frekuensi dan child error
Proses selanjutnya adalah penghitungan frekuensi
sebenarnya dan child error dari tiap node pada trie.
Hal ini dilakukan dengan menelusuri sekali lagi
database secara keseluruhan dan hanya item yang
frequent yang dipilih dari setiap transaksinya.
Child error atau yang disebut juga PS (Pending
Support) adalah sebuah variable yang digunakan
untuk menyimpan informasi jumlah transaksi
dalam database yang mengandung suatu node.
Variable child error pada algoritma PIE digunakan
pada tahap ekspansi trie.
0,24
PS = 100
7
A
Gambar 5
Keadaan Child Ketiga (Node 4) Dari Root
Setelah Iterasi Ketiga
Pada iterasi keempat, child kedua dari root yaitu
node 5 akan dicari child-nya. Caranya sama
dengan proses iterasi pertama, kedua dan ketiga,
yaitu semua frequent 1-itemset yang nilai item-nya
lebih besar dari 5 akan dicari probabilitasnya.
B
E
D
C
F
G
Gambar 7
Ilustrasi Child Error
0,6
5
0,24
7
45
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
Misalkan nilai minimum support threshold untuk
trie diatas adalah 80. Sebuah node A mempunyai
child error = 100. Hal ini berarti pada database
masukan terdapat 100 transaksi yang mengandung
item sepanjang path dari root menuju node A
tersebut, termasuk item C dan/atau item D.2
Apabila nilai child error suatu node lebih besar
atau sama dengan nilai minimum support
threshold, maka ada kemungkinan salah satu atau
kedua virtual child dari node tersebut adalah
frequent, oleh karena itu node tersebut harus
diperiksa untuk proses ekspansi.
Bentuk tabel Trans seperti pada Tabel 3. Tabel ini
berisi semua frequent item yang terdapat pada
setiap transaksi pada database.
Tabel 3
Frequent Item
Tid
1
3
4
5
7
Frequent Item
3457
1345
1457
134
134
Kemudian proses berikutnya adalah membaca
setiap baris dari tabel Trans untuk perhitungan
child error pada trie. Iterasi pertama akan
memproses baris pertama dari Tabel Trans (3, 4, 5,
7). Hal ini berarti hanya node-node level pertama
dari root (Gambar 2) dengan item tersebut beserta
semua child-nya pada trie yang akan diperiksa.
Gambar 8 menunjukkan proses perhitungan child
error pada node pertama dari baris pertama dari
Tabel Trans.
Gambar 8
Ilustrasi Perhitungan Child Error
4. Proses ekspansi trie
2
Attila Gyenesei dan Jukka Teuhola, Probabilistic
Iterative Expansion of Candidates in Mining
Frequent Itemsets, hal 3
46
Dengan berakhirnya iterasi kelima diatas, maka
trie telah terbentuk secara lengkap. Langkah
selanjutnya adalah memeriksa apakah semua node
pada trie telah ready. Sebuah node dikatakan ready
apabila :
Nilai child error-nya lebih kecil dari minimum
support threshold. Apabila nilai child error
suatu node lebih besar atau sama dengan
minimum support threshold, maka ada
kemungkinan salah satu virtual child dari node
tersebut frequent, oleh karena itu node tersebut
harus di-expand.
Semua child dari node tersebut telah ready.
Atau dengan kata lain, apabila sebuah node
tidak ready, maka parent-nya pasti juga tidak
ready.
Selanjutnya adalah proses ekspansi trie. Pertamatama dilakukan perhitungan ES (Estimated
Support) terhadap semua virtual child dari sebuah
node yang tidak ready.
(5,0)
4
5
(3,2)
(3,2)
7
5
7
(2,0)
7
Gambar 9
Node Yang Tidak Ready (Kuning)
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.
PS(parent(vi)) = pending support (child error) dari
parent dari node vi.
Sedangkan rumus untuk menghitung LP (Local
Probability) dari sebuah virtual node adalah
probabilitas node tersebut dibagi dengan
probabilitas semua sibling-nya yang juga virtual.
LP(vi) = prob(vi)/(1-(1-prob(v0)(1-prob(v1)…(1prob(vs))
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
Pertama-tama virtual node 7 yang kiri bawah
dihitung terlebih dahulu. Nilai probabilitas untuk
node ini adalah 2/5 = 0,4. Perlu diketahui bahwa
nilai probabilitas yang dihitung disini adalah nilai
probabilitas single item tersebut, bukan yang
sudah dikalikan dengan parent-nya seperti pada
proses awal pembentukan trie. Jadi nilai local
probability-nya adalah = 0,4/(1-(1-0,4)) = 1.
Kemudian nilai estimated support-nya adalah =
(1.2) = 2. Karena 2 > 1,44 maka virtual node 7 ini
dimaterialisasi.
Untuk virtual node berikutnya yaitu virtual node 7
yang kanan dapat dihitung dengan cara yang sama.
Nilai probabilitas untuk node ini adalah 2/5 = 0,4.
Jadi nilai local probability-nya adalah = 0,4/(1-(10,4)) = 1. Kemudian nilai estimated support-nya
adalah = (1.2) = 2. Karena 2 > 1,44 maka virtual
node 7 ini juga dimaterialisasi.
Selanjutnya algoritma akan membaca database
masukan lagi untuk menghitung frekuensi
sebenarnya dan child error dari setiap node yang
baru dimaterialisasi tadi. Apabila child error
semua node pada trie telah < dari minimum
support threshold, maka trie dapat dikatakan telah
ready dan semua path dari trie yang mempunyai
node yang support-nya lebih besar atau sama
dengan minimum support threshold adalah hasil
dari proses mining algoritma ini. Tetapi apabila
masih terdapat node dengan child error >=
minimum support threshold, maka trie dikatakan
belum ready dan algoritma kembali ke proses
ekspansi.
Apabila tidak ada lagi node pada trie yang tidak
ready setelah proses ekpansi pertama ini, maka trie
telah selesai dibentuk dan semua hasil frequent
itemset dapat dibaca dari trie.
Tabel 4
Frequent Itemset Yang Dihasilkan
Itemset
{1}
{1, 3}
{1, 3, 4}
{1, 4}
{1, 4, 5}
{1, 5}
{3}
{3, 4}
{3, 4, 5}
Count
4
3
3
4
2
2
4
4
2
Itemset
{3, 5}
{4}
{4, 5}
{4, 5, 7}
{4, 7}
{5}
{5, 7}
{7}
Count
2
5
3
2
2
3
2
2
Untuk proses generate rule dapat dilakukan
dengan algoritma strong association rule. Misal
untuk itemset {1, 3, 4} dengan confidence = 0,
rule yang dihasilkan dapat dilihat pada Tabel 5.
Tabel 5
Association Rule Untuk Itemset {1, 3, 4}
(Confidence = 0)
Rule
{1} {3, 4}
{3} {1, 4}
{4} {1, 3}
{1, 3} {4}
{1, 4} {3}
{3, 4} {1}
Support
3/5
3/5
3/5
3/5
3/5
3/5
Confidence
3/4
3/4
3/5
3/3
3/4
3/4
HASIL UJI COBA
Algoritma ini diuji cobakan pada tiga dataset yaitu
dataset Chess,Mushroom dan T10I4D100K.
Dataset Chess merupakan dense data set dengan
3196 transaksi dan 75 item
Tabel 6
Waktu Yang dibutuhkan untuk me-mining
dataset Chess
Minimum
Support
50%
60%
70%
80%
90%
Waktu yang diperlukan
00:32:23:500
00:05:03:179
00:00:57:906
00:00:03:789
00:00:00:234
Dataset Mushroom merupakan less dense dataset
dengan 8124 transaksi dan 119 item
Tabel 7
Waktu Yang dibutuhkan untuk me-mining
dataset Mushroom
Minimum
Support
10%
20%
30%
40%
50%
Waktu yang
diperlukan
00:31:42:516
00:00:43:453
00:00:01:125
00:00:00:297
00:00:00:110
Dataset T10I4D100K merupakan sparse dataset
dengan 100000 transaksi dan 1000 item
Tabel 8
Waktu Yang dibutuhkan untuk me-mining
dataset T10I4D100K
47
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
Minimum
Support
0.6%
0.8%
1%
1.2%
1.4%
Waktu yang
diperlukan
00:00:04:250
00:00:02:844
00:00:02:109
00:00:01:734
00:00:01:203
Untuk dataset dense seperti chess, nilai minimum
support yang diberikan harus tinggi dan sebaliknya
untuk dataset sparse seperti T10I4D100K, nilai
minimum support yang diberikan harus rendah.
Hal ini dikarenakan pada dataset dense transaksi
satu dengan lainnya banyak yang mirip. Oleh
karena itu besar kemungkinan sebuah item untuk
menjadi frequent. Sebaliknya untuk dataset sparse,
transaksi satu dengan lainnya jarang yang mirip.
Oleh karena itu kecil kemungkinan sebuah item
untuk menjadi frequent.
PENUTUP
Semakin tinggi nilai minimum support,
semakin sedikit waktu yang diperlukan oleh
untuk melakukan mining dan semakin sedikit
pula frequent itemset yang dihasilkan. Hal ini
dikarenakan apabila nilai support tinggi, maka
jumlah frequent item pada database yang
memenuhi nilai tersebut akan semakin sedikit,
sehingga trie semakin kecil. Sebaliknya,
semakin rendah nilai minimum support,
semakin banyak waktu yang diperlukan oleh
melakukan mining dan semakin banyak pula
frequent itemset yang dihasilkan.
Untuk dataset dense seperti chess, nilai
minimum support yang diberikan harus tinggi
dan sebaliknya untuk dataset sparse seperti
T10I4D100K, nilai minimum support yang
diberikan harus rendah. Hal ini dikarenakan
pada dataset dense transaksi satu dengan
lainnya banyak yang mirip. Oleh karena itu
besar kemungkinan sebuah item untuk menjadi
frequent. Sebaliknya untuk dataset sparse,
transaksi satu dengan lainnya jarang yang
mirip. Oleh karena itu kecil kemungkinan
sebuah item untuk menjadi frequent.
Algoritma PIE memakai memory yang cukup
besar, hal ini dikarenakan algoritma PIE
melakukan kalkulasi setiap akan membentuk
sebuah node.
DAFTAR PUSTAKA
1. Attila Gyenesei dan Jukka Teuhola,
Probabilistic Iterative Expansion of Candidates
48
in Mining Frequent Itemsets, Turku Centre for
Computer Science, Department of Information
Technology, University of Turku, Finland.
2. Jiawei Han dan Micheline Kamber, Data
Mining, Concepts and Techniques, Morgan
Kaufmann Publishers. 340 Pine Street, Sixth
Floor, San Fransisco, USA, 2001.
3. R. Agrawal dan R. Srikant, Fast Algorithms
for Mining Association Rules, Proceedings of
the 20th International Conference on Very
Large Databases, Santiago, Chile, 1994.
Suhatati Tjandra
Dosen Teknik Informatika Sekolah Tinggi Teknik Surabaya
e-mail: [email protected]
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.
Kata kunci: Data Mining, PIE, Probabilistic, Itemset, trie
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.
Keywords: Data Mining, PIE, Probabilistic, Itemset, trie
PENDAHULUAN
Pada tahap kedua yaitu tahap pembentukan trie,
algoritma membentuk trie berdasarkan probabilitas
tiap item. Pada tahap ketiga algoritma menelusuri
database masukan untuk menghitung frekuensi
sekaligus child error dari setiap node pada trie.
Proses ini bertujuan untuk memeriksa apakah ada
virtual child dari setiap node pada trie yang
berpotensi untuk di-expand. Pada tahap terakhir
yaitu ekspansi trie, trie diperiksa apakah ada nodenode yang bisa di-expand. Proses ekspansi
dilakukan dengan berdasarkan pada perhitunganperhitungan tertentu.
Algoritma PIE (Probabilistic Iterative Expansion)
adalah sebuah algoritma frequent itemset mining
(FIM) yang menggunakan probabilitas item
sebagai dasar untuk men-generate kandidatkandidat 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.
Secara garis besar proses mining dengan
menggunakan algoritma PIE terdiri atas empat
tahap
yaitu
tahap
preprocessing,
tahap
pembentukan trie, tahap perhitungan frekuensi dan
child error dan tahap ekspansi trie.
Pada tahap preprocessing, algoritma mencari
semua frequent 1-itemset dengan menelusuri
database masukan sekaligus menyiapkan variablevariable yang dibutuhkan untuk pembentukan trie.
STRUKTUR DATA YANG DIGUNAKAN
Struktur data yang digunakan pada algoritma PIE
adalah trie. Sebuah trie lengkap untuk n item akan
41
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
mempunyai node sebanyak 2n. Gambar 1
menunjukkan sebuah trie lengkap untuk 4 item.1
Pada algoritma PIE, pembentukan trie secara
lengkap seperti contoh diatas akan dihindari
dengan menghitung probabilitas dari setiap node
yang akan dibuat pada trie. Apabila nilai
probabilitasnya lebih kecil dari relative minimum
support, maka node tersebut tidak akan dibuat.
0
1
2
1
2
3
3
3
2
2
3
3
3
3
3
Gambar 1
Trie Lengkap Untuk 4 Item
ALGORITMA PIE
Algoritma PIE (Probabilistic Iterative Expansion)
adalah sebuah algoritma data mining 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.
Algoritma 1 Algoritma PIE
Input: D (Database Transaksi); σ
(Minimum Support Threshold)
Output: Semua Frequent Itemset
1. [Baca dataset untuk preprocessing]
1.1 Scan D to do preprocessing
2. [Bentuk trie]
2.1 Build the trie based on items’
probabilities
3. [Hitung frekuensi dan child error]
3.1 Scan D to count items
frequencies and child errors
4. [Set ready nodes]
4.1 Set ready nodes to 1
5. [Expand trie]
5.1 If trie contains not ready
nodes
1
Attila Gyenesei dan Jukka Teuhola, Probabilistic
Iterative Expansion of Candidates in Mining
Frequent Itemsets, hal 2
42
5.1.1 expand trie
5.1.2 go to step 3
5.2 else
5.2.1 go to step 6
5.3 end if
6. [Tampilkan hasil frequent itemset]
6.1 Output FreqItems
Algoritma 1 merupakan algoritma utama pada
algoritma PIE ini. Pertama-tama dataset yang telah
dipersiapkan formatnya dibaca untuk melakukan
proses preprocessing. Kemudian trie dibentuk
berdasarkan probabilitas tiap item. Setelah itu
database ditelusuri kembali untuk menghitung
frekuensi sesungguhnya dari setiap node pada trie,
sekaligus menghitung child error-nya. Apabila
semua node pada trie mempunyai child error yang
lebih kecil dari minimum support threshold, maka
semua node tersebut adalah ready. Apabila ada
node yang belum ready, maka proses ekspansi
dilakukan dan diulangi lagi. Apabila semua node
telah ready, maka hasil semua frequent itemset
yang memenuhi minimum support threshold dapat
dibaca dari trie.
Algoritma 2 Algoritma Preprocessing
Input : D (Database Transaksi); σ
(Minimum Support Threshold)
Output : Rminsup dan Alfa
1. [Initial steps]
1.1 scan D and collect the set F
of frequent items
1.2 Alfa = average probability of
items in F
1.3 iter = 0
Algoritma 2 merupakan algoritma untuk
melakukan proses preprocessing pada algoritma
PIE. Pada proses ini, database ditelusuri dan
algoritma mencari semua frequent 1-itemset dan
alfa. Alfa adalah sebuah konstanta bernilai antara
0 dan 1 yang akan digunakan pada tahap ekspansi
dari trie. Cara mencari alfa adalah nilai rata-rata
probabilitas semua frequent 1-itemset.
Algoritma
3
Algoritma
Pembentukan
Trie
Input : semua hasil dari proses
preprocessing
Output : PIE trie P
1. [Bentuk trie]
1.1 create a PIE trie P so that it
contains all such ordered
subsets S F for which
(Prob(s S)).|D| >= σ
2. [Set ready nodes]
2.1 set the status of all nodes of
P to not ready
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
Algoritma 3 merupakan algoritma untuk
membentuk trie pada algoritma PIE. Trie dibentuk
berdasarkan probabilitas item, dimana apabila
probabilitas suatu item lebih kecil dari relative
minimum support, maka item tersebut tidak akan
ditambahkan kedalam trie.
Algoritma 4 Algoritma Ekspansi Trie
Input : PIE trie P
Output : expanded PIE trie P
// the main loop : alternating count,
test and expand
1. [Scan the database and check
readiness]
1.1 scan D and count the support
and pending support values for
non ready nodes in P
2. [Test readiness of each node]
2.1 iter = iter + 1
2.2 for each node p P do
2.2.1 if pending_support(p) < σ
2.2.1.1 if p is a leaf
2.2.1.1.1 set p ready
2.2.1.2 else
2.2.1.2.1 if the children of
p are ready
2.2.1.2.1.1 set p ready
2.2.1.2.2 end if
2.2.1.3 end if
2.2.2 end if
2.3 end for
2.4 if root(P) is ready
2.4.1 exit loop
2.5 end if
3. [Expansion phase]
3.1 for each non ready node p in P
do
3.1.1 if pending_support(p) >= σ
3.1.1.1 for each virtual child
v of p do
3.1.1.1.1 compute
local_prob(v)
3.1.1.1.2 estim_support(v) =
local_prob(v).pend
ing_support(p)
3.1.1.1.3 if estim_support(v)
>= iter.σ
3.1.1.1.3.1 create node v
as the child of p
3.1.1.1.3.2 add such
ordered subsets
S F\{1..v} as
descendant
paths of v, for
which (Prob(s
S)).estim_suppo
rt(v) >= iter.σ
3.1.1.1.4 end if
3.1.1.2 end for
3.1.2 end if
3.2 end for
Algoritma 4 merupakan loop utama pada
algoritma PIE. Algoritma ini akan secara
bergantian melakukan tiga proses yaitu
perhitungan frekuensi sebenarnya dari setiap node
pada trie, pemeriksaan apakah ada node pada trie
yang masih not ready dan proses ekspasi trie.
Proses ekspansi trie ini akan dilakukan terus
selama masih ada node pada trie yang belum
ready.
Algoritma 5 Algoritma Pembacaan Hasil
Dari Trie
Input : PIE trie P
Output : Frequent Itemsets FP
1. [Baca hasil dari trie]
1.1 return the paths for nodes p
in P such that support(p) >= σ
Algoritma 5 merupakan algoritma untuk membaca
semua hasil frequent itemset dari trie pada
algoritma PIE. Algoritma ini akan mengembalikan
semua path pada trie yang mana nilai support tiap
node yang dilaluinya lebih besar atau sama dengan
minimum support threshold.
Contoh Kasus
Tabel 1
Contoh Database Transaksi
Tid
1
2
3
4
5
Items
345679
1 3 4 5 13
1 2 4 5 7 11
1348
1 3 4 10
Misalkan user melakukan proses mining semua
frequent itemset dari sebuah database transaksi
seperti yang ditunjukkan pada Tabel 1 dengan
minimum support threshold dua transaksi.
Database diasumsikan telah dalam format seperti
pada Tabel 1 dan setiap item pada setiap
transaksinya urut secara ascending.
Langkah-langkah pembentukan trie pada algoritma
PIE untuk contoh dataset di atas dengan minimum
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
keseluruhan untuk mencari semua frequent 1itemset. Karena minimum support threshold-nya
adalah 2, maka semua item dengan kemunculan
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.
Tabel 2
Frequent Item
Item
1
3
4
5
7
Count
4
4
5
3
2
Kemudian dicari nilai alfa, yaitu sebuah konstanta
bernilai antara 0 dan 1 yang akan digunakan untuk
perhitungan pada tahap ekspansi trie. Cara mencari
alfa adalah nilai total nilai probabilitas semua
frequent 1-itemset dibagi dengan total jumlah
transaksi dalam database. Dalam contoh ini nilai
alfa adalah : ((4/5)+(4/5)+(5/5)+(3/5)+(2/5))/5 =
0,72.
Nilai relative minimum support (Rminsup) juga
akan dicari. Rminsup digunakan pada saat
pembentukan trie. Apabila nilai probabilitas suatu
node lebih besar atau sama dengan Rminsup, maka
node tersebut akan dibuat. Sebaliknya, apabila nilai
probabilitasnya lebih kecil, maka node tersebut
tidak akan dibuat. Hal ini bertujuan untuk
menghindari trie explosion atau pembentukan trie
secara lengkap. Cara mencari Rminsup adalah nilai
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.
Root pada trie dari algoritma PIE adalah sebuah
node dengan item kosong. Kemudian child dari
root tersebut adalah semua frequent 1-itemset.
Angka-angka yang ada disamping tiap node adalah
probabilitas dari tiap node tersebut. Cara mencari
44
probabilitas ini adalah nilai frekuensi item pada
setiap transaksi pada database dibagi dengan total
jumlah transaksi. Jadi misalkan untuk node 1 maka
(4/5) = 0,8.
Gambar 2
Root Dan Node-Node Level Pertama
Kemudian proses selanjutnya adalah pembentukan
child dari node-node level pertama. Proses ini
diiterasi sebanyak jumlah frequent 1-itemset
dikurangi 1. Karena pada contoh ini jumlah
frequent 1-itemset adalah 5, maka trie akan selesai
dibentuk setelah empat iterasi. Pada iterasi pertama
child dari node 1 akan dibentuk. Semua frequent 1itemset yang nilai item-nya lebih besar dari 1 akan
dicari probabilitasnya. Apabila hasilnya lebih besar
atau sama dengan Rminsup, maka node tersebut
akan ditambahkan sebagai child dari node 1.
Apabila hasilnya lebih kecil, maka node tersebut
tidak akan dibuat dan digambar dengan garis
putus-putus dan dinamakan virtual node. Virtual
node ini pada tahap ekspansi trie akan diperiksa
apakah dapat dimaterialisasi atau tidak.
Misal untuk child pertama dari node 1 pada branch
paling kiri yaitu node 3, nilai probabilitasnya
adalah 0,64. Nilai ini didapat dari probabilitas item
3 sendiri, yaitu 0,8, dikalikan dengan probabilitas
item 1, yaitu 0,8 juga. Karena hasilnya >=
Rminsup (0,4) maka node 3 dibuat. Perhitungan ini
berbeda dengan perhitungan probabilitas saat
pembentukan child dari root diatas, karena dalam
hal ini node 3 adalah child dari node 1, maka
probabilitas node 1 harus disertakan pula.
Gambar 3
Keadaan Child Pertama (Node 1) Dari Root
Setelah Iterasi Pertama
Pada iterasi kedua, child kedua dari root yaitu node
3 akan dicari child-nya. Caranya sama dengan
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
proses iterasi pertama., yaitu semua frequent 1itemset yang nilai item-nya lebih besar dari 3 akan
dicari probabilitasnya. Apabila hasilnya lebih besar
atau sama dengan Rminsup, maka node tersebut
akan ditambahkan sebagai child dari node 3.
Gambar 6
Keadaan Child Keempat (Node 5) Dari
Root Setelah Iterasi Keempat
0,8
0,8
0,32
0,48
4
0,48
3
5
0,32
5
7
0,19
7
7
0,19
7
Gambar 4
Keadaan Child Kedua (Node 3) Dari Root
Setelah Iterasi Kedua
Pada iterasi ketiga, child kedua dari root yaitu node
4 akan dicari child-nya. Caranya sama dengan
proses iterasi pertama dan kedua, yaitu semua
frequent 1-itemset yang nilai item-nya lebih besar
dari 4 akan dicari probabilitasnya. Apabila
hasilnya lebih besar atau sama dengan Rminsup,
maka node tersebut akan ditambahkan sebagai
child dari node 4.
1
4
0,6
0,4
5
7
Apabila hasilnya lebih besar atau sama dengan
Rminsup, maka node tersebut akan ditambahkan
sebagai child dari node 5.
Setelah iterasi keempat masih ada satu node child
terakhir dari root, yaitu node 7. Akan tetapi karena
item 7 adalah frequent 1-itemset terbesar maka dia
tidak mempunyai child. Oleh karena itu setelah
menambahkan node 7 sebagai child dari root maka
trie telah terbentuk secara lengkap. Dapat dilihat
pada trie hasil algoritma PIE hanya mempunyai 15
node. Jika dibandingkan dengan trie lengkap
apabila semua node dibuat tanpa pemeriksaan
probabilitas item, dimana terdapat 31 node, maka
trie hasil algoritma PIE jauh lebih sedikit. Hal ini
dilakukan untuk menghindari trie explosion atau
pembuatan node-node pada trie yang belum tentu
merupakan frequent itemset.
3. Perhitungan frekuensi dan child error
Proses selanjutnya adalah penghitungan frekuensi
sebenarnya dan child error dari tiap node pada trie.
Hal ini dilakukan dengan menelusuri sekali lagi
database secara keseluruhan dan hanya item yang
frequent yang dipilih dari setiap transaksinya.
Child error atau yang disebut juga PS (Pending
Support) adalah sebuah variable yang digunakan
untuk menyimpan informasi jumlah transaksi
dalam database yang mengandung suatu node.
Variable child error pada algoritma PIE digunakan
pada tahap ekspansi trie.
0,24
PS = 100
7
A
Gambar 5
Keadaan Child Ketiga (Node 4) Dari Root
Setelah Iterasi Ketiga
Pada iterasi keempat, child kedua dari root yaitu
node 5 akan dicari child-nya. Caranya sama
dengan proses iterasi pertama, kedua dan ketiga,
yaitu semua frequent 1-itemset yang nilai item-nya
lebih besar dari 5 akan dicari probabilitasnya.
B
E
D
C
F
G
Gambar 7
Ilustrasi Child Error
0,6
5
0,24
7
45
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
Misalkan nilai minimum support threshold untuk
trie diatas adalah 80. Sebuah node A mempunyai
child error = 100. Hal ini berarti pada database
masukan terdapat 100 transaksi yang mengandung
item sepanjang path dari root menuju node A
tersebut, termasuk item C dan/atau item D.2
Apabila nilai child error suatu node lebih besar
atau sama dengan nilai minimum support
threshold, maka ada kemungkinan salah satu atau
kedua virtual child dari node tersebut adalah
frequent, oleh karena itu node tersebut harus
diperiksa untuk proses ekspansi.
Bentuk tabel Trans seperti pada Tabel 3. Tabel ini
berisi semua frequent item yang terdapat pada
setiap transaksi pada database.
Tabel 3
Frequent Item
Tid
1
3
4
5
7
Frequent Item
3457
1345
1457
134
134
Kemudian proses berikutnya adalah membaca
setiap baris dari tabel Trans untuk perhitungan
child error pada trie. Iterasi pertama akan
memproses baris pertama dari Tabel Trans (3, 4, 5,
7). Hal ini berarti hanya node-node level pertama
dari root (Gambar 2) dengan item tersebut beserta
semua child-nya pada trie yang akan diperiksa.
Gambar 8 menunjukkan proses perhitungan child
error pada node pertama dari baris pertama dari
Tabel Trans.
Gambar 8
Ilustrasi Perhitungan Child Error
4. Proses ekspansi trie
2
Attila Gyenesei dan Jukka Teuhola, Probabilistic
Iterative Expansion of Candidates in Mining
Frequent Itemsets, hal 3
46
Dengan berakhirnya iterasi kelima diatas, maka
trie telah terbentuk secara lengkap. Langkah
selanjutnya adalah memeriksa apakah semua node
pada trie telah ready. Sebuah node dikatakan ready
apabila :
Nilai child error-nya lebih kecil dari minimum
support threshold. Apabila nilai child error
suatu node lebih besar atau sama dengan
minimum support threshold, maka ada
kemungkinan salah satu virtual child dari node
tersebut frequent, oleh karena itu node tersebut
harus di-expand.
Semua child dari node tersebut telah ready.
Atau dengan kata lain, apabila sebuah node
tidak ready, maka parent-nya pasti juga tidak
ready.
Selanjutnya adalah proses ekspansi trie. Pertamatama dilakukan perhitungan ES (Estimated
Support) terhadap semua virtual child dari sebuah
node yang tidak ready.
(5,0)
4
5
(3,2)
(3,2)
7
5
7
(2,0)
7
Gambar 9
Node Yang Tidak Ready (Kuning)
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.
PS(parent(vi)) = pending support (child error) dari
parent dari node vi.
Sedangkan rumus untuk menghitung LP (Local
Probability) dari sebuah virtual node adalah
probabilitas node tersebut dibagi dengan
probabilitas semua sibling-nya yang juga virtual.
LP(vi) = prob(vi)/(1-(1-prob(v0)(1-prob(v1)…(1prob(vs))
Analisa Pencarian frequent Itemsets menggunakan Algoritma fp-Max (Suhatati Tjandra)
Pertama-tama virtual node 7 yang kiri bawah
dihitung terlebih dahulu. Nilai probabilitas untuk
node ini adalah 2/5 = 0,4. Perlu diketahui bahwa
nilai probabilitas yang dihitung disini adalah nilai
probabilitas single item tersebut, bukan yang
sudah dikalikan dengan parent-nya seperti pada
proses awal pembentukan trie. Jadi nilai local
probability-nya adalah = 0,4/(1-(1-0,4)) = 1.
Kemudian nilai estimated support-nya adalah =
(1.2) = 2. Karena 2 > 1,44 maka virtual node 7 ini
dimaterialisasi.
Untuk virtual node berikutnya yaitu virtual node 7
yang kanan dapat dihitung dengan cara yang sama.
Nilai probabilitas untuk node ini adalah 2/5 = 0,4.
Jadi nilai local probability-nya adalah = 0,4/(1-(10,4)) = 1. Kemudian nilai estimated support-nya
adalah = (1.2) = 2. Karena 2 > 1,44 maka virtual
node 7 ini juga dimaterialisasi.
Selanjutnya algoritma akan membaca database
masukan lagi untuk menghitung frekuensi
sebenarnya dan child error dari setiap node yang
baru dimaterialisasi tadi. Apabila child error
semua node pada trie telah < dari minimum
support threshold, maka trie dapat dikatakan telah
ready dan semua path dari trie yang mempunyai
node yang support-nya lebih besar atau sama
dengan minimum support threshold adalah hasil
dari proses mining algoritma ini. Tetapi apabila
masih terdapat node dengan child error >=
minimum support threshold, maka trie dikatakan
belum ready dan algoritma kembali ke proses
ekspansi.
Apabila tidak ada lagi node pada trie yang tidak
ready setelah proses ekpansi pertama ini, maka trie
telah selesai dibentuk dan semua hasil frequent
itemset dapat dibaca dari trie.
Tabel 4
Frequent Itemset Yang Dihasilkan
Itemset
{1}
{1, 3}
{1, 3, 4}
{1, 4}
{1, 4, 5}
{1, 5}
{3}
{3, 4}
{3, 4, 5}
Count
4
3
3
4
2
2
4
4
2
Itemset
{3, 5}
{4}
{4, 5}
{4, 5, 7}
{4, 7}
{5}
{5, 7}
{7}
Count
2
5
3
2
2
3
2
2
Untuk proses generate rule dapat dilakukan
dengan algoritma strong association rule. Misal
untuk itemset {1, 3, 4} dengan confidence = 0,
rule yang dihasilkan dapat dilihat pada Tabel 5.
Tabel 5
Association Rule Untuk Itemset {1, 3, 4}
(Confidence = 0)
Rule
{1} {3, 4}
{3} {1, 4}
{4} {1, 3}
{1, 3} {4}
{1, 4} {3}
{3, 4} {1}
Support
3/5
3/5
3/5
3/5
3/5
3/5
Confidence
3/4
3/4
3/5
3/3
3/4
3/4
HASIL UJI COBA
Algoritma ini diuji cobakan pada tiga dataset yaitu
dataset Chess,Mushroom dan T10I4D100K.
Dataset Chess merupakan dense data set dengan
3196 transaksi dan 75 item
Tabel 6
Waktu Yang dibutuhkan untuk me-mining
dataset Chess
Minimum
Support
50%
60%
70%
80%
90%
Waktu yang diperlukan
00:32:23:500
00:05:03:179
00:00:57:906
00:00:03:789
00:00:00:234
Dataset Mushroom merupakan less dense dataset
dengan 8124 transaksi dan 119 item
Tabel 7
Waktu Yang dibutuhkan untuk me-mining
dataset Mushroom
Minimum
Support
10%
20%
30%
40%
50%
Waktu yang
diperlukan
00:31:42:516
00:00:43:453
00:00:01:125
00:00:00:297
00:00:00:110
Dataset T10I4D100K merupakan sparse dataset
dengan 100000 transaksi dan 1000 item
Tabel 8
Waktu Yang dibutuhkan untuk me-mining
dataset T10I4D100K
47
DINAMIKA TEKNOLOGI Vol. 3, No. 2; April 2009: 41-47
Minimum
Support
0.6%
0.8%
1%
1.2%
1.4%
Waktu yang
diperlukan
00:00:04:250
00:00:02:844
00:00:02:109
00:00:01:734
00:00:01:203
Untuk dataset dense seperti chess, nilai minimum
support yang diberikan harus tinggi dan sebaliknya
untuk dataset sparse seperti T10I4D100K, nilai
minimum support yang diberikan harus rendah.
Hal ini dikarenakan pada dataset dense transaksi
satu dengan lainnya banyak yang mirip. Oleh
karena itu besar kemungkinan sebuah item untuk
menjadi frequent. Sebaliknya untuk dataset sparse,
transaksi satu dengan lainnya jarang yang mirip.
Oleh karena itu kecil kemungkinan sebuah item
untuk menjadi frequent.
PENUTUP
Semakin tinggi nilai minimum support,
semakin sedikit waktu yang diperlukan oleh
untuk melakukan mining dan semakin sedikit
pula frequent itemset yang dihasilkan. Hal ini
dikarenakan apabila nilai support tinggi, maka
jumlah frequent item pada database yang
memenuhi nilai tersebut akan semakin sedikit,
sehingga trie semakin kecil. Sebaliknya,
semakin rendah nilai minimum support,
semakin banyak waktu yang diperlukan oleh
melakukan mining dan semakin banyak pula
frequent itemset yang dihasilkan.
Untuk dataset dense seperti chess, nilai
minimum support yang diberikan harus tinggi
dan sebaliknya untuk dataset sparse seperti
T10I4D100K, nilai minimum support yang
diberikan harus rendah. Hal ini dikarenakan
pada dataset dense transaksi satu dengan
lainnya banyak yang mirip. Oleh karena itu
besar kemungkinan sebuah item untuk menjadi
frequent. Sebaliknya untuk dataset sparse,
transaksi satu dengan lainnya jarang yang
mirip. Oleh karena itu kecil kemungkinan
sebuah item untuk menjadi frequent.
Algoritma PIE memakai memory yang cukup
besar, hal ini dikarenakan algoritma PIE
melakukan kalkulasi setiap akan membentuk
sebuah node.
DAFTAR PUSTAKA
1. Attila Gyenesei dan Jukka Teuhola,
Probabilistic Iterative Expansion of Candidates
48
in Mining Frequent Itemsets, Turku Centre for
Computer Science, Department of Information
Technology, University of Turku, Finland.
2. Jiawei Han dan Micheline Kamber, Data
Mining, Concepts and Techniques, Morgan
Kaufmann Publishers. 340 Pine Street, Sixth
Floor, San Fransisco, USA, 2001.
3. R. Agrawal dan R. Srikant, Fast Algorithms
for Mining Association Rules, Proceedings of
the 20th International Conference on Very
Large Databases, Santiago, Chile, 1994.