IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma...

7
1 IMPLEMENTASI ALGORITMA K-NEAREST NEIGHBOUR YANG BERDASARKAN ONE PASS CLUSTERING UNTUK KATEGORISASI TEKS Andreas Daniel Arifin 1 , Isye Arieshanti 2 , Agus Zainal Arifin 3 1,2,3 Jurusan Teknik Informatika, Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember (ITS) – Surabaya, 60111, Indonesia Email: 1 [email protected] ABSTRAK Kategorisasi teks merupakan salah satu solusi untuk mengelola informasi yang berkembang pesat dan melimpah. Salah satu metode kategorisasi teks adalah algoritma K-Nearest Neighbour (KNN). Algoritma KNN ini dikenal cukup sederhana dan cukup efektif, namun kurang efisien. Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass KNN) untuk mengatasi kekurangan tersebut. Algoritma one pass clustering di sini digunakan untuk membangun model klasifikasi. Selanjutnya, model klasifikasi yang didapat digunakan untuk melakukan kategorisasi dengan algoritma KNN. Dengan menerapkan algoritma one pass KNN tersebut dan mengujinya pada dataset Reuters-21578, algoritma one pass KNN mencapai nilai F 1 88%, sedangkan algoritma KNN konvensional hanya mendapatkan hasil F 1 85%. Selain itu, waktu komputasi one pass KNN 80% lebih efisien sekitar jika dibandingkan dengan waktu komputasi KNN konvensional. Sehingga dapat disimpulkan bahwa one pass KNN lebih akurat dan lebih efisien dibandingkan algoritma KNN konvensional. Kata kunci: kategorisasi teks, one pass clustering, k-nearest neighbour 1. Latar Belakang Kategorisasi teks (atau klasifikasi teks) adalah suatu proses yang mengelompokkan suatu teks ke dalam suatu kategori tertentu. Secara teknis, tugas kategorisasi teks adalah memetakan fungsi tujuan: D x C {T, F}, yang mana D adalah domain dokumen dan C adalah himpunan kategori yang telah ditentukan [1]. Nilai T diberikan apabila suatu dokumen d i termasuk ke dalam kategori c j . Jika sebaliknya, diberikan nilai F. Kategorisasi teks merupakan solusi yang tepat untuk mengelola informasi yang saat ini berkembang dengan sangat cepat dan melimpah [2]. Kategorisasi teks membuat pengelolaan informasi tersebut menjadi efektif dan efisien. Dengan menggunakan kategorisasi teks, dapat dilakukan penyaringan terhadap email spam, melakukan penggalian opini (opinion mining), dan analisis sentimen. Algoritma kategorisasi teks saat ini telah banyak berkembang, antara lain: Support Vector Machines (SVM), Naive Bayessian (NB), pohon keputusan, K-Nearest Neighbour (KNN), dan lainnya. Dari berbagai macam algoritma yang telah dikembangkan tersebut, KNN dan SVM telah diakui lebih handal dibandingkan dengan algoritma yang lainnya [3]. Algoritma KNN sendiri adalah suatu algoritma yang sederhana, namun cukup efektif dalam melakukan kategorisasi teks [4]. Selain itu, proses klasifikasi dari KNN mudah untuk direpresentasikan dibandingkan dengan algoritma klasifikasi lain, seperti: SVM dan Artificial Neural Networks (ANN). Namun dalam keunggulan tersebut, KNN mempunyai beberapa kekurangan. Permasalahan mendasar adalah algoritma KNN membutuhkan alokasi memori yang besar karena tidak membangun model klasifikasi dalam prosesnya. Dengan tidak adanya model klasifikasi tersebut, efisiensi waktu komputasi menjadi buruk karena tiap satu data masukkan akan dibandingkan dengan seluruh data latih. Dengan adanya kekurangan tersebut, maka KNN bisa menjadi tidak sesuai diterapkan dengan kondisi data yang sangat melimpah dan terus berubah sekarang ini. Untuk menyelesaikan masalah tersebut, [2] mengajukan suatu metode untuk mengatasi hal tersebut. Metode tersebut bekerja dengan mengelompokkan terlebih dahulu data teks yang akan dikategorisasi dengan KNN. Pengelompokan data teks tersebut dapat dilakukan dengan teknik clustering. Pengelompokan ini merupakan proses pembangunan model klasifikasi. Berdasarkan metode yang diajukan oleh [2], dalam makalah ini akan diimplementasikan sistem kategorisasi teks dengan algoritma KNN yang berdasarkan algoritma one pass clustering dalam membangun model klasifikasi (one pass KNN). 2. Metode Bab ini berisi metode-metode yang akan digunakan dalam mengimplementasikan one pass KNN. Metode yang digunakan adalah preprocessing,

Transcript of IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma...

Page 1: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

1

