Selain itu, tidak ada batasan yang jelas mengenai panjang dari dokumen yang mungkin sehingga dapat dikatakan bahwa kombinasi dari π‘1 , … , π‘π , … , π‘π π yang mungkin berjumlah tak hingga (Manning et al. 2008). Oleh sebab itu, dibuat suatu asumsi bahwa kemunculan masing-masing token π‘ bersifat independen antara satu token dengan token yang lainnya. Dengan asumsi tersebut, nilai dari π π π dapat diestimasi sebagai berikut: π ππ = π(π‘π |π) 1≤π ≤π π sehingga peluang suatu dokumen π untuk masuk ke dalam kelas π dapat diestimasi dengan cara: π π π ∝π π π(π‘π |π) 1≤π ≤π π dengan π(π‘π |π) adalah peluang dari suatu token π‘π muncul pada dokumen yang diketahui memiliki kelas c; sedangkan π π adalah peluang awal dari suatu dokumen untuk masuk ke dalam kelas c. Nilai dari π π dapat diestimasi dengan melihat frekuensi kemunculan dokumen pada kelas π relatif terhadap jumlah seluruh dokumen yaitu: π π = ππ π dengan ππ adalah jumlah dokumen yang terdapat di kelas π dan π adalah jumlah seluruh dokumen yang ada. Nilai π π‘ π untuk masing-masing token didapatkan dari proses training. Lebih sepesifik lagi, nilai π π‘ π diestimasi dengan melihat frekuensi token π‘ yang muncul pada kelas c relatif terhadap jumlah kemunculan seluruh token yang ada di kelas c yaitu: π π‘π π = πππ‘ π‘′ππ£ πππ‘ ′ dengan πππ‘ adalah jumlah kemunculan token π‘ dalam dokumen training yang berada di kelas c termasuk di dalamnya kemunculan token yang berjumlah lebih dari satu kali; dan π‘′ππ£ πππ‘ ′ adalah jumlah seluruh token yang terdapat pada seluruh dokumen di kelas c termasuk untuk token-token yang muncul berulang kali pada dokumen yang sama. Permasalahan akan terjadi saat ditemukan token yang hanya muncul pada salah satu kelas saja atau tidak muncul di kelas manapun pada proses training. Nilai π(π‘π |π) yang dihasilkan akan sama dengan nol sehingga mengacaukan perhitungan π π π . Untuk mengatasi permasalahan tersebut, digunakan laplace smoothing yaitu menambahkan jumlah kemunculan setiap token sebanyak satu sehingga perhitungan nilai dari π π‘π π menjadi: π π‘π π = πππ‘ + 1 π‘′ππ£ (ππ π‘ ′ + 1) π π‘π π = πππ‘ + 1 π‘′ππ£ πππ‘ ′ + π΅′ dengan π΅ ′ adalah jumlah seluruh vocabulary (kata unik) yang terdapat dalam data training. Multi-variate Bernoulli NB Berbeda dengan multinomial NB, multivariate Bernoulli NB hanya mencatat indikator kemunculan suatu token tanpa menghitung term frequency-nya. Perbedaan lain yang cukup menonjol adalah multi-variate Bernoulli NB ikut memperhitungkan tokentoken yang tidak muncul dalam dokumen pada proses klasifikasinya. Perbedaan ini terjadi karena perbedaan dalam cara menduga π π‘π π . Multi-variate Bernoulli NB menduga π π‘π π sebagai fraksi dari dokumen pada kelas π yang mengandung token π‘ sementara multinomial NB menduga π π‘π π sebagai fraksi dari token pada dokumen di kelas π yang mengandung token π‘ (Manning et al. 2008). Multinomial NB dengan Atribut Boolean Multinomial NB dengan atribut boolean hampir sama dengan multinomial NB yang menggunakan atribut term frequency (tf) termasuk dalam proses pendugaan nilai π π‘ π . Perbedaannya terletak pada atribut yang digunakan yaitu atribut boolean. Pada atribut boolean, token yang muncul berulang kali tetap dianggap sebagai satu kemunculan untuk setiap dokumennya. Schneider (2004) dalam penelitiannya menyatakan bahwa term frequency bukanlah faktor yang menjadi penyebab multinomial NB memiliki kinerja yang lebih baik dibandingkan dengan multi-variate Bernoulli NB. Perbedaan kinerja antar dua metode tersebut lebih disebabkan oleh bagaimana kedua metode tersebut memperlakukan bukti yang tidak ada (negative evidence) yaitu token yang tidak muncul pada pesan. Pada metode 3 multi-variate Bernoulli, hasil dari klasifikasi lebih banyak dipengaruhi oleh kata-kata yang tidak ada di dalam pesan. Schneider (2004) menunjukkan bahwa multinomial NB akan memiliki kinerja yang lebih baik jika atribut term frequency digantikan dengan atribut boolean. Penggunaan atribut term frequency menyebabkan pengaruh negative evidence menjadi lebih besar dibandingkan dengan penggunan atribut boolean. Karena kemunculan setiap term akan dibandingkan dengan jumlah kemunculan dari seluruh kata yang terdapat pada kelas tersebut, penggunaan atribut term frequency menyebabkan nilai peluang untuk setiap term akan semakin kecil. Dengan menggunakan atribut boolean, efek dari negative evidence dapat dikurangi karena kemunculan setiap kata hanya dicatat satu kali saja pada setiap dokumennya. Spam Filtering dengan Multinomial NB Spam Filtering adalah proses menyaring email menjadi dua buah kategori yaitu spam dan ham. Meskipun aksi pengiriman pesan dalam jumlah massal merupakan salah satu ciri utama yang menyebabkan pesan tersebut dikatakan sebagai spam, dapat dilihat bahwa kandungan bahasa yang digunakan oleh pesan spam memiliki tema tersendiri dan jarang ditemukan pada pesan biasa (ham). Dengan karakteristik seperti ini, teknik klasifikasi teks dapat diterapkan untuk permasalahan spam filtering (Androutsopoulos et al. 2000). Jika dimisalkan π sebagai kelas dari email πΈ yang termasuk ke dalam kategori spam, maka dengan teori Bayes, peluang email πΈ adalah spam π yaitu π π πΈ dapat diestimasikan sebagai berikut: π ππΈ = π πΈ π = π π€1 , … , π€π |π Karena antara satu token dengan token yang lainnya diasumsikan independen, maka nilai π π€1 , … , π€π |π dapat dihitung dengan cara: π = Lalu dengan cara yang sama, untuk π πΈ π» : π πΈ π» = π π€1 , … , π€π |π» π = Dengan cara yang sama, peluang email πΈ masuk ke dalam kelas ham π» dapat diestimasikan dengan cara: π πΈ π» π(π») π π»πΈ = π(πΈ) Pada metode multinomial NB, nilai dari π πΈ π dapat diestimasikan sebagai berikut: π π€π |π» π=1 Sementara itu, dengan merujuk kembali pada teori NB multinomial, nilai dari π π€π |π dapat dihitung dengan cara: π(π€π |π) = ππ π€ + 1 π€ ′ ππ£ ππ π€ ′ + π΅′ dengan ππ π€ adalah jumlah kemunculan token π€ pada email dengan kelas π, B‘ adalah jumlah vocabulary yang terdapat dalam data training, sementara adalah π€ ′ ππ£ ππ π€ ′ jumlah kemunculan seluruh token pada kelas S (Sun 2009). Karena NB yang digunakan adalah NB multinomial dengan atribut boolean, seluruh kemunculan token dihitung satu untuk setiap dokumennya meskipun token tersebut muncul berulang kali. Selanjutnya kelas dari email πΈ dapat ditentukan dengan membandingkan antara π π πΈ dengan π π» πΈ : π ππΈ π πΈ π π(π) = π π»πΈ π πΈ π» π(π») π ππΈ = π π»πΈ π πΈ π π(π) π(πΈ) dengan π πΈ π adalah peluang kemunculan email πΈ pada kelas spam, π π adalah peluang awal suatu email masuk ke dalam kelas spam dan π(πΈ) adalah peluang kemunculan email πΈ. π π€π |π π=1 π π=1 π π π=1 π π ππΈ π(π) = π π»πΈ π(π») π€π |π π(π) π€π |π» π(π») n i π π€π |π π π€π |π» Karena pada proses perhitungannya nilai-nilai di atas bisa sangat kecil dan menghasilkan kesalahan presisi (Manning et al. 2008), kedua sisi dihitung hasil log-nya sehingga menjadi: π ππΈ π(π) log = log π π»πΈ π(π») log π ππΈ π π = log + π π»πΈ π(π») n i π π€π |π π π€π |π» π log π π π€π |π π π€π |π» 4 Jika persamaan di atas menghasilkan nilai lebih besar daripada nol, nilai dari π π πΈ lebih besar daripada π π» πΈ sehingga email πΈ masuk ke dalam kategori spam. Sebaliknya, jika nilainya lebih kecil daripada nol, email πΈ masuk ke dalam kategori ham. Metode NB Graham Graham (2002) menggunakan pendekatan yang berbeda dalam mengimplementasikan naive Bayes. Jika pada metode yang telah dibahas sebelumnya digunakan estimasi nilai π π€π |π untuk mendapatkan peluang suatu email masuk ke dalam kategori spam, metode NB Graham menggunakan π π|π€π yang diestimasikan sebagai peluang suatu pesan untuk masuk dalam kategori spam jika diketahui pesan tersebut mengandung token π€π yaitu: π ππ π ππππ|π€π = ππ π ππ ππ + π ππ ππ dimana πππ dan πππ berturut-turut adalah jumlah pesan pada kelas spam dan ham yang mengandung token i, sementara ππ dan ππ berturut-turut adalah jumlah pesan yang tedapat pada kelas spam dan ham. Semakin sering suatu token muncul di kelas spam, nilai peluangnya akan semakin mendekati satu. (Crossan 2009). Graham (2002) menemukan bahwa dengan mengalikan jumlah kemunculan token-token yang ada pada ham dengan faktor dua, jumlah dari false positive dapat dikurangi. Jika suatu token hanya muncul pada kelas spam saja, token tersebut akan langsung diberikan nilai peluang 0,99 sementara jika token hanya muncul di kelas ham saja, token tersebut akan diberikan nilai peluang 0,01. Untuk token yang belum pernah muncul sebelumnya atau memiliki jumlah kemunculan lebih kecil dari lima, diberikan peluang netral 0,4. Nilai 0,4 dipilih untuk lebih mengurangi lagi tingkat false positive. Untuk menghitung peluang suatu email masuk ke dalam kelas spam, metode NB Graham hanya menggunakan lima belas token yang paling signifikan saja. Seberapa signifikan suatu token dalam menentukan hasil klasifikasi ditentukan dengan melihat selisih nilai π π|π€π token tersebut dengan nilai peluang netral 0,5. Selanjutnya, lima belas token yang paling signifikan tersebut digunakan untuk menghitung peluang suatu email masuk ke dalam kelas spam dengan persamaan: π π|π€1 , … , π€π = 15 π=1 π(π|π€π ) 15 ′ πΆ ′ π π,π» π=1 π(πΆ |π€π ) dengan S merupakan event saat email masuk ke dalam kelas spam. Pesan akan dikategorikan sebagai spam jika persamaan di atas bernilai lebih besar dari 0,9. Metode Training Sebelum dapat melakukan proses klasifikasi, spam filter perlu ditunjukkan contoh-contoh email dari masing-masing kelas. Proses ini disebut dengan training (Zdziarski 2005). Pada penelitian ini, terdapat dua macam metode training yang diujikan yaitu Train Everything (TEFT) dan Train-On-Error (TOE). 1. Train-Everything (TEFT) Pada metode TEFT seluruh email yang masuk akan di-training tanpa memperhatikan kebenaran hasil klasifikasinya. Kelebihan dari metode ini adalah dataset milik spam filter akan terus menyesuaikan nilainya sesuai dengan email yang diterimanya. Sebagai contoh, jika pengguna berlangganan mailing-list tertentu, filter akan segera mengenali token-token di dalamnya sebagai bagian dari kelas ham. Kekurangan dari metode ini adalah filter akan menjadi sangat rentan terhadap komposisi email pengguna. Sebagai contoh, jika pengguna terlalu banyak menerima email spam, metode training ini akan mengenali terlalu banyak token sebagai token spam karena kurangnya data ham. Hal ini dapat mengganggu proses klasifikasi ham yang masuk. 2. Training On Error (TOE) Pada metode TOE, email hanya akan dimasukkan ke dalam proses training jika terjadi kesalahan klasifikasi. Kelebihan metode TOE adalah proses training hanya dilakukan seperlunya sehingga menghemat resource seperti proses disk-writing yang lambat. Metode TOE juga menyimpan lebih sedikit token sehingga dapat menghemat space. Kelebihan metode training ini ternyata juga menjadi kelemahannya. TOE hanya akan melakukan proses training jika menemukan 5 kesalahan dalam proses klasifikasi. Hal ini menyebabkan TOE cenderung lambat dalam mengenali token-token baru saat terjadi perubahan kebiasaan penerimaan email pengguna. 3. Metode Training Lainnya Selain TOE dan TEFT, masih ada dua metode training lagi yang dapat digunakan dalam sistem spam filter. Metode tersebut adalah Training Until Mature (TUM) dan Training Until No Error (TUNE). Pada metode TUM, proses training untuk token tertentu tidak akan diteruskan lagi saat filter sudah merasa βcukup mengenalβ token tertentu. TUM hanya akan melakukan proses training saat menemukan kesalahan. Pada metode TUNE, proses training dilakukan beberapa kali dalam bentuk training-loop sampai tidak ditemukan error atau akurasi tidak dapat ditingkatkan lagi. Yerazunis (2004) menemukan bahwa metode training TUNE hanya sedikit lebih baik dibandingkan dengan TOE meskipun proses training yang dilakukan oleh TUNE jauh lebih lama. METODE PENELITIAN Penelitian ini terdiri atas empat tahap yaitu pengumpulan data, pengujian metode training, pengujian metode klasifikasi dan analisis kesalahan klasifikasi. Untuk metode training, terdapat dua macam metode yang diuji yaitu TEFT (Training Everything) dan TOE (Training On Error). Masing-masing metode training diduga memiliki kinerja yang berbeda sehingga dilakukan pengujian untuk menentukan metode training mana yang memiliki kinerja yang lebih baik. Selanjutnya dilakukan pengujian terhadap dua model NB yaitu Bayes Multinomial dengan atribut boolean dan Metode Bayes Graham. Analisis juga dilakukan terhadap faktor-faktor yang menyebabkan terjadinya kesalahan klasifikasi. Bahasa pemrograman yang digunakan adalah PHP meskipun penggunaan bahasa pemrograman lain seperti C diduga bisa meningkatkan performance sistem secara signifikan. Pengumpulan Data Tahap penelitian yang pertama adalah tahap pengumpulan data. Data yang digunakan sebagai data uji adalah korpus email dalam format aslinya yaitu email yang masih memiliki bagian header dan body. Data ini berisi campuran pesan yang sudah diberi dua macal label yaitu βham‘ dan βspam‘ sesuai dengan kelasnya. Proses pemberian kelas tersebut dilakukan secara manual. Pengujian Metode Training Terdapat dua jenis metode training yang diuji dalam penelitian ini yaitu metode Training Everything (TEFT) dan metode Training on Error (TOE). Pengujian dilakukan dengan cara mengukur akurasi kedua metode tersebut saat dipasangkan dengan metode Graham. Pengujian Metode Klasifikasi Pada penelitian ini, NB multinomial yang diujikan adalah NB multinomial yang menggunakan atribut boolean sehingga istilah NB multinomial selanjutnya akan merujuk pada NB multinomial yang menggunakan atribut boolean. Untuk membandingkan kinerja dari versiversi NB yang diujikan, digunakan metode pengujian yang sama dengan metode evaluasi pada penelitian Yerazunis (2004) yaitu: 1. Disediakan data uji berupa korpus email yang sudah diklasifikasikan ke dalam dua kelas yaitu βham‘ dan βspam‘. Setiap email diberikan label sesuai dengan kelasnya. Data yang sudah diberi label tersebut kemudian digabungkan. 2. Data uji kemudian diacak sebanyak sepuluh kali. Setiap acakan dicatat urutan pembacaannya sehingga seluruh metode yang diuji dievaluasi menggunakan acakan dan urutan pembacaan data yang sama. 3. Untuk setiap acakan, diambil sebanyak N data yang nantinya digunakan sebagai data testing akhir. 4. Proses pengujian dilakukan sebanyak jumlah acakan yaitu sepuluh kali pengujian. 5. Langkah-langkah di atas menghasilkan data awal hasil pengujian berupa jumlah kesalahan klasifikasi dari 10 kali N data testing. Data awal hasil pengujian diolah lagi untuk mendapatkan tingkat akurasi hasil prediksi berupa jumlah true positive, true 6