DATA MINING LANJUT
Langkah Kerja Klasifikasi Data Otomotif Menggunakan SVM Light Proyek Disusun Oleh: FITRA RIYANDA 1208107010079
JURUSAN INFORMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SYIAH KUALA DARUSSALAM, BANDA ACEH JUNI, 2013
Langkah Kerja Dalam prosedur penelitian dari tahapan melakukan klasifkasi dataset menggunakan SMV Light tampak pada chart berikut:
crawling Web
cleaning Dataset
Dataset Positif
Testing Set (+)
Dataset Negatif
Training Set (+)
Training Set (-)
Kamus (+)
Kamus (-)
Testing Set (-)
Fitur SVM Learn SVM Classify
SVM Classify
Model
Hasil
3.1 Pengambilan Data Sample Pengambilan data sample masing-masing data untuk melakukan fitur baik dataset positif maupun dataset negatif dilakukan dengan mengcrawling data dokumen menggunakan Swish-E. Dari metode crawling data menggunakan Swish-e perlu dilakukan beberapa tahapan seperti melakukan installasi pada linux dan kemudian membangun beberapa program untuk melakukan eksekusi perintah, didalam program ini dapat diberikan berupa alamat url yang dituju juga memfilter jenis data yang ingin di crawled. Dari program itu penulis memfilter beberapa file umum yang berhubungan dengan html web seperti gambar dan sebagainya yang termuat dalam web tersebut. Setelah filtrasi dilakukan, kemudian ditentukan berapa banyak file yang ingin dicraw, misalkan kita memberikan batasan sebanyak 1000 file. Maka proses ini aku dilakukan dengan mengcrawling 1000 file apabila dalam direktori dari web tersebut memiliki file lebih dari 1000 file. Tetapi apabila lebih sedikit dari 1000 file, maka data akan tercrawled sebanyak yang di miliki dalam direktori tersebut. Setelah program selesai dibuat, maka proses crawling dimulai dengan menggunakan script
swish-e -S prog -c crawling_web.conf
dan kemudian secara
otomatis dari program crawling_web.conf yang memberikan pengalamatan kepada file spider.pl yang terdapat pada direktori Swish-e. Proses crawling dengan menggunakan metode ini membutuhkan waktu yang sangat lama tergantung banyaknya permintaan crawling data maupun kecepatan koneksi. Setelah dilakukan crawling data dari berbagai situs yang membahas topik untuk data positif dan data negatif masing-masing sebanyak 12 ribu untuk data dokumen positif dan 10 ribu untuk data dokumen kemudian dipisahkan masing-masing direktori positif dan direktori negatif. 3.2 Membersihkan Data Dokumen Setelah seluruh file yang diinginkan selesai di crawling, tahap selajutnya yaitu melakukan cleaning data menggunakan script extraccontent.pl. Data crawling yang telah diletakan dalam masing-masing direktori positif dan negatif kemudian
dijalankan script extrac content. Berikut potongan program untuk melakukan proses cleaning dokumen: #Mengambil Judul Dokumen if( $html =~ /
(.*?)<\/title>/){ my $title = $1; $title = clean_str($title); print "$title\t$fileout\n"; print OUT "$title\n"; } #Mengambil isi conten Dokumen $extractor->extract($html); my $content = $extractor->as_text; $content = clean_str($content); print OUT "$content\n"; close OUT;
Data yang telah di-clean dalam program tersebut dimasukkan dalam sebuah folder yang berisikan semua file yang telah dibersihkan untuk masing-masing data cleaned dari dataset positif dan negatif. Dari seluruh script html yang terdapat dalam file tersebut hanya mengambil title dan isi dari content saja. 3.3 Membagi Dataset Menjadi Data Training dan Testing Dari hasil cleaned untuk masing-masing dataset positif dan negatif tersebut, barulah dipisahkan menjadi data trainingset sebanyak 75% ( ± 10 ribu file) dan selebihnya dimasukkan ke data testingset sebanyak 25% dari ± 12 ribu file dataset positif dan juga untuk dataset negatif sebanyak ± 10 ribu file dipisahkan menjadi data trainingset sebanyak 75% ( ± 7500 file) dan selebihnya dimasukkan ke data testingset sebanyak 25%. 3.4 Membangun Kamus Bigrams dan Threshold Setelah seluruh data selesai di bersihkan dan dipisahkan menjadi data trainingset dan data testingset untuk masing-masing dataset positif dan negatif, barulah dilakukan proses penggabungan seluruh file data trainingset untuk masingmasing dataset positif dan negatif menjadi kedalam satu file. Apabila seluruh file yang telah dibersihkan tetapi tidak dilakukan penggabungan terhadap keseluruhan, maka dalam proses pembangunan kamus 1 kata, 2 kata dan 3 kata tiap masing-masing
dataset akan tersimpan dan tertimpa oleh data file yang terakhir. Oleh karena itu seluruh data yang telah dibersihkan kemudian digabungkan kedalam satu file untuk masing-masing data training positif dan negatif. Setelah dilakukan penggabungan masing-masing dataset, barulah dilakukan proses pembangunan kamus untuk data trainingset positif dan negatif. Dalam proses ini dibangun kamus yang sering muncul dengan frekuensi tertentu dan tidak termasuk stopword yang merupakan kata-kata pendukung yang tidak dapat dipakai untuk membangun kamus. Stopword ini berfungsi memfilter kata-kata yang sering muncul dalam conten dan tidak ikut dimasukkan kedalam kamus menggunakan program perl one-grams.pl, two-grams.pl dan tree-grams.pl. Dengan menggunakan paket Lingua∷En∷Bigram dapat dilakukan perintah
tersebut
untuk
melakukan
proses
pembangunan
kamus
dan
membandingkannya dengan kata-kata yang terdapat dalam stopword.txt. Apabila kata-kata yang didapat dan terdapat juga dalam stopword.txt, maka kata-kata tersebut tidak akan diambil dan tidak dimasukkan kedalam sebuah penampung dan tertulis dalam sebuah file out tersebut. Langkah tersebut dilakukan terhadap kedua dataset yaitu data trainingset positif dan data trainingset negatif. Hasil Dari Kamus Training Set Berikut hasil dari 1 kata :
Berikut hasil dari 2 kata :
Berikut hasil dari 3 kata :
Setelah pembangunan kamus yang memiliki jumlah banyak kata yang muncul
dari masing-masing kelompok kamus bigrams, kemudian dilakukan
perhitungan nilai frekuensi tiap-tiap kamus dimana frekuensi didapatkan dari jumlah kata dibagi dengan jumlah kata yang paling banyak muncul. Dari ini dapat diperoleh data dengan nilai antara 0 sampai 1 untuk tiap frekuensinya. Dari nilai frekkuensi masing-masing kamus bigrams positif dan negatif dilakukan normalisasi dengan membandingkan dan melakukan eliminasi observasi untuk rasio. Banyaknya rasio
dengan threshold dilakukan dengan dua jenis sebagai perbandingan yaitu sebesar 45% dan 50%. Untuk melakukan hal tersebut, data trainingset kamus negatif dibutuhkan sebagai pembanding untuk data trainingset pada kamus positif. Untuk melakukan normalisasi, tahapan untuk diteliti menggunakan dua metode yaitu melakukan eliminasi observasi langsung dari kelompok bigrams (satu kata, dua kata dan tiga kata) untuk masing-masing kamus positif dan kamus negatif. Metode kedua yaitu dengan melakukan penggabungan kamus masing-masing kelompok bigrams (satu kata, dua kata dan tiga kata) sehingga terbentuk masingmasing kamus positif dan negatif yang sudah digabungkan untuk masing-masing rasio 45% dan 50%. Berikut merupakan potongan program dari proses melakukan normalisasi: foreach $key (keys %minus) { if(defined $plus{$key}){ if($plus{$key}>$minus{$key}){ $score = $minus{$key}/$plus{$key}; if($score>0.5){ delete $plus{$key}; delete $minus{$key}; } elsif($score<0.5){ delete $minus{$key}; } } elsif($$plus{$key}<$minus{$key}){ $score = $plus{$key}/$minus{$key}; if($score>0.5){ delete $plus{$key}; delete $minus{$key}; } elsif($score<0.5){ delete $plus{$key}; } } } }
Teknik dalam eliminasi observasi untuk kamus positif dan negatif dalam metode kelompok bigrams (satu kata, dua kata dan tiga kata) dengan rasio 45% dilakukan dengan cara eliminasi kata dimana antara salah satu atau kedua kelompok kamus positif dan negatif saat dibagi menghasilkan frekuensi lebih besar dari 0.45 atau 45%, maka kedua kata dari masing-masing kelompok pada kamus positif
maupun negatif akan dihapus. Dalam kasus lain, apabila salah satu frekuensi pada kata pada masing-masing kamus positif dan negatif bernilai lebih sedikit atau lebih kecil dari 0.45 atau 45%, maka salah satu yang memiliki frekuensi yang terkecil akan di eliminasi.
Dari hasil normalisasi kedua kata memiliki frekuensi yang lebih besar dari 0.45 atau 45% dari hasil bagi uji=0.005967/0.05783=0.103181, sehingga kata “uji” pada kamus positif di eliminasi.
Teknik dalam eliminasi observasi untuk kamus positif dan negatif dalam metode kelompok bigrams (satu kata, dua kata dan tiga kata) dengan rasio 50% dilakukan dengan cara eliminasi kata dimana antara salah satu atau kedua kelompok kamus positif dan negatif saat dibagi menghasilkan frekuensi lebih besar dari 0.5 atau 50%, maka kedua kata dari masing-masing kelompok pada kamus positif maupun negatif akan dihapus. Dalam kasus lain, apabila salah satu frekuensi pada kata pada masing-masing kamus positif dan negatif bernilai lebih sedikit atau lebih kecil dari 0.5 atau 50%, maka salah satu yang memiliki frekuensi yang terkecil akan di eliminasi.
Dalam kasus ini, kedua kata memiliki frekuensi yang lebih besar dari 0.5 atau 50% dari hasil bagi calon=0.005967/0.01107=0.5388869, sehingga nilai “calon” pada kedua kamus di eliminasi.
3.5 Membangun Fitur, Model dan Pengujian Untuk tahapan pembangunan fitur, diperlukan kamus akhir positif dan negatif dari masing-masing kamus yang telah dinormalisasi dan diperlukan juga data trainingset positif juga data trainingset negatif.
Setelah proses pembangunan selesai, maka dengan menggunakan SVM Learning dan dengan fitur yang telah dibangun, dapat dilakukan pembangunan model dari fitur tersebut.
Setelah model telah dibangun, tahapan selanjutnya dengan mengklasifikasi data testingset dari dataset positif dan dataset negatif dengan menggunakan SVM Classify sehingga menghasilkan output dugaan dari model yang telah dibangun.
Dari output tersebut dapat diketahui dugaan dari klasifikasi dataset tersebut, apabila bernilai ≥ 0, maka dataset dugaan bernilai positif, apabila sebaliknya maka dataset diduga bernilai negative.