Welcome to My Web!

Find Out About Me

Project Akhir Data Mining



By  Adly Ramadhan     08.51  

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.

Berikut data set yang berasal dari UCI Machine Learning Repository:



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 “Legitimatedan atribut kelas “Result” yang bernilai “Legitimate”.

Angka 43 didapat dari jumlah atribut “SFH” yang bernilai “Legitimatedan atribut kelas “Result” yang bernilai “Suspicious”.

Angka 641 didapat dari jumlah atribut “SFH” yang bernilai “Legitimatedan 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


Formulir Kontak

Nama

Email *

Pesan *

Twitter