BAB III
METODOLOGI
3.1 Hipotesis
Support Vector Machines (SVM) merupakan salah satu metode machine learning yang dapat melakukan klasifikasi data dengan sangat baik. Metode ini
bertujuan untuk mendapatkan bidang pemisah (hyperplane) terbaik yang tidak hanya memiliki prinsip Empirical Risk Minimization (ERM) yaitu meminimalkan rata-rata
error pada data pelatihan, tetapi juga memiliki generalisasi yang baik. Untuk
menjamin generalisasi ini, SVM bekerja berdasarkan prinsip Strucutural Risk
Minimization (SRM). Pemisahan data yang baik dicapai oleh hyperplane yang
memiliki margin terbesar karena pada umumnya semakin besar margin semakin rendah kesalahan generalisasi classifier (Rakse & Shukla, 2010).
Keunggulan SVM lainnya adalah dalam melakukan klasifikasi SVM tidak hanya dapat digunakan terhadap data yang bersifat linear, tetapi juga dapat digunakan pada data berdimensi tinggi atau non-linear (Rakse & Shukla, 2010).
Selain itu dalam penerapannya SVM memiliki beberapa fungsi kernel yang dapat disesuaikan dengan karakteristik data yang berbeda. Beberapa kernel tersebut adalah linear kernelfunction, polynomial kernel function, radial basis function dan
Berdasarkan paparan di atas, metode Support Vector Machines (SVM) diperkirakan dapat membagi data menjadi bentuk klasifikasi yang optimum, sehingga akan menghasilkan kinerja yang lebih baik dari metode k Nearest Neighbor (kNN) dan Naïve Bayes Classifier (NBC) dalam pengenalan email spam berbahasa Indonesia.
3.2 Desain Penelitian
Dalam pelaksanaannya, eksperimen ini dibagi ke dalam beberapa tahapan sebagai berikut:
1. Pre processing (persiapan dan pemrosesan data awal) 2. Ekstraksi ciri dan pembobotan
3. Pengenalan email 4. Analisis data
Adapun skema dari eksperimen ini secara keseluruhan digambarkan seperti berikut :
Gambar 7 Skema Eksperimen Testing Set Pre Processing Training Set Ekstraksi Ciri dan Pembobotan Analisis Data Pengenalan Email
3.3 Data dan Sumber Data
Data yang akan menjadi bahan penelitian dalah 2000 email yang bersumber dari email yahoo dan gmail. Jumlah training dan testing set masing-masing adalah 1000 email. Adapun rincian data yang digunakan dalam penelitian ini adalah sebagai berikut :
Tabel 2 Rincian Data yang Digunakan Dalam Penelitian
Email Jumlah Training set Spam 500 Ham 500 Testing set Spam 500 Ham 500 Total email 2000
Kriteria email yang disebut sebagai spam pada penelitian ini adalah sebagai berikut :
1. Email promosi yang menawarkan produk, software, e-book dan lain sebagainya yang tidak diinginkan pemilik email
2. Email dengan muatan pornografi
3. Email yang meminta pengguna untuk mengklik suatu link tertentu, tanpa ada kepentingan dari pihak pengguna atas link tersebut
4. Email yang menawarkan sesuatu yang menggiurkan seperti ajakan bisnis MLM, undian, uang kaget dan lain sebagainya
5. Email dengan muatan yang tidak sesuai dengan hukum yang berlaku seperti menawarkan join situs judi dan lain sebagainya
3.4 Pre - Processing
Pre-processing adalah pengolahan data asli sebelum diolah. Tujuan
dilakukannya pre-processing, diantaranya: - Menghilangkan noise
- Memperjelas features data - Memperkecil ukuran data
- Mengkonversi data asli agar diperoleh data yg sesuai kebutuhan
Pada penelitian ini, proses pre-processing dilakukan dengan langkah-langkah sebagai berikut :
- Menghilangkan semua tag HTML yang ada
- Menghilangkan stopwords, yaitu kata-kata yang tidak deskriptif yang dapat dibuang dalam pendekatan bag-of-words, contohnya adalah “yang”, “dan”, “di”, “dari” dan seterusnya.
- Case folding, yaitu mengubah semua huruf dalam dokumen menjadi huruf kecil. Hanya huruf ‘a’ sampai dengan ‘z’ yang diterima. Karakter selain huruf dihilangkan dan dianggap delimiter
- Melakukan word stemming, yaitu menghilangkan imbuhan pada kata sehingga didapat kata dasarnya saja.
Contoh email spam yang digunakan pada penelitian ini ditunjukkan pada gambar berikut :
Gambar 8 Email Spam Sebelum Pre-Processing
Gambar 9 Email Spam Hasil Pre-Processing
3.5 Ekstraksi Ciri dan Pembobotan
Email memiliki bagian terstruktur, diantaranya adalah sender, judul, konten,
dan attachment. Oleh karena penelitian ini adalah klasifikasi email spam berbahasa Indonesia yang berbasis konten, maka feature akan diekstrak dari bagian email berikut :
- Judul email
Judul email dapat merepresentasikan isi dari email. Selain itu, judul email biasanya mengandung kata-kata penting yang menunjukkan tema dari konten
- Konten email
Konten email merupakan bagian inti yang memuat materi penting dalam sebuah email.
Selain ekstraksi ciri, data akan melalui proses pembobotan untuk mengubah representasi data teks menjadi numerik dalam matriks. Teknik pembobotan yang digunakan adalah Tf-Idf Weighting. Metode ini digunakan karena paling baik dalam perolehan informasi (Basnur & Sensuse, 2011).
Proses ekstraksi ciri dan pembobotan pada eksperimen ini menggunakan matlab toolbox TMG GUI (Text to Term-Document Matrix Generator) berbasis
Panjang kata yang diproses diatur dengan minimal 3 huruf, sedangkan metode pembobotan yang digunakan adalah Term Frequency - Inverse Document Frequency (Tf-Idf).
Gambar 10 Pengaturan Matlab Toolbox TMG GUI untuk Ekstraksi Ciri dan Pembobotan
Proses ekstraksi ciri menghasilkan data ciri berupa kamus data (wordlist) yang tersimpan pada variable dictionary. Ciri yang dihasilkan berjumlah 3537. Berikut
adalah tampilan hasil ekstraksi ciri, sedangkan rincian kamus data disertakan pada lampiran 3.
Gambar 11 Kamus Data Hasil Ekstraksi Ciri
Proses pembobotan dengan tf-idf menghasilkan matriks A berukuran 3537 x 2000. Format matriks tersebut adalah berikut ini :
Di mana :
X11 X12 X13 X14 … X1z
X21 X22 X23 X24 … X2z
…
z = jumlah email yang diproses y = jumlah feature
Tampilan matriks A sebagai hasil dari pembobotan dengan tf-idf adalah sebagai berikut :
Gambar 12 Hasil Pembobotan dengan Tf-Idf
3.7 Pengenalan Email
Proses selanjutnya di mana merupakan proses inti dari penelitian ini adalah pengenalan email. Tahap ini dibagi dua, yaitu fase training dan fase testing. Pada fase training, metode Support Vector Machines (SVM) k-Nearest Neighbor (kNN) dan Naïve Bayes Classifier (NBC) akan mempelajari pola-pola email spam dan ham dengan menggunakan 1000 data training set.
Sebelum masuk ke proses training dan testing, data pada matriks A perlu distandarisasi terlebih dahulu dengan cara mengatur nilai mean dan menyeragamkan deviasi standarnya. Pengaturan nilai mean dilakukan dengan perintah berikut ini :
>>All=full(A); >>mAll = mean(All);
Perintah tersebut menghasilkan nilai mean yang tersimpan dalam variable mAll berupa matriks berukuran 1x2000.
Gambar 13 Matriks Nilai Mean
Sebelum menghitung deviasi standar, perlu dipastikan bahwa matriks All bertipe single atau double karena perintah std pada matlab hanya dapat memproses data dengan tipe tersebut. Standar deviasi dapat ditentukan dengan perintah berikut ini :
>>All = double (All); >>stdAll = std(All);
Variable stdAll merupakan deviasi standar yang berupa matriks berukuran 1x2000. Berikut adalah tampilannya :
Gambar 14 Matriks Standar Deviasi
Standarisasi dapat dilakukan dengan mengurangi setiap data pada matriks ‘All’ dengan meannya, kemudian membagi hasilnya dengan deviasi standar-nya. Pada matlab dapat dilakukan dengan perintah seperti berikut :
Matriks pada variable All2 adalah hasil standarisasi yang berukuran 3537x2000. Adapun tampilannya adalah sebagai berikut :
Gambar 15 Matriks hasil Standarisasi
Selanjutnya adalah proses pemisahan data. Data awal yang diekstrak adalah berjumlah 2000 email, sedangkan proses training menggunakan 1000 data sebagai
training set. 1000 data sisanya digunakan sebagai testing set. Oleh karena itu, perlu
dilakukan pemisahan data.
Training set yang digunakan diambil dari data ke-1 sampai data ke-1000.
Sedangkan testing set diambil dari data ke1001 sampai data ke-2000. Berikut adalah proses pemisahan data di mana variable “data2” yang dihasilkan merupakan data
>>b=full(All2);
>>data = b(1:end, 1:1000); >>test = b(1:end, 1001:end); >>data2 = full(data)';
>>test2 = full(test)';
Berikut adalah matriks “data2” sebagai data training yang berukuran 1000 x 3537 :
Gambar 16 Representasi Data Training Dalam Matriks
Sedangkan matriks “test2” yang merupakan data testing berukuran 1000 x 3537 adalah sebagai berikut :
Gambar 17 Representasi Data Testing Dalam Matriks
Proses training memerlukan kelas data sebagai acuan training. Pada eksperimen ini kelas data dibuat dalam variable “cat” yang merupakan matriks berukuran 1000x1. Baris ke-1 sampai baris ke-500 pada training set merupakan email
spam, sehingga bernilai 1, sedangkan baris ke-51 sampai baris ke 1000 merupakan email ham sehingga bernilai 0. Berikut adalah matriks “cat” :
Gambar 18 Kelas Data Training
Proses training dan testing untuk metode Support Vector Machines (SVM) akan diselesaikan dengan Quadratic Programming yang merupakan linear kernel. Linear kernel pada SVM memiliki prinsip kerja yang sederhana dan lebih efektif dalam hal kecepatan pemrosesan baik untuk training maupun testing dibandingkan dengan kernel non-linear (Maji, Berg, & Malik, 2008).
Pola-pola hasil pembelajaran SVM tersimpan pada “svmStructs”, sedangkan hasil proses training yang merupakan kelas prediksi tersimpan dalam variable
“classes”. Berikut adalah perintah training dan testing untuk SVM :
>>options = optimset('maxiter', 100000);
>>svmStructs=svmtrain(data2,cat,'quadprog_opts' , options); >>classes = svmclassify(svmStructs,test2);
Hasil pengenalan SVM selengkapnya disertakan dalam lampiran 4. Berikut adalah tampilan matriks “classes” pada matlab variable editor yang merupakan hasil pengenalan SVM.
Gambar 19 Kelas Prediksi SVM
Proses training dan testing untuk metode k Nearest Neighbor (kNN) diselesaikan dengan pengaturan K=1. Berikut adalah perintah untuk proses training dan testing KNN :
Hasil training kNN tersimpan pada variable “class”. Hasil selengkapnya
disertakan pada lampiran 5. Berikut adalah tampilan matriks ”class” yang merupakan kelas prediksi kNN :
Gambar 20 Kelas Prediksi kNN
Metode terakhir pada eksperimen ini adalah Naïve Bayes Classifier (NBC). Pola hasil training dengan metode ini tersimpan pada “model” sedangkan kelas prediksi haril proses testing tersimpan pada “class_predict”. Berikut adalah perintah
training dan testing dengan NBC :
>> model=NaiveBayes.fit(data2,cat); >>class_predict=model.predict(test2);
Berikut adalah tampilan matriks “class_predict” yang merupakan kelas prediksi hasil training dengan NBC pada variable editor matlab, sementara data lengkapnya disertakan pada lampiran 6.
Gambar 21 Kelas Prediksi NBC
3.8 Metode Analisis Data
Efektif adalah bisa membawa hasil atau ada efeknya. Sedangkan optimal dapat diartikan sebagai yang paling menguntungkan, ideal atau terbagus (Untara, 2013).
Untuk mengukur efektifitas kinerja Classifier, digunakan tiga proses perhitungan sebagai evaluasi, yaitu recall, precision, dan f-measure. Tiga parameter tersebut selanjutnya akan menjadi bahan perbandingan metode Support Vector
sehingga dapat disimpulkan metode mana yang paling optimal dalam mengenali
email spam maupun email ham. Untuk menghitung ketiga parameter tersebut,
diperlukan data sebagai berikut :
ns : jumlah spam nh : jumlah ham
ns→s : jumlah spam yang benar dikenali sebagai spam ns→h : jumlah spam yang dikenali sebagai ham
nh→h : jumlah ham yang benar dikenali sebagaiham nh→s : jumlah ham yang dikenali sebagai spam
1. Recall
Recall adalah rasio jumlah dokumen relevan yang ditemukan kembali dengan
total jumlah dokumen dalam kumpulan dokumen yang dianggap relevan. Pada penelitian ini penghitungan recall akan dibagi menjadi 2 yaitu recall spam dan recall
ham. Recall spam adalah presentasi spam yang benar dikenali sebagai spam
dibanding total spam sebenarnya. Sedangkan recall ham adalah presentasi ham yang benar dikenali sebagai ham dibanding total ham sebenarnya.
2. Precision
Precision mengindikasikan kualitas himpunan jawaban, tetapi tidak
memandang total jumlah dokumen yang relevan dalam kumpulan dokumen. Pada penelitian ini penghitungan precision akan dibagi menjadi 2 yaitu precision spam dan
precision ham. Precision spam adalah presentase spam yang benar dikenali sebagai spam dari seluruh dokumen yang dikenali sebagai spam. Sedangkan precision ham
adalah presentase ham yang benar dikenali sebagai ham dari seluruh dokumen yang dikenali sebagai ham.
Rumus perhitungan precision spam dan precision ham adalah sebagai berikut :
3. F-measure
F-measure adalah harmonic mean dari precision dan recall. Pada penelitian
ham. Persamaan perhitungan f-measure spam dan f-measure ham adalah sebagai berikut : 2 x x Precion 2 x x Precion
3.9 Lingkungan Penelitian
Rincian untuk lingkungan penelitian ini adalah sebagai berikut : 1. Hardware, Personal Computer dengan spesifikasi :
Hardisk 320 GB, processor Intel LGA775 Core 2 Duo 2.93 Ghz, RAM 2 GB,
Monitor dengan resoluri 1280 x 800 px, Mouse, Keyboard
2. Software :
MATLAB versi 7.8