Perbaikan Struktur Weighted Tree dengan Metode Partisi Fuzzy dalam Pembangkitan Frequent Itemset Budi Dwi Satoto1) Daniel O. Siahaan 2) Akhmad Saikhu 3) 1) Jurusan Teknik Informatika ITS, Surabaya 60111, email : [email protected] 2) Jurusan Teknik Informatika ITS, Surabaya 60111, email : [email protected] 3) Jurusan Teknik Informatika ITS, Surabaya 60111, email : [email protected] Abstrak Association Rule (AR) merupakan salah satu metoda untuk menemukan nilai asosiasi hubungan antar barang. AR meliputi 2 bagian pokok yaitu pembangkitan frequent itemset dan penggalian kaidah asosiasi. Kelemahan proses pembangkitan frequent itemset pada penelitian sebelumnya menggunakan algoritma generasi kandidat maupun stuktur tree adalah saat pembangkitan frequent itemset tidak memperhatikan jumlah jenis barang dalam satu transaksi. Struktur weighted tree merupakan salah satu metoda untuk membangkitkan frequent itemset. Kelebihan struktur data ini adalah untuk memperbaiki kebutuhan jumlah data yang diolah di dalam FPTree. Adapun Kelemahan weighted tree adalah apabila variasi nilai weight berupa quantity terlalu tinggi, maka variasi node yang muncul menjadi tinggi sehingga ada kemungkinan node menjadi banyak dan mempengaruhi kecepatan proses apabila seluruh data disisipkan. Untuk mengatasi kelemahan tersebut, penelitian ini memperbaiki Weighted tree dengan menambahkan Metode Partisi Fuzzy dimana data weight berupa quantity item dibagi menjadi 5 kelompok label yaitu very Low, Low, Medium, Height dan very Height. Hasilnya adalah apabila variasi data weight quantity cukup tinggi, jumlah node yang digunakan dalam proses pembangkitan frequent itemset minimal dan pola data menjadi lebih mudah untuk dilihat dalam pengamatan pengguna. Kata kunci : Association rule, Weighted tree, Metode Partisi Fuzzy 1. Pendahuluan Association Rule (AR) merupakan salah satu metoda untuk menemukan nilai hubungan antar barang. Contoh analisa asosiasi adalah market basket analysis dimana dua barang berbeda, a dan b, dikatakan mempunyai nilai asosiasi jika dibeli bersama dalam satu transaksi (Lin, et.al., 2008). Di dalam metoda association rule terdapat dua algoritma yaitu algoritma pembangkitan frequent itemset dan algoritma penggalian kaidah asosiasi. Weighted tree adalah salah satu struktur data untuk membangkitkan frequent itemset dengan cara menampung data ke dalam sebuah tree berdasarkan weight berupa quantity. Teknik penyisipan dan penelusuran data menggunakan konsep tree menyusun informasi nama item, nomor transaksi dan quantity ke dalam suatu wadah secara berurut sehingga data frequent itemset menjadi lebih mudah dan cepat untuk ditelusuri. Penelitian Weighted tree dalam pembangkitan frequent itemset diajukan oleh Kumar [1] untuk meminimalkan jumlah data dan jumlah node yang diolah FP tree. Pembangkitan frequent itemset pada penelitian sebelumnya masih menggunakan algoritma apriori pada generasi kandidat dan algoritma Frequent Pattern Growth pada struktur data FPTree. Hasil dari weighted tree adalah frequent itemset yang telah dilakukan seleksi berdasar minimum support dan confidence, hasilnya adalah rule generation yang menjadi bahan pertimbangan pengguna dalam menentukan item yang akan dicari tingkat asosiasinya. Dalam penelitian ini, pengembangan yang dilakukan terhadap struktut weighted tree adalah Penambahan metoda partisi fuzzy. Beberapa tahun terakhir telah banyak dikembangkan teknik Analisa keranjang belanja. Sehingga dibutuhkan salah satu metoda weighted tree dalam penggunaannya. Ada beberapa alasan mengapa metoda Partisi Fuzzy dibutuhkan pada struktur data weighted tree: • Apabila nilai weight berupa quantity terlalu bervariasi maka data menjadi sulit untuk diamati dan hasil algoritma sorting untuk mencari rute terpendek menjadi lebih panjang. Selain itu apabila nilai quantity terlalu bervariasi akan membuat jumlah node menjadi tinggi. • Apabila quantity dalam transaksi berbeda adalah sama, misalnya mangga 4 dengan jambu 4, maka bisa dipastikan bahwa kedua item tersebut saling frequent. Ketidakpastian muncul apabila terdapat item dengan jumlah quantity yang sedikit lebih banyak atau lebih sedikit. Misalnya mangga 4, dengan jambu 6.Keduanya bisa dikatakan saling frequent dengan nilai confidence yang berbeda. Permasalahannya muncul apabila data masukan besar dan cukup variatif, maka selisih quantity tersebut akan menjadi sulit untuk diamati pengguna. 1 2. Kajian Pustaka 2.1. Association Rule Association Rule menganalisa kebiasaan pelanggan dalam membeli barang dan menemukan nilai hubungan antar barang yang disimpan di dalam record transaksi. AR terdiri dari 2 bagian yaitu pembangkitan frequent itemset dan penggalian kaidah asosiasi. Adapun Blok diagram AR tampak pada gambar 2.1. 2.2.Weighted Tree Pada Weighted tree terdapat 2 jenis node yaitu : • jenis node pertama berupa label dengan atribut berisi nama atribut dan dua pointer penunjuk node berisi ID transaksi dan weight, yang lainnya adalah anak pointer menunjuk pada atribut berikutnya. Node ini mewakili kepala cabang tertentu. • jenis node kedua mempunyai 2 bagian. Bagian pertama diberi label TID mewakili suatu jumlah transaksi atau ID transaksi dan bagian kedua diberi nama label weight, menunjukkan quantity pembelian dalam transaksi atau cost. Node ini hanya mempunyai satu pointer yang menunjuk pada obyek berikutnya dari atribut. Penjelasan diatas dapat dilihat pada gambar 2.2 sebagai berikut : Gambar 2.2. Struktur Weighted tree Gambar 2.1. Blok diagram association rule Support count (σ) adalah frekuensi munculnya itemset tertentu dalam transaksi. Secara matematis, dapat dinyatakan dengan persamaan 2.1sebagai berikut : σ ( X ) =| {ti | X ⊆ ti , ti ∈ T } | (2.1) dengan: X= itemset ti= transaksi ke i T= set transaksi Contoh : σ ({ i1, i2, i3}) = 2 Itemset I={i1, i2,…, id} adalah set dari semua item pada data market basket dan T={t1, t2,…, tN} adalah set dari semua transaksi. Tiap transaksi ti mengandung subitemset dari I. Pada analisa asosiasi kumpulan dari satu atau lebih item disebut dengan itemset. Apabila itemset mengandung k item maka disebut k-itemset. Null set adalah itemset yang tidak mengandung item. Lebar transaksi didefinisikan sebagai banyaknya item yang ada dalam transaksi. Contoh itemset: { i1, i2, i3}. Strategi umum pada metoda association rule yaitu: 1. Frequent itemset generation : bertujuan untuk menemukan semua itemset yang memenuhi batasan threshold minsup. 2. Rule generation : bertujuan untuk mengekstrak semua frequent itemset sebelumnya menjadi rule. 2.1.1. Pembangkitan Frequent Itemset itemset Pembangkitan frequent menggunakan weighted tree menguraikan kaidah asosiasi antar atribut dengan melibatkan item-item terkait dalam database transaksi dimana masingmasing transaksi dijadikan sebagai identifier, TID. Jika A adalah satu item set, suatu transaksi T dikatakan berisi A hanya jika A⊆T. Suatu kaidah Data yang telah disisipkan pada weighted tree selanjutnya akan ditelusuri sesuai keinginan user pada waktu melakukan query atau permintaan. asosiasi adalah suatu implikasi format A→B, di mana A⊆I, B⊆I, dan A∩B=Ø. Kaidah A→B menetapkan D dengan support s, di mana s merupakan percentage dari transaksi pada D yang berisi A U B (keduanya A dan B). Nilai ini merupakan nilai probabilitas, P(A∩B). Kaidah A→B mempunyai confidence c di dalam transaksi D jika c adalah percentage dari transaksi pada D yang di dalamnya terdapat A dan juga terdapat item B. Dengan mempertimbangkan probabilitas, P(B|A) maka Support(A→B) = P(A∩B)=s, confidence(A→B) = P(B|A)= Support(A→B)/Support( A) = c. Optimal order merupakan penentukan sequence order terbaik di dalam tree dengan jumlah node minimal. Seperti terlihat pada tabel 2.6 yang mempunyai tiga atribut. Nilai total pencarian kombinasi yang dapat dilakukan adalah sebesar 3! yaitu 6 kombinasi. Kumar [2]. 2 Tabel 2.6. Tabel Itemset weighted tree TID\Item 100 200 300 Item1 3 6 2 Item2 2 2 2 item3 1 1 4 Gambar 2.3. Pilihan node pada weighted tree Unsur atribut tertentu ditemukan di tingkatan yang ditetapkan sebagai posisi atribut dalam atribut-sequence. Jika catatan total jumlah node adalah n, di dalam tree terdapat kombinasi atribut berbeda maka nilai optimal order yang terbaik dari weighted tree diatas adalah atribut sequence 2-3-1 dengan jumlah node terkecil yaitu 6. Tabel 2.2. Tabel dataset dengan informasi weight Gambar 2.2 menerangkan nomor transaksi dan kode item yang dihapuskan karena tidak memenuhi batasan minimum support dan transaksi yang hanya mengandung informasi 1 kode item saja. Langkah selanjutnya adalah melakukan penyisipan ke dalam weighted tree dan hasilnya dapat dilihat seperti pada gambar 2.5 sebagai berikut : Gambar 2.5 Perbandingan Node FP tree dan Weighted tree Tampak dari gambar 2.5 bahwa jumlah node yang digunakan oleh weighted tree lebih sedikit dibandingkan FP tree. Dan prosentase penurunan ditunjukkantabel 2.2 Tabel 2.2. Perbandingan jumlah node FP tree dan Weighted tree Jumlah Weighted FPTr Tingkat transak ee Tree kompresi si 9 TID\ KODEITEM 100 200 300 400 500 600 700 800 900 i1 2 3 6 i2 6 4 3 6 2 4 3 6 4 3 I3 i4 6 i5 4 3 4 8 2 7 5 6 2 2 Dari tabel 2.2. dapat disusun senarai weighted tree sebagai berikut : Gambar 2.4. Senarai Weighted Tree 10 8 20% 2.1.2.Penggalian Kaidah Asosiasi Konsep penggalian adalah sebuah pendekatan terhadap hasil pembangkitan frequent itemset untuk lebih meningkatkan validitas hasil terdapat acuan pada saat menentukan frequent itemset. Dimana Itemset dikatakan frequent closed apabila itemset tersebut memenuhi 2 kondisi berikut : a. Itemset X adalah itemset yang frequent b. Tidak ada satupun superset langsung (immediate supperset) X yang memiliki count sama dengan X Closed dan maksimal ditunjukkan gambar 2.6 Gambar 2.6. Pencarian maximal dan closed frequent itemset 3 2.3. Metode Partisi Fuzzy Metode Partisi Fuzzy adalah Metode membagi weight berupa quantity pada masingmasing atribut atau item menjadi label fuzzy. Dimana masing-masing item dibagi menjadi 5 label, yaitu label A,B,C,D,E. Fuzzy partition membantu menyelesaikan masalah pada weighted tree apabila nilai quantity terlalu bervariatif. Adapun Membership function untuk quantity item yang akan diolah ditunjukkan gambar2.7.Wang[5] Gambar 2.7. MF untuk quantity item Dapat dinyatakan setiap kandidat kitemset, Ik, sebagai fuzzy set pada transaksi M. Fuzzy membership function µ dipetakan sebagai μ I k : M→[0,1],dinyatakan dengan persamaan 2.2 ⎧ η (i ) ⎫ μ i k (T ) = infk ⎨ T ⎬, ∀T ∈ M i∈I ⎩ card (T ) ⎭ 1. Probe item merupakan item yang akan dijadikan acuan untuk mengetahui tingkat asosiasi item lain, isinya adalah item-item yang sama dalam transaksi atau kumpulan item transaksi yang sudah pasti nilai asosiasinya 100%. 2. Top-K merupakan Urutan item-item yang memiliki nilai count item tertinggi dan selalu muncul dalam tiap transaksi. Absari [7]. 3. Projected database merupakan item dan transaksi yang akan dicari nilai asosiasinya. Itemnya adalah item total dikurangi probe item. 4. Minimum length merupakan batas minimum panjang transaksi yang akan dipantau tingkat asosiasinya. 5. Weight minimum support adalah batas maximum pembelanjaan yang memenuhi syarat yang telah ditentukan pada awal proses. Adapun langkah awal yang dilakukan adalah pembentukan projected database dengan cara melakukan pembacaan file teks dataset dan menyimpan string transaksi ke dalam array penampung transaksi dengan tidak mengikutsertakan probe item. 3.Metodologi Penelitian (2.2) dengan: T = transaksi yang memenuhi syarat card(T) = jumlah jenis barang pada transaksi T η = boolean membership function dan ηT → {0,1} dinyatakan dengan persamaan 2.3: ⎧1, i ∈ T ⎩0, lainnya ηT (i ) = ⎨ (2.3) dengan: i= barang pada transaksi T= transaksi yang memenuhi syarat Nilai Support dan confidence dinyatakan dengan persamaan 2.4: support ( I k ) = ∑μ T ∈M Ik (T ) (2.4) dengan: Ik = barang I pada k-itemset μ I k = Fuzzy membership function Gambar T = Transaksi yang memenuhi syarat maka confidence ditunjukkan persamaan 2.5 cf ( A ⇒ B) = P(B | A) = support( A ∪ B) support( A) (2.5) dengan: A,B = k-itemset Beberapa definisi yang perlu diketahui sebelum masuk pada weighted partisi fuzzy adalah sebagai berikut: 3.1. Metodologi penelitian pada perbaikan weighted tree Gambar 3.1 menunjukkan metodologi penelitian dan Langkah program secara bertahap dimulai dari tabel 3.1 yang merupakan tabel count weight quantity merupakan tabel konversi dari dataset SPECTF HeartData. Data ujicoba adalah Data set SPECTF Heart Data yang digunakan diklasifikasikan menjadi 2 kelompok kategori yaitu normal dan abnormal. Database ini merupakan 267 set gambar dengan perincian jumlah atribut 45 ( terdiri dari 44 continues class dan satu binary class) dimana nilai atribut terletak diantara range 4 0 sampai dengan 100. dataset ini dibagi menjadi SPECTF train 80 item dan SPECTF test 187 item. Dengan klasifikasi dataset class 0, 15 sample, class 1, 172 sample. Tabel 3.1. Tabel Count Weight quantity Adapun langkah setelah mendapatkan tabel count weight adalah melakukan pemotongan transaksi yang tidak memenuhi persyaratan batasan weight minimum support sebagai berikut Tabel 3.2. Tabel Pemotongan w_min_support Pseudocode 3.1 menunjukkan Langkah untuk mendapatkan label weight . public String memberShipFunction(int dataRaw, double []batas){ int member=0; if(dataRaw<batas[Q1B] member=5; else if(dataRaw<=batas[Q1B]) member=0; else if(dataRaw>= batas[Q1B]&& dataRaw <= batas[Q1A]) member=1; else if(dataRaw<= batas[MEDIUMB]&& dataRaw < batas[MEDIUMA]) member=2; else if(dataRaw<= batas[Q3B]&& dataRaw < batas[Q3A]) member=3; else if(dataRaw >= batas[Q3A]) member=4; return LABEL_FUZZY[member]; } Pseudocode 3.1. Pseudocode Partisi Fuzzy FuzzyWT adalah sebuah class yang dibangun untuk melakukan partisi quantity sebuah item dalam suatu transaksi. Method utama yang ada pada class FuzzyWT adalah: FuzzyWT() adalah constructor yang digunakan untuk melakukan inisialisasi object FuzzyWT dengan parameter berupa array of integer. Parameter ini adalah tabel transaksi yang keluaran dari method buat merupakan TabelTransaksi() pada class DataSetIO. ProsesKonversiTransToWeight() method ini bertugas untuk melakukan persiapan konversi dari tabel transaksi yang berisi data array of integer menjadi nilai fuzzy A sampai E seperti gambar 3.3. Tabel 3.2 menunjukkan pemotongan terhadap transaksi yang tidak memenuhi syarat weight minimum support =2 dan transaksi yang hanya mengandung 1 item saja. Selanjutnya untuk mendapatkan nilai batas membership function metode partisi fuzzy didapatkan dengan langkah pada gambar 3.2 Gambar 3.3. Class diagram FuzzyWeighted tree Sementara untuk struktur weighted tree yang digunakan pada penelitian ini dalam penyisipan transaksi adalah ditunjukkan gambar 3.4 dan design yang digunakan pada gambar 3.5. Gambar 3.2 Metoda Partisi Fuzzy 5 Selanjutnya data disisipkan sesuai sequence order Apabila dalam satu node terjadi beberapa kali count weight yang sama maka akan dicatat jumlah count item tersebut dengan informasi nomor transaksi, yang menunjukkan item tersebut adalah frequent item. Gambar 3.8 menunjukkan Weighted Tree yang dihasilkan Gambar 3.4. Struktur Data Weighted Tree partisi fuzzy Gambar 3.8. Weighted Tree Gambar 3.9. Balancing Tree w_probe=4 Gambar 3.9 menjelaskan bahwa balancing adalah melakukan algoritma perhitungan maximum depth, kemudian lakukan pembacaan pada maximum depth-1, jika selisih lebih besar 1, maka dilakukan pemindahan node dan count node ke tempat yang sesuai. Gambar 3.5. Design weighted tree Dari Tabel 3.2 Hasil pemotongan yang merupakan Tabel Projected database, selanjutnya disusun senarai weighted tree gambar 3.6 Gambar 3.6 Senarai weighted tree Pencarian sequence order atribut merupakan langkah berikutnya ditunjukkan gambar 3.7 untuk mendapatkan urutan penyisipan item ke dalam weighted tree. Hal ini agar jumlah node yang digunakan dapat dihemat. Gambar 3.10. Balancing Tree w_probe=3 Selanjutnya dapat dibangun rule generation seperti ditunjukkan gambar 3.11. dan 3.12. Gambar 3.11. Rule generation 2 itemset Gambar 3.7. Rute terpendek 6 Gambar 3.12. Rule generation 3 itemset 4. Uji Coba dan Analisa Hasil Skenario Analisa Perbandingan hasil penelitian dengan penelitian sebelumnya adalah sebagai berikut 4.1. Penurunan jumlah node Partisi Fuzzy terhadap jumlah node Pretham Kumar Gambar 4.3. Waktu Proses dataset Gambar 4.3 menunjukkan pengaruh jumlah dataset terhadap waktu proses, dimana jumlah dataset meningkat, diikuti kenaikan waktu proses. Hal ini menunjukkan terjadinya penurunan dari waktu proses penelitian sebelumnya Gambar 4.1. Jumlah node Partisi Fuzzy terhadap jumlah node Pretham Kumar Gambar 4.1 menunjukkan prosentase penurunan jumlah node penelitian ini dengan penelitian Pretham Kumar, dimana rata-rata node dapat diturunkan 30.7% 4.6.1 Penurunan jumlah node Partisi Fuzzy terhadap jumlah node FP Tree Gambar 4.4 Waktu Proses dengan beda platform Gambar 4.4 menunjukkan waktu yang diperlukan untuk membangun partisi fuzzy dengan weighted tree rata-rata untuk processor dan memory yang berbeda adalah 0.7 detik. Tabel 4.1. Tabel Perbandingan penelitian No 1 2 Gambar 4.2. Penurunan jumlah node partisi fuzzy terhadap jumlah node FPTree Gambar 4.30 menunjukkan prosentase penurunan jumlah node penelitian ini terhadap jumlah node FP Tree, dimana rata-rata penurunan mencapai 35.78% dari penelitian Pretham Kumar yang menurunkan jumlah node 13.9% dari jumlah node FP Tree. 3 4 Materi yang dibandingkan Rata-rata waktu konstruksi tree Total waktu untuk untuk mendapatkan optimal tree menggunakan metode pengecekan iterative Waktu untuk mencari optimal tree Total jumlah node pada tree menggunakan serial order attribut (S1) Penelitian Prethaam kumar Sebelum Partisi Fuzzy Penelitian ini Partisi Fuzzy 1.2 detik 0.7 detik 45!*1.2= 1.722*10^56 sec 45!*0.7= 8.37356E+55 4.3 detik 2.56detik 7729 7729 7 5 6 Total jumlah node yang dibentuk menggunakan algoritma ini (S2) Jumlah node yang dihemat(S)Dim ana S=S1-S2 6651 4855 1078 node 2865 node 2) 3) Dari tabel 4.1 didapatkan nilai Penurunan jumlah node pada penelitian ini yaitu 4855 terhadap jumlah node awal yang digunakan Preetham Kumar atau jumlah node FPTree yaitu 7729, sehingga Nilai Penurunan jumlah node penelitian ini =(1-(4855 /7729) )%= 37.18% dengan nilai rata-rata penurunan 35.78% Nilai Penurunan jumlah node yang merupakan perbandingan jumlah node setelah dilakukan partisi fuzzy dan sebelum partisi fuzzy meningkatkan Penurunan jumlah node penelitian Pretham Kumar dari 13.9% menjadi 37.18% yang artinya meningkatkan efisiensi komputasi sebesar 1-(13.9/37.18) = 63% dari penelitian sebelumnya 5.Kesimpulan 1 Penelitian ini memberikan kontribusi berupa penurunan jumlah node karena adanya penambahan metode partisi fuzzy pada struktur data weighted tree. Adapun besarnya angka penurunan jumlah node rata-rata mencapai 30.7% terhadap penelitian Pretham kumar dan 35.78% terhadap FPTree. 2 Dengan menurunkan jumlah node pada proses pembangkitan frequent itemset akan didapatkan nilai big operation yang lebih baik pada proses pembacaan dari segi perhitungan waktu dan space yang digunakan. 3 Dari hasil ujicoba dataset, didapatkan bahwa nilai weight minimum support berbanding terbalik dengan jumlah transaksi, jumlah node dan waktu proses. Artinya jika nilai weight minimum support rendah maka jumlah transaksi, jumlah node dan waktu proses meningkat. Pemilihan nilai weight minimum support yang tepat sangat diperlukan untuk mendapatkan hasil yang diinginkan pengguna. 4 Hasil uji coba adalah frequent itemset yang dibangkitkan berdasarkan nilai weight berupa quantity item pada struktur tree dengan pertimbangan batasan nilai support dan confidence 4) 5) 6) 7) Inteligent Research, ISSN 0973-1873, Vol. 5, No. 1, hal. 11-23. Kumar P dan Ananthanarayana. (2008), “Discovery of frequent itemsets using weighted tree approach”, IJCSNS International Journal of Computer Science and Network Security, Vol. 8 No.8, hal. 195-200. Lin, R.H., Chuang, C.L., Liou, J.H, dan Wu, G.D. (2008), “An integrated method for finding customers in CRM”. Expert Systems with Applications, Entry from http://www.sciencedirect.com/science). Jian, W dan Ming, L.X (2008), “An Effective Mining Algorithm for weighted Association Rules in Communication Network”, Journal of Computers, Vol. 3, No. 10, hal. 20-27. Wang, C.H dan Pang, C.T (2009), “Finding Fuzzy Association Rules using FWFP Growth with Linguistic Supports and Confidences”, World Academy of Science, Engineering and Technology No. 53, hal. 1139-1147. Rahman, A.M, Ashkan Z, Masoud R, dan Mostafa, H.C (2006), “Complete Discovery of Weighted Frequent Subtrees in Tree-StructuredDatasets”, IJCSNS International Journal of Computer Science and Network Security, Vol. 6 No. 8A, hal. 188-196. Absari, Dhiani Tresna (2008), “Penggalian Top-K Frequent Closed Constrained Gradient itemsets pada basis data retail”, Entry from http://mmt.its.ac.id/library/?p=4737. Daftar Pustaka E, Mohan E, dan 1) Anbalagan Puttamadappa C. (2009), “Building Eshop using Incremental Association Rule Mining and transaction clustering”, International journal of Computational 8