IMPLEMENTASI METODE ANT COLONY OPTIMIZATION UNTUK PEMILIHAN FITUR PADA KATEGORISASI DOKUMEN TEKS Yudis Anggara Putra – Chastine Fatichah Jurusan Teknik Informatika, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember Email:
[email protected]
Ekstraksi dan pemilihan fitur adalah tahap yang penting dalam suatu sistem klasifikasi. Pemilihan fitur bertujuan mengurangi dimensi fitur pada dataset agar pembuatan classifier dapat dilakukan dengan lebih mudah. Sistem klasifikasi atau kategorisasi pada dokumen teks yang melibatkan ribuan bahkan sampai ratusan ribu fitur mutlak membutuhkan pemilihan fitur supaya sistem klasifikasi dapat berjalan dengan efisien. Salah satu metode yang digunakan untuk pemilihan fitur adalah ant colony optimization. Ant colony optimization adalah algoritma yang terinspirasi dari pengamatan terhadap kehidupan koloni semut yang mampu mencapai sumber makanan melalui rute yang terpendek. Pada pemilihan fitur hal ini dapat dianalogikan sebagai pencarian subset fitur dengan jumlah fitur minimum tanpa mengurangi performa classifier secara signifikan. Ujicoba dilakukan menggunakan dataset yang berasal dari Tugas Akhir Yuliyanti yang berjudul ”Fuzzy Support Vector Machine untuk Klasifikasi Multi Kelas pada Dokumen Berbahasa Indonesia” dimana dataset diperoleh dari sumber berita online Kompas.com. Hasil ujicoba menunjukkan bahwa metode tersebut cukup efektif dalam mengurangi dimensi fitur dimana dimensi fitur dapat dikurangi sampai dengan 90% tanpa harus mengurangi performa classifier secara signifikan. Kata kunci: Pemilihan fitur, ant colony optimization (ACO),kategorisasi teks . 1. PENDAHULUAN Kategorisasi adalah metode yang lazim dilakukan untuk mengorganisasi dokumen teks dalam jumlah besar. Salah satu masalah yang timbul dalam kategorisasi dokumen teks adalah dimensi feature space yang sangat besar[1]. Sebagian besar dari fitur pada feature space tersebut tidak berguna dalam proses kategorisasi bahkan beberapa diantaranya justru menjadi noise yang dapat mengurangi performa classifier[1]. Selain itu, dimensi feature space yang sangat besar dapat menyebabkan classifier berjalan dengan lambat. Dari uraian sebelumnya dapat disimpulkan bahwa feature space harus dikurangi dimensinya
terlebih dahulu sebelum diproses lebih lanjut. Oleh karena itu harus dilakukan pemilihan fitur pada feature space untuk mendapatkan fitur yang benar-benar dapat mewakili isi dokumen sehingga dapat mengurangi dimensi feature space dan meningkatkan efisiensi classifier tanpa mengurangi performanya secara signifikan. Dalam Tugas Akhir ini, penulis akan mencoba melakukan pemilihan fitur menggunakan metode Ant Colony Optimization. Ant Colony Optimization (ACO) adalah algoritma optimisasi berbasis pada perilaku koloni semut yang diperkenalkan oleh Dorigo dan Caro pada awal 90-an. ACO adalah salah satu cabang dari kecerdasan buatan yang disebut swarm intelligence (SI). Pengertian swarm intelligence adalah metode penyelesaian masalah yang memanfaatkan perilaku dari sekumpulan agen yang saling bekerjasama[1]. Algoritma ACO terinspirasi dari perilaku sosial koloni semut dimana seekor semut dapat menjangkau sumber makanan dengan rute terdekat dari sarangnya dengan memanfaatkan material kimia yang disebut pheromone yang dilepaskannya pada saat berjalan, pheromone tersebut akan menarik perhatian semut lain untuk mengikuti suatu rute[6]. Semakin banyak jumlah pheromone yang ada pada suatu rute, semakin potensial rute tersebut untuk diikuti oleh semut-semut lainnya[3]. Sistematika yang digunakan dalam penulisan buku ini adalah: bab 2 menjelaskan tentang teori ACO, bab 3 menjelaskan mengenai sistem pemilihan fitur menggunakan metode ACO Hasil uji coba dan kesimpulan dirangkum dalam bab 4 dan 5. 2. TEORI ANT COLONY OPTIMIZATION Algoritma ACO terinspirasi dari kehidupan koloni semut yang sebenarnya. Pada percobaan laboratorium, sebuah sarang koloni semut dihubungkan dengan sumber makanan melalui dua buah jembatan dengan panjang yang berbeda seperti pada gambar 2.1
dan mekanisme pheromone evaporation untuk mengurangi pheromone. 3. PEMILIHAN FITUR BERBASIS ACO
Gambar 2.1 Skema Percobaan
Hasil percobaan menunjukkan bahwa setelah beberapa saat, sebagian besar semut lebih banyak menggunakan jembatan yang lebih pendek untuk menuju ke sumber makanan. Pemilihan jembatan yang lebih pendek disebabkan oleh semut-semut memilih secara probabilistik jembatan mana yang akan dilewati berdasarkan informasi yang ada pada masing-masing jembatan. Informasi tersebut berupa pheromone, yaitu suatu zat kimia yang dilepaskan oleh semut ketika mereka berjalan[7]. Setiap semut juga memiliki kemampuan untuk mendeteksi pheromone dan akan memilih rute dengan jumlah pheromone yang lebih banyak. Kronologi proses percobaan adalah sebagai berikut: Pada awalnya tidak ada pheromone pada kedua jembatan, kemudian tiap-tiap semut akan berjalan keluar dari sarang untuk menuju ke sumber makanan melalui salah satu jembatan yang tersedia. Semut-semut ini tentu saja tidak memiliki informasi jembatan mana yang lebih pendek sehingga peluang sebuah jembatan untuk dilewati seekor semut adalah 50%, tetapi karena jembatan yang lebih pendek memungkinkan semut untuk mencapai sumber makanan lebih cepat maka pada rentang waktu yang sama jumlah semut yang melewati jembatan yang lebih pendek menjadi lebih banyak daripada jumlah semut yang melewati jembatan yang lebih panjang. Hal ini menyebabkan terjadinya penumpukan jumlah pheromone yang lebih banyak pada jembatan yang lebih pendek sehingga kecenderungan seekor semut memilih jembatan yang lebih pendek menjadi lebih besar. Proses positive feedback seperti yang dijelaskan diatas adalah inti dari algoritma ACO. Proses lain yang penting adalah pheromone evaporation yaitu pengurangan jumlah pheromone pada tiap rute sehingga jumlah pheromone pada rute yang jarang dilewati akan terus berkurang, dan pada akhirnya semut akan terfokus untuk memilih rute yang terpendek. Karakteristik ACO adalah sebagai berikut: 1. Menggunakan interaksi agen (ant) dimana masing-masing ant hanya mampu melakukan tugas sederhana untuk menghasilkan solusi. 2. Menggunakan informasi yang diperoleh dari iterasi sebelumnya berupa pheromone untuk menentukan hasil pada iterasi selanjutnya. 3. Terdapat mekanisme positive feedback untuk menambahkan pheromone pada suatu node
Dari bagan dibawah, dapat dilihat bahwa sistem pemilihan fitur ACO terdiri dari dua subsistem yang saling terkait, yaitu subsistem ACO dan subsistem NN- Classifier. Kedua susbsistem tersebut memiliki fungsi yang berbeda, subsistem ACO berfungsi untuk menghasilkan feature subset, sedangkan subsistem NN- Classifier berfungsi untuk mengevaluasi feature subset yang dihasilkan oleh subsistem ACO.
Gambar 3.1 Bagan Sistem Pemilihan Fitur
3.1 Algoritma Subsistem ACO 1. Merepresentasikan feature kedalam bentuk graph.
space
awal
Didalam tiap vertex terdapat atribut-atribut yaitu fitur, nilai pheromone, dan heuristic value. Pada representasi graph ini, semua vertex harus terhubung dengan sempurna. 2. Inisialisasi awal sistem ACO. Pada tahap ini, atribut pheromone level dan heuristic value pada tiap vertex diinisialisasi dengan nilai awal pheromone = 1 dan heuristic value = 0. Pada tahap ini juga ditentukan jumlah populasi ant dan jumlah iterasi. 3. Pembuatan feature subset dan evaluasi ant. Pada tahap ini masing-masing ant diletakkan pada tiap vertex secara random, selanjutnya secara bergantian masing-masing ant akan berjalan mengunjungi vertex yang terhubung kepadanya untuk membentuk feature subset. Peluang seekor ant k untuk mengunjungi vertex i pada langkah t dinyatakan dengan:
0
∑
| | .| |
| |
.|
|
!
dimana adalah himpunan vertex yang dapat dikunjungi (setiap ant tidak boleh mengunjungi sebuah vertex yang sudah dikunjungi sebelumnya), " adalah nilai pheromone dan # adalah heuristic value pada fitur i, sedangkan $ dan % adalah parameter pembobotan untuk pheromone dan heuristic value. Pada setiap langkahnya, masing-masing ant akan dievaluasi kedalam classifier, apabila ant yang bersangkutan tidak mampu memperbaiki akurasi classifier sampai 40 kali berturut-turut, maka langkahnya dihentikan dan dihasilkan feature subset dari ant tersebut. 4. Menghitung nilai pheromone setiap ant Untuk tiap ant yang sudah menghasilkan feature subset, nilai pheromone yang dihasilkan ant tersebut dinyatakan dengan: Δ" '(. ) *+ , 0
../0123 24 0
+ !
maka setiap ant akan meletakkan pheromone pada semua vertex yang dilaluinya. Sehingga pada akhirnya, nilai pheromone pada tiap vertex akan berubah menjadi: < " 1 : ;" - ∑= >? Δ" - Δ"
Dimana m adalah jumlah populasi ant, ; 0,1 adalah koefisien penguapan pheromone, dan g adalah ant terbaik (ant yang menghasilkan pheromone terbanyak) pada iterasi t. Berdasarkan rumus diatas dapat dipahami bahwa proses update pheromone pada tiap vertex diawali dengan penguapan pheromone kemudian ditambahkan pheromone sesuai dengan jumlah pheromone masing-masing ant yang melewati vertex tersebut dan ditambahkan lagi dengan pheromone dari best ant apabila ia melewati vertex tersebut. 7. Generate populasi ant baru. Semua ant dihapus dari vertex, kemudian digenerate populasi ant baru sesuai jumlah inisialisasi awal, selanjutnya kembali pada langkah 3.
Dimana + adalah feature subset yang dihasilkan oleh ant k pada iterasi t, |+ | adalah panjang feature subset tersebut, dan performa classifier ). /+ 4 adalah berdasarkanfeature subset tersebut, sedangkan 5 dan ( adalah parameter pembobotan untuk panjang feature subset dan performa classifier dimana 5 60,19 dan ( 1 : 5.
Pada langkah ini juga ditentukan best ant, yaitu ant dengan pheromone terbanyak. Untuk iterasi pertama, best ant adalah ant dengan pheromone terbanyak pada iterasi tersebut, sedangkan untuk iterasi selanjutnya best ant adalah ant dengan pheromone terbanyak pada iterasi tersebut dibandingkan dengan best ant sebelumnya, best ant yang dipilih adalah ant dengan jumlah pheromone yang lebih banyak. Feature subset terbaik adalah feature subset yang dihasilkan oleh best ant. 5. Memeriksa jumlah iterasi.
Apabila jumlah iterasi sudah mencapai jumlah iterasi yang ditentukan sebelumnya, maka aplikasi dihentikan dan feature subset terbaik yang diperoleh pada langkah 4 dihasilkan sebagai output, apabila tidak maka dilanjutkan ke langkah 6. 6. Mengupdate pheromone. Setelah semua ant menghasilkan feature subset dan pheromone-nya masing-masing,
Gambar 3.2 Diagram Alir Subsistem ACO
3.2 Nearest Neighbourhood Classifier K-Nearest Neighbourhood Classifier adalah salah satu metode paling sederhana yang digunakan untuk proses klasifikasi[4]. Konsep dasar metode ini adalah menglasifikasikan suatu obyek kedalam suatu kelas sesuai dengan kelas dari obyek-obyek yang berdekatan dengannya (obyek tetangganya)[8]. Nilai k menentukan jumlah obyek tetangga yang dijadikan acuan untuk proses klasifikasi, k adalah bilangan integer yang bernilai kecil dan umumnya dipilih yang ganjil[8]. Konsep K-Nearest Neighborhood Classifier dapat dijelaskan seperti pada gambar 3.2 berikut:
Algoritma NN- Classifier adalah sebagai berikut[9]: 1.
Membuat matriks vektor model. Matriks vektor model adalah sebuah matriks yang barisnya menyatakan dokumen dan kolomnya menyatakan feature subset yang dihasilkan ACO. Elemen matriks vektor model adalah frekuensi term(feature) yang sudah diberi bobot, dinyatakan dengan: G @A A B CDE F I H
$A adalah elemen matriks vektor model, A adalah frekuensi term i pada dokumen j, N adalah jumlah dokumen dan H adalah jumlah dokumen yang mengandung term i. 2.
Mengategorisasi dokumen testing. Untuk mengategorisasi sebuah dokumen testing pertama-tama harus dicari similarity dokumen yang akan dites terhadap sebuah dokumen training menggunakan rumus:
Gambar 3.3 Contoh K-NN Classifier
Pada gambar diatas, obyek hijau adalah obyek yang akan diklasifikasikan. Selanjutnya, dihitung jarak setiap obyek yang lain terhadap obyek hijau, umumnya menggunakan Euclidean distance. Kemudian ditentukan nilai k yang dipakai dan selanjutnya diambil k obyek terdekat dari obyek hijau. Akhirnya, kelas obyek hijau ditentukan berdasarkan kelas mayoritas dari k obyek terdekat tersebut. Dapat dilihat dari gambar diatas, nilai k sangat memengaruhi penentuan kelas obyek hijau, apabila k=3, maka obyek hijau termasuk kelas segitiga, tetapi bila k=5 maka obyek hijau termasuk kelas persegi. Pada Tugas Akhir ini, penulis menggunakan nilai k=1 karena terdapat 16 kelas/kategori pada dataset. Apabila menggunakan nilai k yang cukup besar, maka batas tiap kelas akan menjadi kabur[8] sehingga dengan jumlah kelas yang cukup banyak akan lebih efisien apabila memilih nilai k=1. Karena dipilih nilai k=1, maka selanjutnya algoritma ini disebut sebagai Nearest Neighbourhood Classifier (NN-Classifier). Selain itu, dalam Tugas Akhir ini konsep jarak pada NNClassifier diganti dengan konsep similarity untuk menentukan kemiripan suatu obyek yang akan diklasifikasikan dengan obyek lainnya dimana semakin besar similarity suatu obyek dengan obyek lainnya maka jaraknya semakin pendek dan berarti kemiripan dua obyek tersebut semakin besar. Konsep similarity digunakan karena obyek yang akan diklasifikasikan adalah dokumen teks.
J/K, LA 4
∑ /NOPQ 4 K B MA RKRE B SLA S
E
X adalah dokumen testing, LA adalah dokumen training ke-j, adalah term yang ada pada X dan LA , T dan MA masing-masing adalah bobot term pada X dan LA , RKRE
UT?E - TEE - TVE - W adalah norm dari X dan SLA SE adalah norm dari LA [5]. Penghitungan similarity sebuah dokumen testing diulang terus sampai diperoleh nilai similarity dokumen testing tersebut terhadap semua dokumen training. Setelah diperoleh nilai similarity maksimum, maka kelas dokumen testing tersebut dapat ditentukan, yaitu kelas dari dokumen training yang memiliki nilai similarity maksimum dengan dokumen testing tersebut. 4. HASIL UJI COBA
Pengujian aplikasi yang dibangun dalam Tugas Akhir ini menggunakan dataset Tugas Akhir Yuliyanti[2]. Untuk pelaksanaan ujicoba pada semua skenario, dokumen berita ke-1 sampai ke-129 menjadi data train, dan sisanya menjadi data tes. Parameter-parameter yang diinputkan beserta masing-masing nilainya selengkapnya dapat dilihat pada tabel 4.1.
Parameter
Nilai
max_iterasi
50
jml_ant
40
$
% ;
( jml_dok_training
dihasilkan jauh lebih dibandingkan ant lainnya.
sedikit
1 1 0.2 0.8 129 Gambar 4.1 Uji Coba Skenario I Pada Iterasi 1
Tabel 4.2 Input Parameter
4.1 Skenario I: Update pheromone Menggunakan Metode I Pada skenario I metode update pheromone yang digunakan adalah metode pertama, yaitu nilai pheromone tiap fitur langsung ditambahkan dengan nilai pheromone tiap ant yang melewati fitur tersebut, kemudian ditambahkan lagi dengan nilai pheromone yang dihasilkan oleh best ant jika melewati fitur tersebut. Pelaksanaan skenario I dimulai dengan memasukkan parameter input seperti pada tabel 4.2. Grafik pengamatan yang diambil tiap 10 iterasi sekali ditunjukkan pada gambar berikut: 1.
2.
3.
4.
5.
6.
Pada gambar 4.1 tiap ant pada iterasi 1 memilih feature secara acak dan menghasilkan nilai pheromone yang bervariasi antara 45-91. Pada gambar 4.2 tiap ant mulai konvergen dalam memilih feature, dan rentang nilai pheromone yang dihasilkan mulai mengecil antara 65,5-67,5. Pada gambar 4.3 terjadi anomali dimana konvergensi ant dalam memilih feature semakin berkurang dibandingkan dengan gambar 4.2, hal ini ditunjukkan dengan rentang nilai pheromone yang semakin besar, antara 65-76. Pada gambar 4.4 pheromone yang dihasilkan oleh ant pada iterasi ini meningkat pesat dengan rentang nilai antara 75-86. Pada gambar 4.5 konvergensi ant menguat dibandingkan gambar sebelumnya namun terjadi penurunan nilai maksimum pheromone dibandingkan gambar sebelumnya, dari 86 pada gambar 4.4 menjadi 76.5 pada gambar 4.5. Pada gambar 4.6 terjadi anomali pada id ant 23, dimana jumlah pheromone yang
Gambar 4.2 Uji Coba Skenario I Pada Iterasi 10
Gambar 4.3 Uji Coba Skenario I Pada Iterasi 20
Gambar 4.4 Uji Coba Skenario I Pada Iterasi 30
Sama seperti pada pelaksanaan skenario I, skenario II dimulai dengan memasukkan parameter input pada tabel 4.2. Proses pelaksanaan skenario II dapat dilihat dari grafik pengamatan yang diambil tiap 10 iterasi sebagai berikut: 1.
2. Gambar 4.5 Uji Coba Skenario I Pada Iterasi 40
3.
4.
5. Gambar 4.6 Uji Coba Skenario I Pada Iterasi 50
Hasil yang diperoleh pada uji coba skenario I adalah sebagai berikut: 1. 2. 3.
4. 5.
Best ant adalah ant dengan id ant 38 pada iterasi ke-5. Pheromone yang dihasilkan oleh best ant adalah 88,5675. Feature subset yang dihasilkan oleh best ant mengandung jumlah fitur sebanyak 718 fitur. Sehingga total pengurangan dimensi feature space oleh best ant XYEE1Z?[ adalah B 100% 88,9911%. XYEE Akurasi feature subset pada no.4 adalah 88,462%. Nilai minimum pheromone yang dihasilkan adalah 46,3692.
6.
Pada gambar 4.7 ant memilih feature secara random dan nilai pheromone yang dihasilkan memiliki rentang antara 5390. Pada gambar 4.8 ant mulai memilih secara konvergen dan nilai pheromone yang dihasilkan meningkat pesat dibandingkan gambar sebelumnya dengan rentang nilai antara 75-94. Pada gambar 4.9 meskipun nilai maksimum pheromone yang dihasilkan lebih kecil dibandingkan gambar sebelumnya, namun nilai rata-rata pheromone tiap ant menjadi lebih besar. Pada gambar 4.10 meskipun tidak terjadi kenaikan nilai maksimum pheromone dibandingkan gambar sebelumnya namun rata-rata nilai pheromone yang dihasilkan semakin besar, hal ini bisa dilihat dari nilai minimum pheromone yang semakin besar. Pada gambar 4.11 nilai rata-rata pheromone yang dihasilkan meningkat pesat dibandingkan gambar sebelumnya karena sebagian besar ant menghasilkan pheromone lebih dari 94,5. Pada gambar 4.12 meskipun nilai ratarata pheromone tidak bertambah secara signifikan, namun terjadi kenaikan nilai maksimum pheromone dibandingkan gambar sebelumnya, dari 94,7 menjadi 96.
4.2 Skenario II : Update pheromone Menggunakan Metode II Pada skenario II metode update pheromone yang digunakan adalah metode kedua, yaitu dengan menghitung terlebih dahulu nilai rata-rata pheromone tiap fitur pada suatu iterasi tertentu. Nilai rata-rata inilah yang kemudian ditambahkan kedalam nilai pheromone tiap fitur pada iterasi sebelumnya. Kemudian, nilai pheromone tiap fitur ditambahkan dengan nilai pheromone yang dihasilkan oleh best ant jika melewati fitur tersebut.
Gambar 4.7 Uji Coba Skenario II Pada Iterasi 1
Gambar 4.8 Uji Coba Skenario II Pada Iterasi 10
Gambar 4.12 Uji Coba Skenario II Pada Iterasi 50
Hasil yang diperoleh dari uji coba skenario II adalah sebagai berikut: 1. 2. 3.
4. 5.
Gambar 4.9 Uji Coba Skenario II Pada Iterasi 20
Best ant adalah ant dengan id ant 6 pada iterasi ke-26. Pheromone yang dihasilkan oleh best ant adalah 95,9173. Feature subset yang dihasilkan oleh best ant mengandung jumlah fitur sebanyak 328 fitur. Sehingga total pengurangan dimensi feature space oleh best ant XYEE1VE[ adalah B 100% 94,97%. XYEE Akurasi feature subset pada no.4 adalah 96,154%. Nilai minimum pheromone yang dihasilkan adalah 53,3248.
5. KESIMPULAN DAN SARAN Dari uji coba yang telah dilakukan dan menganalisis hasil pengujian terhadap sistem ini, dapat diambil beberapa kesimpulan, yaitu : 1.
2.
Gambar 4.10 Uji Coba Skenario II Pada Iterasi 30
3.
Implementasi metode ACO dalam feature selection dapat mengurangi dimensi feature space sampai menjadi kurang dari 10% dari dimensi awal. Feature subset yang dihasilkan oleh sistem feature selection yang mengimplementasikan metode ACO dapat menghasilkan akurasi sampai 96%. Metode update pheromone yang lebih baik adalah menghitung nilai rata-rata pheromone tiap fitur terlebih dahulu baru kemudian ditambahkan ke nilai pheromone iterasi sebelumnya.
Saran untuk pengembangan selanjutnya dari sistem ini adalah : 1.
2.
Gambar 4.11 Uji Coba Skenario II Pada Iterasi 40
Perlu dilakukan optimasi agar runtime sistem dapat selesai dalam waktu yang lebih singkat. Perlu dilakukan uji coba yang lebih mendalam untuk menentukan nilai parameter-parameter input yang dapat memberikan hasil yang lebih baik.
3. Sistem feature selection perlu dicoba menggunakan dataset dan metode classifier yang lain. 6. DAFTAR PUSTAKA [1] Mehdi Hosseinzadeh Aghdam, Nasser Ghassem Aghaee, Mohammad Ehsan Basiri. “Text Feature Selection Using Ant Colony Optimization”. Science Direct, March 2009. [2] Yuliyanti. “Fuzzy Support Vector Machine untuk Klasifikasi Multi Kelas pada Dokumen Berbahasa Indonesia”. Institut Teknologi Sepuluh Nopember.2008. [3] Andrea Roli. “Ant Colony Optimization”. Aironews Vol.7 no.3 (Pages1-3), Autumn 2002. [4] Oznur Kirmemis, Gulen Toker. “Text Categorization Using K-Nearest Neighbourhood Classifier” Middle East Technical University Computer Engineering Department. [5] Vittorio Maniezzo, Luca Maria Gambardella, Fabio de Luigi. “Ant Colony Optimization”.2004. [6] Ahmed Al-Ani. “Feature Subset Selection using Ant Colony Optimization”. International Journal of Computational Intelligence, Winter 2006. [7] http://en.wikipedia.org/wiki/Ant_colony_opti mization.html [8] http://en.wikipedia.org/wiki/Knearest_neighbor_algorithm.html [9] http://www.usenix.org/events/sec02/full_pap ers/liao/liao_html/node4.html