IMPLEMENTASI ALGORITMA K-NEAREST NEIGHBOUR YANG BERDASARKAN ONE PASS CLUSTERING UNTUK

KATEGORISASI TEKS

Andreas Daniel Arifin1, Isye Arieshanti2, Agus Zainal Arifin3

1,2,3Jurusan Teknik Informatika, Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember (ITS) – Surabaya, 60111, Indonesia

Email: [email protected]

ABSTRAK

Kategorisasi teks merupakan salah satu solusi untuk mengelola informasi yang berkembang pesat dan melimpah. Salah satu metode kategorisasi teks adalah algoritma K-Nearest Neighbour (KNN). Algoritma KNN ini dikenal cukup sederhana dan cukup efektif, namun kurang efisien.

Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass KNN) untuk mengatasi kekurangan tersebut. Algoritma one pass clustering di sini digunakan untuk membangun model klasifikasi. Selanjutnya, model klasifikasi yang didapat digunakan untuk melakukan kategorisasi dengan algoritma KNN.

Dengan menerapkan algoritma one pass KNN tersebut dan mengujinya pada dataset Reuters-21578, algoritma one pass KNN mencapai nilai F1 88%, sedangkan algoritma KNN konvensional hanya mendapatkan hasil F1 85%. Selain itu, waktu komputasi one pass KNN 80% lebih efisien sekitar jika dibandingkan dengan waktu komputasi KNN konvensional. Sehingga dapat disimpulkan bahwa one pass KNN lebih akurat dan lebih efisien dibandingkan algoritma KNN konvensional. Kata kunci: kategorisasi teks, one pass clustering, k-nearest neighbour 1. Latar Belakang

Kategorisasi teks (atau klasifikasi teks) adalah suatu proses yang mengelompokkan suatu teks ke dalam suatu kategori tertentu. Secara teknis, tugas kategorisasi teks adalah memetakan fungsi tujuan: D x C {T, F}, yang mana D adalah domain dokumen dan C adalah himpunan kategori yang telah ditentukan [1]. Nilai T diberikan apabila suatu dokumen di termasuk ke dalam kategori cj. Jika sebaliknya, diberikan nilai F.

Kategorisasi teks merupakan solusi yang tepat untuk mengelola informasi yang saat ini berkembang dengan sangat cepat dan melimpah [2]. Kategorisasi teks membuat pengelolaan informasi tersebut menjadi efektif dan efisien. Dengan menggunakan kategorisasi teks, dapat dilakukan penyaringan terhadap email spam, melakukan penggalian opini (opinion mining), dan analisis sentimen. Algoritma kategorisasi teks saat ini telah banyak berkembang, antara lain: Support Vector Machines (SVM), Naive Bayessian (NB), pohon keputusan, K-Nearest Neighbour (KNN), dan lainnya. Dari berbagai macam algoritma yang telah dikembangkan tersebut, KNN dan SVM telah diakui lebih handal dibandingkan dengan algoritma yang lainnya [3].

Algoritma KNN sendiri adalah suatu algoritma yang sederhana, namun cukup efektif dalam melakukan kategorisasi teks [4]. Selain itu, proses klasifikasi dari KNN mudah untuk direpresentasikan dibandingkan dengan algoritma klasifikasi lain,

seperti: SVM dan Artificial Neural Networks (ANN). Namun dalam keunggulan tersebut, KNN mempunyai beberapa kekurangan. Permasalahan mendasar adalah algoritma KNN membutuhkan alokasi memori yang besar karena tidak membangun model klasifikasi dalam prosesnya. Dengan tidak adanya model klasifikasi tersebut, efisiensi waktu komputasi menjadi buruk karena tiap satu data masukkan akan dibandingkan dengan seluruh data latih. Dengan adanya kekurangan tersebut, maka KNN bisa menjadi tidak sesuai diterapkan dengan kondisi data yang sangat melimpah dan terus berubah sekarang ini.

Untuk menyelesaikan masalah tersebut, [2] mengajukan suatu metode untuk mengatasi hal tersebut. Metode tersebut bekerja dengan mengelompokkan terlebih dahulu data teks yang akan dikategorisasi dengan KNN. Pengelompokan data teks tersebut dapat dilakukan dengan teknik clustering. Pengelompokan ini merupakan proses pembangunan model klasifikasi. Berdasarkan metode yang diajukan oleh [2], dalam makalah ini akan diimplementasikan sistem kategorisasi teks dengan algoritma KNN yang berdasarkan algoritma one pass clustering dalam membangun model klasifikasi (one pass KNN). 2. Metode

Bab ini berisi metode-metode yang akan digunakan dalam mengimplementasikan one pass KNN. Metode yang digunakan adalah preprocessing,

Page 2: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

2

pembangunan model klasifikasi dengan one pass clustering, dan kategorisasi teks dengan KNN. 2.1. Preprocessing

