Pengukuran kinerja spam filter menggunakan metode naive bayes

advertisement
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
Download