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 cleaning
SVM Learn
SVM Classify SVM Classify
Dataset
Web
Dataset Positif
Dataset Negatif
Testing Set (+)
Training Set (+)
Training Set (-)
Testing Set (-)
Kamus (+)
Fitur
Model
Hasil
Kamus (-)
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.*?>(.*?)<\/title>/){ my $title = $1; $title = clean_str($title); print "<title>$title\t$fileout</title>\n"; print OUT "<title>$title</title>\n"; } #Mengambil isi conten Dokumen $extractor->extract($html); my $content = $extractor->as_text; $content = clean_str($content); print OUT "<content>$content</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 masing-
masing 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 masing-
masing 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.