Tahap preprocessing diawali dengan melakukan ekstraksi terhadap dataset yang berupa berkas XML. Berkas XML akan diekstrak berdasarkan tag-tag yang ada pada berkas tersebut. Tiap satu dokumen berita pada berkas dibatasi oleh tag REUTERS. Pada tag tersebut terdapat atribut LEWISSPLIT yang menyimpan informasi tentang tipe dokumen, apakah termasuk ke dalam data latih atau data uji. Dokumen termasuk ke dalam data latih apabila nilai dari atribut LEWISSPLIT adalah “TRAIN”. Sedangkan dokumen termasuk ke dalam data uji apabila nilainya adalah “TEST”. Kemudian, diambil juga isi dari tag DATE yang merepresentasikan tanggal dimuatnya berita. Tag TOPICS berisi daftar topik atau kategori yang menggambarkan isi dokumen. Tiap topik pada tag tersebut dipisahkan oleh tag D.

Gambar 2.1 Diagram alir tahap preprocessing.

Isi dari dokumen diambil dari tag TEXT yang di

dalamnya juga terdapat tag TITLE yang mengandung informasi tentang judul dari berita, sedangkan isi dari berita itu sendiri terdapat pada tag BODY. Pada beberapa dokumen, tag TEXT dapat memiliki atribut TYPE dengan nilai “UNPROC”. Pada kasus tersebut, dokumen tidak memiliki judul, hanya memiliki isi saja. Setelah berkas XML dapat diekstrak informasi yang diinginkan menjadi sekumpulan dokumen, dokumen tersebut akan disimpan ke dalam database. Dokumen-dokumen yang telah disimpan tersebut dapat disebut sebagai corpus.

Setelah semua dokumen tersimpan ke dalam database, dilakukan preprocessing terhadap tiap dokumen tersebut. Tahap ini diawali dengan melakukan case folding terhadap teks dalam dokumen. Case folding ini akan mengubah semua huruf dalam teks menjadi huruf kecil [5]. Setelah itu, dokumen akan dilakukan proses filtering, yaitu dengan membuang semua karakter yang tidak bersifat signifikan, seperti: tanda baca dan angka [5]. Dokumen kemudian akan diekstrak untuk mendapatkan term-term dari tiap dokumen. Ekstraksi term tersebut dilakukan dengan memisahkan teks dalam kalimat berdasarkan tanda white space. Term-term yang sudah didapat tersebut akan diseleksi berdasarkan daftar stop word. Selanjutnya, term-term yang terpilih akan melalui proses stemming

menggunakan algoritma Porter. Secara keseluruhan, tahap preprocessing dapat dilihat pada Gambar 2.1.

Kumpulan term-term yang sudah diekstrak akan direpresentasikan ke dalam bentuk vektor yaitu Vector Space Model (VSM) [6]. Bobot yang akan digunakan pada VSM tersebut adalah bobot tf-idf. Rumus tf-idf dinyatakan dalam Persamaan 2.1 berikut.

𝑤𝑡,𝑑 = (1 + log 𝑡𝑓𝑡,𝑑) × log10

𝑁𝑑𝑓𝑡

(2.1) Dalam Persamaan 2.1, t merupakan term atau

kata, dan d merupakan dokumen. Notasi N adalah total semua dokumen yang ada. Selanjutnya, bobot tf-idf tersebut akan dinormalisasi dengan nilai cosine. Nilai cosine adalah jumlah dari tiap bobot dari term yang ada pada dokumen yang sama. Hasil penjumlahan tersebut kemudian diakarkuadratkan, kemudian nilainya membagi 1.

2.2. Pembangunan Model dengan Clustering

Data yang sudah direpresentasikan ke dalam bentuk VSM akan dijadikan acuan untuk pembangunan model klasifikasi, terutama data latih. Pembangunan model klasifikasi ini menggunakan algoritma one pass clustering [2]. Algoritma clustering ini memiliki keunggulan dari segi waktu daripada algoritma clustering konvensional, seperti k-means, karena algoritma hanya membaca data satu kali selama proses clustering. Tahap-tahap proses one pass clustering dijelaskan sebagai berikut yang juga tersaji dalam diagram alir dalam Gambar 2.2: 1. Buat suatu himpunan kosong untuk menampung

cluster, m0. 2. Baca teks p dari corpus data latih. Bentuk

cluster baru dengan anggota p, dan label dari cluster adalah label dari dari teks p.

3. Jika tidak ada teks yang bisa dibaca di corpus data latih, maka menuju ke nomor 6. Sebaliknya, baca teks baru p dari corpus, hitung kemiripan teks p dengan semua cluster C di m0 menggunakan fungsi cosine. Ambil cluster yang terdekat dengan p atau yang nilai kemiripannya paling besar, sim(p,C*) ≥ sim(p,C).

