Algoritma Frequent Pattern Growth
sorting secara descending berdasarkan jumlah frekuensi terbesar hingga terkecil.
d. Membentuk root FP-Tree yang diberi nilai dengan “null”.
e. Melakukan scan yang kedua kalinya untuk cabang dari FP-Tree sesuai dengan urutan transaksi pada list L. Apabila item yang ada pada
transaksi berikutnya sudah ada pada transaksi sebelumnya maka nilai indeks dari item tersebut akan bertambah 1, sedangkan jika item belum
ada pada transaksi sebelumnya akan membentuk cabang baru. f. Berdasarkan list L pisahkan tiap frequent itemsets tanpa pengulangan
g. Melakukan analisa FP-Tree yang telah terbentuk dengan cara mencari frequent itemsets yang mengandung nilai ai lalu setarakan nilai
frequent itemsets tersebut dengan nilai ai. Setelah disetarakan, jumlahkan kedua nilai support frequent itemsets yang sama. Untuk
nilai yang diatas maupun sama dengan minimum support lah yang menjadi rule. Langkah analisa diatas dilakukan berulang untuk semua
subset yang ada pada FP-Tree. h. Hasil analisa FP-Tree yang sesuai dengan minimum support itulah
yang digunakan sebagai rule
Berikut adalah contoh dari penerapan algoritma pada sebuah data transaksi : Tabel 2. 1 Transaksi dalam database
TID Items Bought
100 f,a,c,d,g,i,m,p
200 a,b,c,f,l,m,o
300 b,f,h,j,o
400 b,c,k,s,p
500 a,f,c,e,l,p,m,n
Tabel 2.1 menjelaskan lima buah transaksi yang ada dalam database yaitu . Sedangkan items bought menunjukkan item
yang ada
pada transaksi
tersebut adalah
. Untuk mulai melakukan mining menggunakan algoritma FP-Growth, sebelumnya ditentukan dahulu minimum
support nya. Dalam contoh ini saya tentukan minimum support nyayaitu 3.
Tabel 2. 2 Hasil scanning dan sorting dari database
Item Count
f 4
c 4
a 3
b 3
m 3
p 3
l 2
o 2
d 1
g 1
i 1
h 1
j 1
k 1
s 1
e 1
n 1
Tabel 2.2 menjelaskan langkah pertama yang dijalankan yaitu melakukan scan pada database untuk mendapatkan frekuensi kemunculan item dalam
database. Lalu sorting berdasarkan jumlah frekuensi terbesar hingga terkecil. Urutan tersebut penting yang nantinya akan digunakan dalam membuat FP-Tree
Tabel 2. 3 Hasil item yang memenuhi minimum support
Item Count
f 4
c 4
a 3
b 3
m 3
p 3
Tabel 2.3 menjelaskan langkah selanjutnya yaitu melakukan seleksi terhadap item yang memiliki count kurang dari minimum support yang telah
ditentukan sehingga menyisakan item f, c,a,m,p dan b. Sehingga transaksi dalam database yang berisi item yang memenuhi minimum support dapat di lihat pada
table 2.4
Tabel 2. 4 Transaksi database yang berisi item yang memenuhi minimum support
TID Items
Bought Ordered Frequent
Items
100 f,a,c,d,g,i,m,p f,c,a,m,p
200 a,b,c,f,l,m,o
f,c,a,b,m 300
b,f,h,j,o f,b
400 b,c,k,s,p
c,b,p 500
a,f,c,e,l,p,m,n f,c,a,m,p
Langkah selanjutnya adalah membuat root dari sebuah pohon yang di beri label “null”. Pada tahap ini dilakukan proses scanning untuk yang
kedua kalinya. Proses scan ini diawali pada transaksi pertama yaitu transaksi yang berisi item f,c,a,m,p. Transaksi tersebut menjadi cabang
pertama dari pohon, setiap item baru diberi nilai 1 sehingga menjadi .
Pada transaksi kedua yaitu transaksi yang berisi item f,c,a,b,m membentuk cabang baru ketika sampai pada item b dan m karena item
f,c,a sudah terbentuk pada transaksi pertama sehingga menggunakan transaksi pertama. Hanya saja nilai dari item dalam node yang telah ada
pada transaksi pertama dan dilewati juga dalam transaksi kedua bertambah 1 sehingga nilainya menjadi 2. Sedangkan pada node yang sedang
terbentuk pertama kali pada transaksi kedua bernilai 1 sehingga hasilnya adalah
. Pada transaksi ketiga yaitu transaksi yang berisi item f,b
membentuk cabang baru ketika pada item b karena item f menggunakan cabang yang sudah terbentuk pada transaksi sebelumnya.
Sehingga nilai dari item-item tersebut adalah .
Pada transaksi ke empat yaitu transaksi yang berisi item c,b,p membentuk cabang baru dari awal karena pada transaksi sebelumnya tidak
ada yang melakukan scan dengan diawali item c . Sehingga nilai dari masing
– masing item tersebut adalah 1 Sedangkan pada transaksi terakhir yaitu transaksi yang berisi item
f,c,a,m,p tidak membentuk cabang baru hanya saja nilai dari masing –
masing item tersebut bertambah 1. Hasil scan kedua yang dilakukan dalam database yang berupa pohon dapat dilihat pada gambar 2.2 di bawah ini.
Gambar 2. 2Header table Jiawei Han
Dengan pohon yang telah terbentuk, selanjutnya akan dilakukan mining frequent patterns. Proses ini dilakukan dengan mengoleksi patterns
dari node yang dimulai dari head kepala dari node dan diikuti dengan item yang ada pada node-links tersebut. Proses mining dimulai dari item
yang terletak paling bawah pada Header table yaitu p. Untuk node p, mendapatkan nilai frequent pattern p:3 dan dua
path dalam FP-tree yaitu dan .
Dari path yang dilalui bersama dengan p hanya ada 2 kali sehingga disamakan dengan nilai dari p tersebut yaitu
. Begitu juga dengan path yang kedua disamakan dengan jumlah p yang dilalui
bersama yaitu . Kemudian dari dua path tersebut dijumlahkan
nilai dari masing – masing item yang ada di kedua path sehingga
menghasilkan satu frequent pattern yaitu c,p karena hanya c dan p itu sendiri yang memenuhi minimum support yang telah ditentukan.
Untuk node m, mendapatkan nilai frequent pattern m:3 dan dua path
dalam FP-tree
yaitu dan
. Dari path yang dilalui bersama dengan m hanya ada 2 kali sehingga disamakan dengan nilai dari m tersebut yaitu
. Begitu juga dengan path yang kedua disamakan dengan jumlah m yang dilalui bersama yaitu
. Kemudian dari
dua path tersebut dijumlahkan nilai dari masing – masing item yang ada di
kedua path sehingga menghasilkan satu frequent pattern yaitu f,c,a,m . Untuk node b, mendapatkan nilai frequent pattern b:3 dan tiga
path dalam FP-tree yaitu , , .
Dari path yang dilalui bersama dengan b hanya ada 2 kali path pertama sehingga disamakan dengan nilai dari b tersebut yaitu
. Begitu juga dengan path yang kedua disamakan dengan jumlah b yang
dilalui bersama yaitu . Selanjutnya berlaku juga dengan path yang
ketiga disamakan dengan jumlah b yang dilalui bersama yaitu .
Kemudian dari dua path tersebut dijumlahkan nilai dari masing – masing
item yang ada di ketiga path. Dari node b ternyata tidak terdapat frequent pattern karena tidak ada yang memenuhi minimum support.
Untuk node a, mendapatkan nilai frequent pattern a:3 dan sebuah path dalam FP-tree yaitu
. Dari path yang dilalui bersama dengan a ada 3 kali sehingga disamakan dengan nilai dari m tersebut yaitu
.Dari path tersebut menghasilkan satu frequent pattern yaitu f,c,a.
Untuk node c, mendapatkan nilai frequent pattern c:4 dan dua path dalam FP-tree yaitu
dan . Dari path yang dilalui bersama dengan c hanya ada 3 kali sehingga disamakan dengan nilai dari c
tersebut yaitu . Dari path tersebut menghasilkan satu frequent
pattern yaitu f,c. Untuk node f yang merupakan kepala dari node tidak dilakukan
mining frequent parent karena hanya terdiri dari satu item saja.
Tabel 2. 5Hasil Akhir
Dari proses tersebut dapat beberapa rule yang merupakan hasil akhir dari proses mining dengan menggunakan algoritma FP-Growth yaitu
{ c,p, f,c,a,m,p, f,c,a, f,c} seperti yang terlihat pada table 2.5 di atas.