Rabu, 17 Mei 2017

Mengukur Perbandingan Akurasi Algoritma J48 dan Random Forest Untuk Klasifikasi "Car Evaluation Dataset"

Haloo semua, sudah lama saya tidak post, sudah sekitar 5 tahun yah hehe. Ini kebetulan karena sedang ada tugas besar untuk mata kuliah Data Mining dari kampus saya yaitu Telkom University :D.

Udah pada tau belum nih mengenai data mining ??


Kalo udah tau, boleh juga dong ilmunya di share :D. Btw data mining itu sendiri menurut wikipedia bahasa Indonesia adalah ekstraksi pola yang menarik dari data dalam jumlah besar. Nah pemroresan data yang banyak tersebut dibutuhkan program untuk menganalisanya. Bisa pakai bahasa pemrograman ataupun program yang sudah jadi seperti weka.


Nah tugas yang akan saya kerjakan ini untuk mengukur perbandingan akurasi algoritma untuk data evaluasi mobil. Algoritma yang akan dibandingkan yaitu J48 dan Random Forest.

Tools yang dibutuhkan untuk pengerjaan ini adalah :

  1. Weka Explorer
  2. Microsoft Excel
  3. Browser untuk pengambilan dataset

Gambar 1.1. Tool Weka Explorer


Nah gambar diatas merupakan penampakan dari Weka Explorer yang akan digunakan untuk menganalisis data. Dalam Weka Explorer sudah terdapat beberapa algoritma yang siap olah untuk mengolah data :D.

Sebelum masuk ke pengolahan, download dulu datasetnya di :
https://archive.ics.uci.edu/ml/datasets/Car+Evaluation

Setelah masuk ke url tersebut, lalu click data folder, lalu pilih car.data. Nanti akan ada tampilan seperti di bawah ini :



Gambar 1.2. Dataset Car Evaluation dari repository uci


Data tersebut lalu di copy paste ke excel, lalu tambahkan nama atribut di kolom paling atas. Jumlah nama atribut harus sesuai dengan jumlah atribut di data. Dalam data terdapat 7 atribut dimana salah satunya menjadi class label yang akan diuji akurasinya. Jangan lupa untuk mengganti bentuk string dalam data menjadi bentuk integer. Hal ini dikarenakan weka tidak bisa membaca string dan integer sekaligus.

Atribut untuk dataset (dan nilainya) ini adalah :

  1. buying (vhigh,high,med,low) --> (4,3,2,1)
  2. maint (vhigh,high,med,low) --> (4,3,2,1)
  3. doors (2,3,4,5,5more) --> (2,3,4,5,6)
  4. persons (2,4,more)  --> (2,4,5)
  5. lug_boot (small,med,big) --> (1,2,3)
  6. safety (low,med,high) --> (1,2,3)
  7. class_label (unacc,acc,good,vgood) 
Gambar 1.3. Dataset yang sudah dirubah nilai atributnya di dalam excel

Data yang sudah di excel dan dirubah nilai atributnya lalu save as [namafile].csv

Sebelum masuk pengolahan lebih baik kita mengetahui terlebih dahulu algoritma yang akan kita pakai 😅.


Algoritma J48


Algoritma ini merupakan sebuah implementasi Java open source dari algoritma C4.5 dalam weka. Algoritma C4.5 dijelaskan di wikipedia sebagai algoritma yang digunakan untuk membangkitkan sebuah decision tree yang dikembangkan oleh Ross Quinlan. Decision tree yang dibangkitkan oleh C4.5 bisa digunakan untuk klasifikasi. Oleh karenanya algoritma ini biasanya dianggap sebagai sebuah statistical classifier. Pseudocode untuk algoritma C4.5 dan J48 sebagai pengembangannya adalah sebagai berikut :

  1. Cek untuk setiap yang diatas kasus dasar.
  2. Untuk setiap atribut a, cari rasio information gain yang dinormalisasi dari pembagian a.
  3. Biarkan a_best menjadi atribut dengan normalisasi information gain yang paling besar.
  4. Buat sebuah decision node yang membagi a_best.
  5. Ulangi pada sublists yang diperoleh dari membagi pada a_best, dan tambahkan node - node tersebut sebagai anak dari node.



Algoritma Random Forests


Random Forests merujuk pada wikipedia, merupakan sebuah algoritma untuk klasifikasi, regresi, dan task lainnya, yang bekerja dengan membangun sebuah decision tree yang beragam pada waktu training dan mengoutputkan class (klasifikasi) atau prediksi mean (regresi) dari pohon individu.


Langkah - Langkah Pengerjaan Tugas Besar

  1. Siapkan dataset yang sudah disiapkan sebelumnya beserta nilai - nilai atribut yang sudah disesuaikan.
  2. Buka tools weka explorer. Jika belum pernah install harap install terlebih dahulu :D.
  3. Klik open file lalu pilih dataset yang berbentuk .csv tadi.
  4. Tunggu hingga muncul atribut yang tervisualisasi.
  5. Jika sudah muncul semua atributnya, lalu masuk tab Classify.
  6. Pada tab Classify bagian classifier pilih algoritma yang akan digunakan (J48 atau Random Forests).
  7. klik "use training set".
  8. Lalu klik start.
  9. Tunggu beberapa saat hingga muncul tampilan di layer putihnya.
  10. Lihat nilai akurasi dari kedua training set, lalu lihat akurasi mana yang paling akurat.

Hasil Pengujian Algoritma 
Gambar 1.4. Hasil dari algoritma Random Forest terhadap dataset
Gambar 1.5. Hasil dari algoritma J48 terhadap dataset

Kesimpulan

Dari percobaan yang telah dilakukan, didapat bahwa algoritma Random Forest memiliki akurasi 100%, dibanding algoritma J48 sebesar 99.4213%. Sehingga untuk mendapatkan hasil yang memuaskan dalam pengklasifikasian, bisa mendapatkan algoritma Random Forest

Refrensi
  1. en.wikipedia,org/wiki/Random_forest
  2. en.wikipedia.org/wiki/C4.5_algorithm
  3. Awwali, Jamilu, Anahita Ghazvini, dan Azuraliza Abu Bakar. 2014. "Performance Comparison of Data Mining Algorithms: A Case Study on Car Evaluation Dataset
  4. " dalam International Journal of Computer Trends and Technology (IJCTT) volume 13 nomor 2.