4. Jika nilai sim(p,C*) < r atau label teks p berbeda dengan label cluster C*, maka menuju ke 2. Variabel r adalah variabel threshold yang akan dijelaskan kemudian.

5. Gabungkan teks p ke dalam cluster C* dan perbarui bobot dari tiap kata di C*. Kemudian, menuju ke 3.

6. Hentikan proses clustering. Ambil hasil clustering, m0= {C1, C2, C3,…, C4}, tiap cluster dalam m0 berisi kumpulan kata berbobot dan label cluster. Himpunan m0 adalah model klasifikasi. Dalam proses clustering di atas, terdapat proses

pembaruan bobot. Strategi untuk pembaruan bobot

Page 3: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

3

yang tercantum pada langkah 5 adalah pada Persamaan 2.2.

𝑤𝐶𝑖𝑗+1(𝑡) =

𝑤𝑐𝑖𝑗 (𝑡)×|𝑐𝑖|+𝑤(𝑡)𝑝

|𝑐𝑖|+1, (2.2)

di mana 𝑤𝐶𝑖

𝑖+1(𝑡) adalah bobot baru dari kata t dari cluster ci. 𝑤𝑐𝑖

𝑖 (𝑡) adalah bobot lama dari kata t dari cluster ci. 𝑤(𝑡)𝑝 adalah bobot kata t pada teks p. Dan, |𝑐𝑖| adalah jumlah teks pada cluster ci. Selain pembaruan bobot, dalam proses clustering tersebut juga terdapat nilai r. Nilai r adalah nilai threshold yang dapat mempengaruhi efisiensi waktu dan kualitas dari clustering. Nilai r tersebut dapat di-

Gambar 2.2 Diagram alir tahap pembangunan model.

peroleh dengan menggunakan teknik sampling sebagai berikut. 1. Pilih secara acak N0 pasang teks dari corpus. 2. Hitung kemiripan (similarity) tiap pasang teks.

3. Hitung nilai rata-rata kemiripan yang didapat dari tahap 2 (ex).

4. Tentukan nilai r dari persamaan ε x ex, di mana ε ≥ 1. Model klasifikasi tersebut dapat diperbarui

(update) apabila terdapat data pelatihan baru yang ingin ditambahkan. Algoritma one pass clustering memungkinkan model klasifikasi dapat diperbarui dengan mudah karena sifatnya yang incremental. Proses pembaruan model dimulai dari tahap ke (3) dari algoritma one pass clustering.

2.3. Kategorisasi Teks

Model klasifikasi yang telah didapat dari proses clustering sebelumnya akan digunakan sebagai acuan untuk melakukan kategorisasi teks. Proses kategorisasi teks ini akan menggunakan algoritma K-Nearest Neighbour (KNN). Secara sederhana, algoritma ini bekerja dengan membandingkan jarak data masukan dengan sejumlah k data pelatihan yang paling dekat [4]. Secara matematis, algoritma KNN berdasarkan one pass clustering dijabarkan dalam Persamaan 2.3 [2].

𝑓(𝑥) = argmax

𝑗𝐶𝑙𝑢𝑠𝑡𝑒𝑟𝑆𝑐𝑜𝑟𝑒�𝑥, 𝑐𝑗�

= argmax𝑗

(∑ 𝑠𝑖𝑚(𝑥,𝐶𝑖)𝑦(𝐶𝑖 , 𝑐𝑗))𝐶𝑖∈𝐾𝑁𝑁 , (2.3)

di mana fungsi f(x) adalah fungsi yang mengembalikan label yang diberikan ke teks x. 𝐶𝑙𝑢𝑠𝑡𝑒𝑟𝑆𝑐𝑜𝑟𝑒�𝑥, 𝑐𝑗� adalah skor kandidat perbandingan dokumen x dengan kumpulan kategori 𝑐𝑗 . Fungsi 𝑠𝑖𝑚(𝑥,𝐶𝑖) mengembalikan nilai kemiripan (similarity) antara teks x dengan kategori 𝐶𝑖. Dan, 𝑦(𝐶𝑖 , 𝑐𝑗) akan bernilai 1 apabila cluster Ci memiliki label cj, dan bernilai 0 apabila sebaliknya.

Secara sederhana, proses kategorisasi ini akan menghitung nilai kemiripan antara teks masukan dengan cluster dari model klasifikasi. Kemudian, akan dipilih k cluster yang mempunyai nilai kemiripan paling besar. Menghitung skor dari kategori tiap-tiap cluster terpilih. Label dari kategori dengan skor terbesar akan menjadi label dari data teks masukan. 3. Skenario Uji Coba

Uji coba dilakukan pada lingkungan perangkat keras sebagai berikut: 1. Processor: Intel(R) Core(TM)2 Duo T8100 @

