PENERAPAN METODE KLASIFIKASI ALGORITMA NAIVE BAYES UNTUK MENDETEKSI
WEBSITE PHISHING
Metode
penelitian yang digunakan untuk klasifikasi data website phishing menggunakan metode
data mining. Data Mining adalah proses penemuan keteraturan pola, dan hubungan
dalam set data berukuran besar. Data yang dapat dianalisa dengan data mining
bisa dari database, data warehouse, web, repositori informasi atau data yang
dapat dialirkan ke dalam sistem secara dinamis. Hasil dari pengolahan data
dengan metode data mining ini dapat digunakan untuk mengambil keputusan di masa
depan. Data mining ini juga dikenal dengan istilah pattern recognition.
Klasifikasi
Klasifikasi adalah sebuah metode dari data
mining yang digunakan untuk memprediksi kategori atau class dari suatu data
instances (data sampel) berdasarkan sekumpulan atribut-atribut dari data tersebut.
Atribut yang digunakan mungkin bersifat categorical (misalnya golongan darah :
“A”, “B”, “O”, dan seterusnya), ordinal (misalnya urutan : kecil, sedang, dan
besar), integer-valued (misalnya banyaknya suatu kata pada suatu paragraf),
atau real-valued (misalnya suhu). Kebanyakan algoritma yang menggunakan metode
klasifikasi ini hanya menggunakan data yang bersifat diskrit dan untuk data
yang bersifat kontinu (realvalued dan integer-valued) maka data tersebut harus
dijadikan diskrit dengan cara memberikan threshold (misal lebih kecil dari 5
atau lebih besar dari 10) supaya data dapat terbagi menjadi grup-grup. Sebagai
contoh dari metode klasifikasi adalah menentukan e-mail yang masuk termasuk
kategori spam atau bukan spam atau menentukan diagnosis dari pasien berdasarkan
umur, jenis kelamin, tekanan darah, dan sebagainya.
Algoritma yang mengimplementasikan metode
klasifikasi disebut dengan classifier. Istilah “classifier” ini juga terkadang
direferensikan sebagai fungsi matematika yang digunakan untuk memetakan input
data dengan kategori-kategori tertentu. Cara kerja dari model klasifikasi
adalah sebuah proses 2 langkah. Langkah pertama adalah learning, pada langkah
ini classifier dibangun berdasarkan sekumpulan kelas atau kategori yang sudah
ditentukan dari data. Langkah ini disebut learning step atau training step,
dimana sebuah algoritma klasifikasi membangun classifier dengan menganalisis
atau belajar dari sebuah training set. Sebuah tuple, yang direpresentasikan
dengan n-dimensi attribute vector, yang menggambarkan n sebagai buah pengukuran
yang dibuat pada tuple pada n attribute. Setiap tuple diasumsikan termasuk
dalam kelas atau kategori yang sudah ditentukan oleh attribute yang disebut
dengan class label attribute. Class label attribute mempunyai nilai diskrit,
tidak berurutan dan tiap nilai berfungsi sebagai kelas atau kategori. Langkah
pertama dari klasifikasi ini juga sering disebut sebagai learning of mapping
atau function, suatu fungsi pemetaan yang bisa memprediksi class label y pada
suatu tuple x. Pemetaan ini direpresentasikan dalam bentuk classification
rules, decision tree atau formula matematika. Dari rules atau tree tersebut
dapat digunakan untuk mengklasifikasi tuple baru.
Langkah kedua adalah classification. Pada
langkah ini, classifier yang sudah dibangun akan digunakan untuk
mengklasifikasi data. Dimana akurasi dari prediksi classifier tersebut akan
diperkirakan. Jika menggunakan training set untuk mengukur akurasi dari
classifier, maka estimasi akan optimal karena data yang digunakan untuk
membentuk classifier adalah training set juga. Oleh karena itu, digunakan test
set, yaitu sekumpulan tuple beserta class labelnya yang dipilih secara acak
dari dataset. Test set bersifat independen dari training set dikarenakan test
set tidak digunakan untuk membangun classifier. Akurasi dari classifier yang
diestimasikan dengan test set adalah persentase dari tuple test set yang
diklasifikasi secara benar oleh classifier. Class label dari setiap tuple dari
test set dibandingkan dengan prediksi class label dari classifier. Jika akurasi
dari classifier dapat diterima, maka classifer dapat digunakan untuk
mengklasifikasi data baru.
Klasifikasi termasuk supervised learning
karena class label dari setiap tuple sudah disediakan. Berbeda dengan
unsupervised learning di mana class label dari setiap tuple tidak diketahui.
Metode yang menggunakan unsupervised learning adalah clustering. Terdapat
beberapa algoritma data mining yang menggunakan metode klasifikasi antara lain
seperti SMO (Sequential Minimal Optimization), BVM (Ball-based Support Vector
Machine), Logistic Regression, Naive Bayes, Multilayer Perceptron dan beberapa
algoritma lainnya.
Pada penelitian yang dilakukan oleh Cagatay
Catal dan kawan-kawan dibuat sebuah model klasifikasi yang dapat digunakan
untuk mengklasifikasikan review pelanggan pada blog, forum dan jejaring sosial
yang ada di Turki yang mana dikelompokkan berdasarkan sentimen (review negatif,
positif dan netral). Pada penelitian tersebut digunakan 3 algoritma antara lain
Bagging, Naive Bayes dan SVM (Support Vector Machine) untuk melakukan
klasifikasi sentimen. Dimana hasil klasifikasi pada ketiga algoritma tersebut
akan dikombinasikan menggunakan algoritma Voting untuk mendapatkan kinerja yang
lebih baik.
Sejatinya data mining klasifikasi
memang bisa digunakan dalam berbagai macam studi kasus termasuk studi kasus di
dalam bidang kesehatan. Contohnya seperti penelitian yang dilakukan oleh
Kyungro Lee dan kawan-kawan. dimana pada penelitian tersebut dibuat sebuah model
klasifikasi untuk memprediksi activator pada CAR (Constitutive Androstane
Receptor) dan menawarkan informasi struktural mengenai interaksi ligan/protein
di dalam hati. CAR adalah organ di dalam hati yang berguna untuk mengatur
metabolisme dan transportasi obat. Di dalam penelitian ini, peneliti tersebut
membangun model klasifikasi menggunakan 2 algoritma yaitu SVM dan NN (Neural
Network).
Naive Bayes
Menurut (Sutina, W.,
2010), Naive Bayes adalah salah satu
algoritma pembelajaran induktif yang paling efektif dan efisien untuk machine
learning dan data mining. Performa Naive Bayes sangat kompetitif dalam proses
klasifikasi walaupun menggunakan asumsi keindependenan atribut (tidak ada
kaitan antar atribut). Asumsi keindependenan atribut ini pada data sebenarnya
jarang terjadi, namun walaupun asumsi keindependenan atribut tersebut
dilanggar, performa dari pengklasifikasian Naive Bayes masih cukup tinggi, hal
ini dibuktikan pada berbagai penelitian empiris lainnya.
Naive Bayes merupakan pengklasifikasian dengan
metode probabilitas dan statistik yang dikemukakan oleh ilmuwan Inggris Thomas
Bayes, yaitu memprediksi peluang di masa depan berdasarkan pengalaman di masa
sebelumnya sehingga dikenal sebagai teorema Bayes. Teorema tersebut
dikombinasikan dengan ”naive” dimana diasumsikan kondisi antar atribut saling
bebas. Pada sebuah dataset, setiap baris/dokumen I diasumsikan sebagai vector
dari nilai-nilai atribut <x1,x2,…,x3> dimana tiap nilai-nilai menjadi
peninjauan atribut Xi (iЄ[1,n])). Setiap baris mempunyai label kelas ci Є
{c1,c2,…,ck} sebagai nilai variabel kelas C, sehingga untuk melakukan
klasifikasi dapat dihitung nilai probabilitas p(C=ci|X=xj), dikarenakan pada
Naive Bayes diasumsikan setiap atribut saling bebas, maka persamaan yang
didapat adalah sebagai berikut :
- Peluang p(C=ci|X=xj) menunjukkan
peluang bersyarat atribut Xi dengan nilai xi diberikan kelas c, dimana dalam
Naive Bayes, kelas C bertipe kualitatif sedangkan atribut Xi dapat bertipe
kualitatif ataupun kuantitatif.
- Ketika atribut Xi bertipe
kuantitatif maka peluang p(X=xi|C=cj) akan sangat kecil sehingga membuat
persamaan peluang tersebut tidak dapat diandalkan untuk permasalahan atribut
bertipe kuantitatif. Maka untuk menangani atribut kuantitatif, ada beberapa
pendekatan yang dapat digunakan seperti distribusi normal (Gaussian) ataupun
Kernel Density Estimation (KDE).
Selain dua pendekatan distribusi tersebut, ada
mekanisme lain untuk menangani atribut kuantitatif (numerik) yaitu
diskritisasi. Proses diskritisasi sendiri terjadi saat proses persiapan data
atau saat data preprocessing, dimana atribut numerik X diubah menjadi atribut
nominal X*. Performansi klasifikasi Naive Bayes akan lebih baik ketika atribut
numerik didiskritisasi daripada diasumsikan dengan pendekatan distribusi seperti
di atas. Nilai-nilai numerik akan dipetakan ke nilai nominal dalam bentuk
interval yang tetap memperhatikan kelas dari tiap-tiap nilai numerik yang
dipetakan, sehingga penggambaran perhitungan Naive Bayes-nya menjadi seperti
berikut ini :
Keterangan :
- p(I=ii|C=cj) : peluang interval i ke
j untuk kelas ci
- p(I=i j ) : peluang sebuah interval
ke j pada semua interval yang terbentuk
- p(C=ci|I=ij) : peluang kelas ci pada
interval i ke j
- p( C = c i ) : peluang sebuah kelas
ke i untuk semua kelas yang ada di dataset
Sedangkan di bawah ini adalah langkah-langkah
yang ada pada algoritma Naive Bayes :
- Menghitung jumlah class.
- Menghitung jumlah kasus yang sama
dengan class yang sama.
- Kalikan semua hasil variabel class
satu dengan yang lainnya.
- Bandingkan hasil masing-masing
class.
Selain itu algoritma Naive Bayes memiliki
kelebihan yaitu mudah diimplementasikan dan mampu memberikan hasil yang baik
untuk banyak kasus, sedangkan kelemahannya adalah harus mengasumsi bahwa antar
fitur tidak terkait (independen). Dalam kenyataannya, keterkaitan itu ada dan
keterkaitan tersebut tidak dapat dimodelkan oleh algoritma Naive Bayes.
Dalam
tahapan ini peneliti mengumpulkan beberapa data yang akan diolah dengan sumber
data dari UCI Machine Learning. Dengan menggunakan algoritma naïve bayes data
tersebut akan diolah untuk mencari hasil dengan tingkat akurasi yang terbaik.
Algoritma Naïve Bayes Classifier ini nantinya akan mengidentifikasi sebuah
alamat website yang dicurigai sebagai alamat website phising. Dengan begitu
dari sisi pengguna jaringan intenet akan mengetahui bahwa alamat website
tersebut aman atau tidak.
Dengan
menggunakan dataset yang mempunyai jumlah atribut sebanyak 10 atribut. Tabel
kategorikal atribut dapat dilihat dalam tabel di bawah ini :
Perhitungan Manual Algoritma Naïve Bayes
Berikut data yang akan
digunakan dalam penelitian ini :
Total
data berjumlah 1353, yang penulis tampilkan hanya 40 data sebagai contoh saja.
Untuk perhitungan tetap menggunakan 1353 data. Pada perhitungan manual, penulis
hanya menggunakan data dengan id pertama (highlight berwarna kuning) sebagai
acuan valid atau tidak nya sesuai dengan dataset yang penulis gunakan.
1.2.1 Data
Nomor Pertama
·
P(Ci)
- P(Result =
“Legitimate”) = 548/1353 = 0.41
- P(Result =
“Suspicious”) = 103/1353 = 0.08
- P(Result = “Phishy”) = 702/1353
= 0.52
P(Ci) adalah atribut kelas (atribut yang
akan diklasifikasi) dari table diatas.
Angka 548 didapat dari jumlah
atribut kelas yang bernilai “Legitimate”
Angka 103 didapat dari jumlah
atribut kelas yang bernilai “Suspicious”
Angka 702 didapat dari jumlah
atribut kelas yang bernilai “Phishy”
Angka 1353 didapat dari
jumlah banyaknya total data
|
·
P(X | Ci)
- P(SFH =
“Legitimate” | Result = “Legitimate” = 83/548 = 0.15
- P(SFH =
“Legitimate” | Result = “Suspicious = 43/103 = 0.42
- P(SFH =
“Legitimate” | Result = “Phishy” = 641/548 = 0.91
Angka 83 didapat dari jumlah
atribut “SFH” yang bernilai “Legitimate” dan atribut
kelas “Result” yang bernilai “Legitimate”.
Angka 43 didapat dari jumlah
atribut “SFH” yang bernilai “Legitimate” dan atribut
kelas “Result” yang bernilai “Suspicious”.
Angka 641 didapat dari jumlah
atribut “SFH” yang bernilai “Legitimate” dan atribut
kelas “Result” yang bernilai “Phishy”.
|
- P(PopUpWindow = “Phishy”
| Result = “Legitimate” = 362/548 = 0.66
- P(PopUpWindow = ”Phishy”
| Result = “Suspicious = 48/103 = 0.47
- P(PopUpWindow = “Phishy”
| Result = “Phishy” = 122/702 = 0.17
- P(SSLFinal_State =
“Legitimate” | Result = “Legitimate” = 131/548 = 0.24
- P(SSLFinal_State =
“Legitimate” | Result = “Suspicious = 62/103 = 0.60
- P(SSLFinal_State =
“Legitimate” | Result = “Phishy” = 558/702 = 0.79
- P(Request_URL =
“Phishy” | Result = “Legitimate” = 284/548 = 0.52
- P(Request_URL =
“Phishy” | Result = “Suspicious = 84/103 = 0.82
- P(Request_URL =
“Phishy” | Result = “Phishy” = 249/702 = 0.35
- P(URL_of_Anchor =
“Phishy” | Result = “Legitimate” = 335/548 = 0.61
- P(URL_of_Anchor =
“Phishy” | Result = “Suspicious = 58/103 = 0.56
- P(URL_of_Anchor =
“Phishy” | Result = “Phishy” = 217/702 = 0.31
- P(Web_traffic =
“Legitimate” | Result = “Legitimate” = 234/548 = 0.43
- P(Web_traffic =
“Legitimate” | Result = “Suspicious = 32/103 = 0.31
- P(Web_traffic =
“Legitimate” | Result = “Phishy” = 174/702 = 0.25
- P(URL_Length =
“Legitimate” | Result = “Legitimate” = 89/548 = 0.16
- P(URL_Length =
“Legitimate” | Result = “Suspicious = 57/103 = 0.55
- P(URL_Length =
“Legitimate” | Result = “Phishy” = 213/702 = 0.30
- P(Age_of_Domain =
“Legitimate” | Result = “Legitimate” = 255/548 = 0.47
- P(Age_of_Domain =
“Legitimate” | Result = “Suspicious = 75/103 = 0.73
- P(Age_of_Domain =
“Legitimate” | Result = “Phishy” = 495/702 = 0.71
- P(Having_IP = “Suspicious”
| Result = “Legitimate” = 498/548 = 0.91
- P(Having_IP = “Suspicious”
| Result = “Suspicious = 90/103 = 0.87
- P(Having_IP = “Suspicious”
| Result = “Phishy” = 610/702 = 0.87
- P(X | Result
= “Legitimate” = 0.15 x 0.66 x 0.24 x 0.52 x 0.61 x 0.43 x 0.16 x 0.47 x 0.91 =
0.000222214
- P(X | Result
= “Suspicious = 0.42 x 0.47 x 0.60 x 0.82 x 0.56 x 0.31 x 0.55 x 0.73 x
0.87 = 0.005883046
- P(X | Result
= “Phishy” = 0.91 x 0.17 x 0.79 x 0.35 x 0.31 x 0.25 x 0.30 x 0.71 x 0.87 =
0.000637296
·
P(X | Ci) x P(Ci)
- P(X | Result
= “Legitimate”) x P(Result = ”Legitimate”) = 0.000222214 x 0.41 = 9.00024E-05
- P(X | Result
= “Suspicious”) x P(Result = ”Suspicious”) = 0.005883046 x 0.08 = 0.000447859
- P(X | Result
= “Phishy”) x P(Result =”Phishy”) = 0.000637296 x 0.52 = 0.000330659
- KESIMPULAN
= Legitimate (TIDAK VALID)
Karna hasil
prediksi perhitungan secara manual tidak sama dengan Result pada Data Set.
Hasil Perhitungan WEKA
Dari
perhitungan detail akurasi tersebut akan menemukan hasil dengan tingkat akurasi
yang bisa dibilang akurat karena akan memperoleh nilai sebesar 84,84% dan nilai
toleransi error sebesar 15,15%
KESIMPULAN
Algoritma Naïve bayes sangat tepat
untuk memperhitungkan klasifikasi website phising. Dari dataset yang telah di
dapat ditarik kesimpulan dengan hasil sebagai berikut, Hasil dari pengujian algoritma
Naive Bayes diperoleh nilai rata-rata akurasi sebesar 84.84% dengan TP Rate
yang diperoleh sebesar 0.840%, FP Rate sebesar 0.116%, Precision sebesar 0.829%,
Recall sebesar 0.848% dan Fmeasure sebesar 0.834%. Dengan demikian hasil
penerapan algoritma naive bayes tersebut untuk melindungi data dari website
phising dikatakan sangat baik, dan penggunaan algoritma tersebut sudah tepat
jika digunakan untuk pencegahan pencurian data dari sebuah ancaman website
phising.
Tidak ada komentar:
Posting Komentar