2,10 GHz. 2. Memory: 2,99 GB. Sedangkan, lingkungan perangkat lunak yang dipakai adalah: 1. Sistem operasi: Windows XP SP3. 2. Tools:

- XAMPP 1.7.7

Page 4: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

4

- Java Runtime Enviroment 1.6.0.29. Data yang digunakan pada uji coba ini adalah

dataset Reuters-21578. Dari 135 kategori yang ada, hanya akan diambil 7 kategori saja, yaitu: ACQ, corn, crude, earn, interest, ship, dan trade. Tiap satu dokumen bisa saja memiliki dua kategori dan dianggap sebagai satu entitas yang berbeda tiap kategorinya. Dataset tersebut dibagi menjadi data latih dan data uji berdasarkan tag LEWISSPLIT pada berkas XML. Data latih adalah data yang digunakan sebagai acuan untuk membangun model klasifikasi, sedangkan data uji adalah data yang digunakan untuk menguji performa dari model klasifikasi tersebut. Jumlah data latih yang digunakan sebanyak 6010 dan jumlah data uji adalah sebanyak 2388. Rincian jumlah untuk masing-masing kategori dapat dilihat pada Tabel 3.1. Tabel 3.1 Tabel Pembagian Data Latih dan Data

Uji No. Kategori Data Latih Data Uji 1 ACQ 1650 719 2 Corn 181 56 3 Crude 389 189 4 Earn 2877 1087 5 Interest 347 131 6 Ship 197 89 7 Trade 369 117 Total 6010 2388

Proses evaluasi perlu dilakukan untuk melihat

sejauh mana kinerja dari model klasifikasi yang telah dibangun. Evaluasi dilakukan dengan menggunakan 2388 data uji. Proses evaluasi ini akan menggunakan metode F1 dan Macro-F1. Metode evaluasi F1 merupakan penerapan gabungan dari recall (r) dan precision (p) yang dinyatakan ke dalam Persamaan 3.1. F1 merupakan nilai peforma untuk satu kategori.

𝐹1 = 2 × 𝑟 × 𝑝

𝑟 + 𝑝 (3.1)

Sedangkan Macro-F1 adalah nilai rata-rata dari nilai F1 individu masing-masing kategori.

Skenario uji coba pada makalah ini akan dilakukan sebanyak dua skenario. Skenario I adalah uji coba yang dilakukan untuk mencari parameter epsilon pada KNN berdasarkan one pass clustering (one pass KNN) yang menghasilkan performa paling bagus. Sedangkan skenario II adalah uji coba dilakukan melihat dan membandingkan performa algoritma one pass KNN dengan algoritma KNN konvensional.

Skenario I pada uji coba ini dilakukan untuk mencari nilai epsilon pada algoritma one pass KNN yang menghasilkan performa terbaik. Hasil sebelumnya menyatakan bahwa nilai epsilon terbaik berada pada rentang nilai 3-10 [2]. Pada uji coba ini, dibangun model klasifikasi dengan algoritma one

pass KNN dengan nilai epsilon tersebut. Nilai rata-rata kemiripan antardokumen (ex) yang digunakan pada perhitungan nilai threshold diatur tetap yaitu 0,022932625 yang didapat dari uji coba dengan salah satu nilai epsilon. Hal tersebut dilakukan karena nilai ex bersifat acak. Pada proses klasifikasi, digunakan nilai k yang nilainya adalah 1, 5, 10, 20, 30, 45, 50, 60, 70, dan 80. Data latih yang digunakan adalah 6010 dokumen Reuters-21578. Sedangkan data uji yang digunakan adalah 2388 dokumen Reuters-21578. Performa diukur dengan metode F1 dan Macro-F1 di mana performa berbanding lurus dengan nilainya.

Skenario II ini dilakukan untuk menguji performa one pass KNN dengan KNN konvensional. Uji coba dilakukan dengan menggunakan model klasifikasi yang dibangun dengan 6010 data latih. Untuk algoritma one pass KNN dalam pembangunan model klasifikasi, digunakan nilai epsilon = 4 merujuk pada uji coba skenario I yang menghasilkan performa paling bagus dan jumlah pasang dokumen adalah 8000 yang sama seperti pada [2]. Sedangkan pada algoritma KNN, tidak diperlukan masukkan parameter apapun karena algoritma ini merupakan algoritma lazy learner yang tidak membangun model klasifikasi. Nilai k yang dipakai untuk melakukan klasifikasi adalah 1, 5, 10, 20, 30, 45, 50, 60, 70, dan 80. Performa akan dihitung berdasarkan output data uji yang berjumlah sebanyak 2388. Performa akan diukur dengan metode F1 dan Macro-F1, serta dengan waktu komputasi.

4. Hasil Uji Coba

Bagian ini akan menjelaskan hasil uji coba yang

telah dilakukan pada skenario I. Data yang ditampilkan adalah data dari performa empat nilai k terbaik dengan delapan macam nilai epsilon. Nilai k tersebut antara lain: 10, 20, 30, 50. Hasil uji coba disajikan dalam tabel di mana satu tabel yang berisi nilai Macro-F1 untuk delapan nilai epsilon.

Tabel 4.1 menunjukkan hasil uji coba dengan nilai k = 10. Pada hasil uji coba tersebut, didapat nilai Macro-F1 di atas 0,85 secara keseluruhan. Nilai Macro-F1 terendah pada nilai epsilon sebesar 7 yaitu 0,8569. Sedangkan Nilai Macro-F1 tertinggi didapat pada nilai epsilon 8 dengan nilai 0,8658. Hasil tersebut menunjukkan kecenderungan nilai Macro-F1 yang makin kecil walaupun sempat mengalami kenaikan yang cukup signifikan pada epsilon 8.

Hasil uji coba dengan nilai k = 20 dijabarkan pada Tabel 4.1. Hasil secara keseluruhan berisi nilai Macro-F1 hampir di atas 0,86. Nilai Macro-F1 maksimum adalah 0,87803 pada epsilon = 4. Nilai Macro-F1 minimum yang didapat pada epsilon 6 adalah 0,8595. Pada uji coba ini, didapat kecenderungan semakin besar nilai epsilon, semakin turun performanya. Titik penurunan berada pada epsilon 5.

Page 5: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

5

Tabel 4.1 Performa pada Empat Nilai k.

epsilon Macro-F1

k=10 k=20 k=30 k=50 3 0,8632 0,8764 0,8739 0,8556 4 0,8628 0,8780 0,8802 0,8631 5 0,8639 0,8743 0,8692 0,8612 6 0,8621 0,8595 0,8596 0,8633 7 0,8569 0,8666 0,8641 0,8550 8 0,8658 0,8640 0,8598 0,8589 9 0,8650 0,8603 0,8629 0,8594 10 0,8580 0,8602 0,8610 0,8626

Hasil uji coba dengan nilai k = 30 dalam tabel

4.1 menghasilkan performa Macro–F1 yang cukup baik karena secara keseluruhan nilainya hampir di atas 0,85. Nilai terkecil berada saat epsilon 6 dengan nilai Macro-F1 0,8596 dan nilai terbesar adalah 0,8802 saat epsilon = 4. Pada uji coba ini, kecenderungan nilai Macro-F1 dengan epsilon adalah menurun.

Hasil uji coba pada nilai k = 50 pada tabel 4.1 menunjukkan kecenderungan nilai Macro-F1 meningkat seiring dengan meningkatnya nilai epsilon. Namun, kecenderungan tersebut mengalami pengecualian pada nilai epsilon = 7 di mana performa mengalami penurunan secara drastis. Hasil uji coba ini menghasilkan rentang nilai antara 0,8550 pada epsilon = 7 hingga 0,8633 pada epsilon = 6.

Tabel 4.2 menunjukkan perbandingan jumlah cluster dengan berbagai nilai epsilon. Jumlah cluster yang terbentuk berbanding lurus dengan nilai epsilon yang diberikan. Jumlah cluster bertambah dengan sekitar 200 cluster tiap peningkatan nilai epsilon.

Tabel 4.2 Perbandingan Performa berdasarkan Nilai epsilon.

epsilon Jumlah Cluster 3 1269 4 1421 5 1593 6 1783 7 2016 8 2233 9 2481 10 2717

Gambar 4.1 menunjukkan grafik perbandingan nilai epsilon dengan performa dengan empat nilai k. Kecenderungan yang didapat secara umum adalah

semakin besar nilai epsilon, semakin kecil nilai performanya yang terlihat pada grafik.

Gambar 4.1 Grafik performa Macro-F1 terhadap

nilai epsilon pada Skenario I.

Dari tabel 4.3, ditunjukkan performa hasil klasifikasi dari algoritma one pass KNN dan KNN konvensional yang dinyatakan dengan nilai Macro-F1 dan waktu komputasi. Nilai Macro-F1 ditampilkan dalam sebuah grafik pada Gambar 4.2. Dari grafik tersebut, terlihat bahwa performa algoritma one pass KNN dengan epsilon 4 hampir selalu lebih baik daripada algoritma KNN konvensional pada berbagai nilai k yang ditunjukkan garis grafik one pass KNN hampir selalu di atas dari garis grafik KNN, kecuali pada nilai k = 1. Kedua algoritma sama-sama mengalami kecenderungan penurunan performa pada saat nilai k = 45. Algoritma one pass KNN mencapai hasil performa terbaiknya pada nilai k = 30 dengan nilai Macro-F1 adalah 0,8802. Sedangkan algoritma KNN mencapai hasil performa terbaik pada nilai k = 50 dengan nilai Macro-F1 adalah 0,8509.

Tabel 4.3 Hasil Uji Coba dari One Pass KNN (epsilon=4) dan KNN Tradisional.

k Waktu Klasifikasi Macro-F1

One Pass KNN KNN One Pass

KNN KNN 1 194 1523 0,7409 0,7434 5 193 1536 0,8406 0,8065

10 196 1528 0,8628 0,8231 20 199 1535 0,8780 0,8425 30 205 1494 0,8802 0,8426 45 197 1469 0,8686 0,8475 50 198 1570 0,8631 0,8509 60 195 1524 0,8602 0,8447 70 198 1549 0,8580 0,8392 80 201 1564 0,8452 0,8369

0,840,850,860,870,880,89

3 4 5 6 7 8 9 10

Mac

ro-F

1

epsilon

k=10

k=20

k=30

k=50

Page 6: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

6

Gambar 4.2 Grafik performa Macro-F1 terhadap nilai k.

Pada Tabel 4.3, juga ditampilkan hasil waktu komputasi dari masing-masing kategori. Waktu komputasi untuk algoritma one pass KNN berkisar pada 197 detik. Sedangkan pada algoritma KNN, waktu komputasinya berkisar 1529 detik. Sehingga, terlihat bahwa algoritma one pass KNN memiliki waktu komputasi yang jauh lebih baik daripada algoritma KNN konvensional pada data latih yang sama. Namun, algoritma one pass KNN memiliki waktu untuk melakukan pembangunan model klasifikasi yang bernilai sebesar 905 detik.

Hasil performa terbaik tiap kategori dapat dilihat pada Tabel 4.4. Dari tabel tersebut, terlihat algoritma one pass KNN memiliki performa lebih baik pada semua kategori, kecuali kategori corn, crude, dan interest. Kedua algoritma sama-sama mendapatkan nilai performa kurang baik pada kategori crude dan ship yang hanya ada pada kisaran 0,7. Tabel 4.4 Perbandingan Detail Kategori Skenario

II.

Kategori One Pass KNN (k=30) KNN (K=50) Jumlah Cluster Nilai F1 Nilai F1

ACQ 529 0,9580 0,8365 Corn 38 0,9259 0,9310 Crude 122 0,7625 0,7933 Earn 491 0,9798 0,9135 Interest 56 0,9008 0,9098 Ship 89 0,7477 0,7000 Trade 96 0,8863 0,8720

1421 0,8802 0,8509 5. Pembahasan

Hasil uji coba skenario I terhadap algoritma one pass KNN dengan berbagai nilai parameter epsilon menunjukkan hasil performa yang cukup baik. Hasil performa terbaik didapat pada nilai epsilon = 4, yaitu 0,88015. Dari berbagai nilai epsilon yang diujicoba,

didapat kecenderungan jumlah cluster yang makin bertambah seiring dengan nilai epsilon yang diberikan. Hal tersebut wajar terjadi karena semakin besar nilai epsilon, maka semakin besar pula nilai threshold yang didapat. Semakin besar nilai threshold, akan semakin kecil pula batasan hyper sphere pada suatu cluster yang menyebabkan semakin kecil peluang suatu dokumen untuk masuk ke dalam cluster tersebut. Selain itu, terdapat juga kecenderungan semakin bertambahnya nilai epsilon semakin menurun performanya. Dengan makin bertambahnya nilai epsilon, maka jumlah jangkauan cluster yang terbentuk makin kecil. Dengan kecilnya jangkau cluster, maka peluang data noise untuk membentuk suatu cluster sendiri makin besar. Sehingga, hasil klasifikasi dapat berpengaruh tidak baik. Namun, dengan semakin besarnya jangkauan cluster, maka pengaruh data tereduksi karena data tersebut akan dilebur menjadi satu centroid.

Hasil uji coba skenario II terhadap algoritma one pass KNN dibandingkan dengan algoritma KNN menunjukkan bahwa algoritma one pass KNN memiliki performa lebih baik daripada algoritma KNN konvensional. Algoritma one pass KNN memiliki perbaikan performa rata-rata sebesar 2,63 % dibandingkan dengan algoritma KNN. Algoritma KNN lebih baik daripada algoritma one pass KNN hanya pada k = 1. Nilai tersebut dapat diabaikan karena hasil tersebut dapat saja terpengaruh oleh noise yang merupakan kekurangan algoritma KNN konvensional [4]. Performa one pass KNN lebih baik karena nilai bobot tiap term dari masing-masing dokumen dengan kategori yang sama telah tergeneralisasi menjadi satu cluster. Sehingga, dokumen yang memiliki karakteristik data berbeda dari normal akan berkurang pengaruhnya.

Hasil performa tiap kategori yang dapat dilihat Tabel 4.4 dan menunjukkan hasil yang cukup baik di hampir semua kategori dengan nilai F1 di atas 0.85. Namun, performa mengalami penurunan pada kategori crude dan ship yang hanya mencapai kisaran nilai 0,75. Hal tersebut terjadi karena karakteristik dataset yang memungkinkan satu dokumen mempunyai banyak kategori. Kategori crude dan ship

0,65

0,7

0,75

0,8

0,85

0,9

1 5 10 20 30 45 50 60 70 80

Mac

ro-F

1

Nilai k

One Pass KNN

KNN

Page 7: IMPLEMENTASI ALGORITMA K -NEAREST NEIGHBOUR … · Pada makalah ini, diimplementasikan algoritma KNN yang menggunakan one pass clustering (one pass ... Latar Belakang . Kategorisasi

7

merupakan kategori yang paling banyak berpotongan dalam dataset ini.

Dalam uji coba skenario II, terdapat kecenderungan nilai performa makin menurun seiring dengan bertambahnya nilai k. Performa kedua algoritma sama-sama cenderung menurun pada saat k = 45. Hal itu dapat disebabkan dari karakteristik data latih yang diberikan. Jumlah dokumen untuk masing-masing kategori sangat tidak berimbang. Kategori corn hanya memiliki data latih sebanyak 118, namun kategori earn memiliki data latih sebanyak 2877. Dengan bertambahnya jumlah dokumen atau cluster yang dipilih seiring dengan nilai k, menyebabkan dominasi kategori yang seharusnya terpilih makin menurun karena jumlahnya kalah dari kategori lain.

Total waktu one pass KNN selisih 80% dari total waktu KNN. Algoritma one pass KNN memiliki waktu yang jauh lebih baik dalam proses klasifikasi. Namun, algoritma one pass memerlukan waktu untuk melakukan pembangunan model. Hal tersebut tidak menjadi masalah karena proses tersebut dapat dilakukan sekali. Lebih efisiensinya waktu dari algoritma one pass KNN disebabkan oleh komputasi yang dilakukan dengan membandingkan data masukkan dengan data latih tereduksi karena sistem hanya perlu membandingkan dengan centroid dari cluster-cluster yang telah terbentuk.

6. Kesimpulan

Dari implementasi dan hasil uji coba terhadap algoritma one pass KNN untuk kategorisasi teks, dapat diambil kesimpulan: 1. Algoritma one pass KNN dapat

diimplementasikan dengan melakukan preprocessing untuk mengubah dokumen menjadi vektor. Kemudian, membangun model klasifikasi berupa cluster dengan algoritma one pass clustering dan dapat memperbaruinya. Model klasifikasi digunakan untuk mengklasifikasi dengan algoritma KNN. Evaluasi dilakukan dengan metode F1 dan Macro-F1.

2. Semakin besar nilai threshold yang dipengaruhi oleh nilai epsilon, maka performa cenderung makin menurun. Hal ini juga berlaku untuk perbandingan performa dengan nilai k. Nilai threshold terbaik adalah saat epsilon bernilai 4.

3. Performa one pass KNN lebih baik daripada performa KNN konvensional di mana performa one pass KNN bernilai 88% pada pada epsilon sebesar 4 dan nilai k sebesar 30 dibanding dengan performa KNN yang bernilai hanya 85% saat nilai k = 50.

4. Efisiensi waktu komputasi algoritma one pass KNN 70% lebih baik daripada waktu komputasi algoritma KNN konvensional. Namun, algoritma one pass KNN memerlukan waktu untuk melakukan pembangunan model. Waktu pembangunan model dapat diabaikan dalam perbandingan ini karena hal tersebut dilakukan hanya sekali saja.

7. Daftar Pustaka [1] F. Sebastiani, “Machine learning in automated

text categorization,” ACM Computing Surveys, vol. 34, no. 1, pp. 1-47, 2002.

[2] S. Jiang, G. Pang, M. Wu and L. Kuang, "An improved K-nearest-neighbor algorithm for text categorization," Expert Systems with Applications, vol. 39, pp. 1503-1509, 2011.

[3] Y. Yang dan X. Liu, “A Re-examination of Text Categorization Methods,” dalam Proceedings 22nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR-99), Berkeley, 1999.

[4] P.-N. Tan, M. Steinbach dan V. Kumar, Introduction to Data Mining, 1st penyunt., Boston: Pearson Addison Wesley, 2006.

[5] C. D. Manning, P. Raghavan dan H. Schütze, An Introduction to Information Retrieval, Cambridge: Cambridge University Press, 2009.

[6] G. Salton, A. Wong dan C. S. Yang, “A Vector Space Model for Automatic Indexing,” Communications of the ACM, vol. 18, no. 11, pp. 613-620, 1975.