Modul Praktikum WEKA Yudi Wibisono (e: yudi@upi.edu ); t: @yudiwbs Ilmu Komputer Universitas Pendidikan Indonesia (cs.upi.edu) Versi BETA : Oktober 2013 http://creativecommons.org/licenses/by-nc-sa/3.0/ Modul ini bebas dicopy, didistribusikan, ditransmit dan diadaptasi/dimodifikasi/diremix dengan syarat tidak untuk komersial, pembuat asal tetap dicantumkan dan hasil modifikasi dishare dengan lisensi yang sama. Pembaca modul ini diasumsikan telah mengerti dasar-dasar datamining. 1
1. Pendahuluan Weka (Waikato Environtment for Knowledge Analysis) adalah tools open source (berlisensi GPL) yang berisi kumpulan algoritma machine learning dan data preprocessing. Weka dapat digunakan mulai dari tahap preprocessing, proses, evaluasi sampai dengan visualiasi. Berbagai algoritma dapat dibandingkan untuk memilih yang terbaik untuk masalah yang akan dipecahkan. Basis weka adalah Java sehingga bersifat multiplatform dan dapat digunakan sebagai library dalam aplikasi Java. Weka menyediakan tiga interface untuk mengolah dataset. 1. Explorer: Digunakan untuk mencari algoritma yang paling cocok untuk data. Semua data diload ke memori sehingga dapat cepat diproses, tapi hanya dapat digunakan untuk data dengan jumlah terbatas. 2. Eksperimenter: Digunakan untuk mencari parameter yang cocok. Mirip dengan explorer tetapi prosesnya dapat diautomatisasi. Eksperimen ukuran besar (multi machine dengan RMI) dapat dilakukan dengan interface ini. 3. Knowledgeflow: Digunakan untuk memproses data stream. Konfigurasi proses dapat diatur dengan mudah dan dapat menangani data berukuran besar. Mendukung incremental learning. 4. Simple CLI (Command Line Interface) menggunakan command line untuk interface. 2. Instalasi Download software Weka di http://www.cs.waikato.ac.nz/ml/weka/ jika anda memiliki komputer dengan prosesor 64bit, pastikan menggunakan versi 64bit juga karena dapat menggunakan memori lebih besar sehingga dapat memproses lebih banyak data. 2
3. Explorer Explorer dapat digunakan untuk mem-praproses, association rule, klasifikasi, clustering, memiliih atribut dan visualisasi data. A. Sumber Data Weka menggunakan penyimpanan yang disebut ARFF. Basis file ARFF adalah teks dan dapat diedit dengan text editor biasa. Weka juga menyediakan fasilitas konversi dari file csv dan file excel. Data juga dapat diperoleh melalui URL dan database (melalui JDBC). Format file ARFF adalah sebagai berikut, @RELATION berisi judul data, @ATTRIBUTE menyatakan nama atribut dan jenisnya. Atribut yang didukung Weka adalah numerik, string, nominal dan tanggal. Sedangkan @DATA adalah menyatakan awal dari data. Nilai yang hilang, dinyatakan dengan?. Contoh: @RELATION rel @ATTRIBUTE atr1 NUMERIC @ATTRIBUTE atr2 STRING @ATTRIBUTE atr3 {L,P} @ATTRIBUTE atr4 DATE "yyyy-mm-dd HH:mm:ss" @DATA 5.1,"satu",L,"2001-04-03 5:1:12" 4.9,?,P,"2002-05-03 2:16:2" 4.7,"tiga",?,"2012-09-03 12:24:22" B. Praproses Weka menyebut fasilitas praproses sebagai filter. Beberapa filter yang tersedia adalah: a. Menambah atau menghilangkan atribut. b. Diskretisasi. c. Filter time series. d. Sampling. e. Penanganan nilai kosong (missing value). f. Normalisasi. 3
C. Association Rule Misalnya kita mempunyai data seperti ini, dan akan melakukan mining association rule. ID Transaksi Barang yg Dibeli 10 A, C, D 20 B, C, E 30 A, B, C, E 40 B, E Representasi file ARFF-nya adalah sebagai berikut, simpan dengan nama transaksi.arff: @RELATION transaksi @ATTRIBUTE transid NUMERIC @ATTRIBUTE itema {y,n} @ATTRIBUTE itemb {y,n} @ATTRIBUTE itemc {y,n} @ATTRIBUTE itemd {y,n} @ATTRIBUTE iteme {y,n} @DATA 10,y,?,y,y,? 20,?,y,y,?,y 30,y,y,y,?,y 40,?,y,?,?,y Kemudian jalankan WEKA, pilih menu Explorer. Klik open file, pilih transaksi.arff. Pertama kita harus menghapus atribut transid karena tidak berkaitan dengan data (gambar bawah). Pilih atribut transid, lalu klik button Remove dibagian bawah. 4
Selanjutnya pilih tab Associate (gambar bawah), secara default algoritma yang digunakan adalah apriori. Tekan start. Hasilnya akan seperti ini (dibagian output):.. Output menampilkan parameter algoritma (support, confidence) dan rule terbaik berdasarkan confidence. Rule diatas dapat dibaca jika user beli item E maka 100% confidence dia akan beli item B (rule1). Misalnya kita ingin mengganti agar minimum support menjadi 0.5 (2 instance). Klik tulisan apriori (gambar bawah) Kemudian ganti parameter lowerboundminsupport dengan 0.5 5
Tekan OK, lalu jalankan Start sekali lagi. Hasilnya akan seperti ini, jumlah rule berkurang karena minimum support menjadi 2 instance : Setiap kali menjalankan start, hasil output yang lama tidak dibuang. Pada window bagian kiri (result list) berisi sejarah eksekusi algoritma, klik maka window output dibagian kanan akan berubah. Dengan result list, dapat dibandingkan hasil eksekusi dengan berbagai parameter. Untuk mengganti algoritma, klik button Choose 6
D. Klasifikasi Misalnya kita akan gunakan data sebagai berikut dan akan membuat decision tree untuk data ini. Data adalah buah-buahan yang dapat dimakan. Kategorinya (kelas) adalah aman dan berbahaya, sedangkan atribut (features) adalah kulit buah, warna, ukuran dan bau. No Kelas Kulit Buah Warna Ukuran Bau 1 Aman Kasar Coklat Besar keras 2 Aman Kasar Hijau Besar keras 3 Berbahaya Halus Merah Besar Lunak 4 Aman Kasar Hijau Besar Lunak 5 Aman Kasar Merah Kecil Keras 6 Aman Halus Merah Kecil Keras 7 Aman Halus Coklat Kecil Keras 8 Berbahaya Kasar Hijau Kecil Lunak 9 Berbahaya Halus Hijau Kecil Keras 10 Aman Kasar Merah Besar Keras 11 Aman Halus Coklat Besar Lunak 12 Berbahaya Halus Hijau Kecil Keras 13 Aman Kasar Merah Kecil Lunak 14 Berbahaya Halus Merah Besar Keras 15 Aman Halus Merah Kecil Keras 16 Berbahaya Kasar Hijau Kecil Keras Siapkan data ini dalam Excel. Jangan lupa simpan sebagai csv. Kemudian jalankan Weka, masuk ke explorer dan akan muncul tampilan sebagai berikut. 7
Klik open file lalu pilih tipe file csv dan buka file yang telah kita simpan sebelumnya. Dapat dilihat jumlah instance dan jumlah atribut dari file ini. Karena nomor bukanlah atribut, jadi perlu dihapus. Check atribut No lalu klik button remove dibagian bawah. Selanjutnya simpan 8
Secara default file akan disimpan dalam format ARFF, coba simpan, lalu buka dengan notepad. Maka dapat dilihat formatnya sebagai berikut. Terlihat ada beberapa kesalahan duplikasi nilai atribut, Keras dan keras dianggap dua nilai atau label yang berbeda, padahal harusnya sama. Ini dapat diperbaiki langsung di file ARFF. Edit kesalahan yang ada lalu lakukan load ulang di Explorer. Kembali ke explorer, dibagian kanan atas memperlihatkan frekuensi untuk setiap nilai atribut. Coba lihat untuk semua atribut. Sedangkan bagian kanan bawah memperlihatkan visualisasi proporsi dua atribut. Misalnya pada gambar dibawah untuk atribut Kelas dan class Bau, batang yang pertama menyatakan ada 10 instance Aman dan batang kedua menyatakan ada 6 instance Berbahaya. Dari 10 aman tersebut (batang pertama), 7 berbau keras (merah) dan 3 instance berbau lunak (biru) aman Berbau keras Berbau lunak Silahkan coba kombinasi berbagai kelas lainnya. 9
Selanjutknya kita akan membangkitkan decision tree dari data tersebut. Pilih tab Classify. klik button Choose, terlihat banyak pilihan algoritma klasifikasi. Pilih tree ID3 dan pilih Kelas sebagai label kelas. Lalu klik start. Hasilnya akan muncul seperti berikut (scroll ke atas). Dapat dilihat tree yang dihasilkan Decision Tree 10
Sedangkan jika kita scroll ke bawah lagi, akan tampak hasil sebagai berikut: Akurasi Confusion Matrix. Untuk Aman, ada satu kesalahan dilabeli Berbahaya. Untuk Berbahaya, tidak ada kesalahan. Silahkan coba algoritma lainnya. Latihan: Pilih data yang terdapat di (boleh dari website lain). Lalu buat model klasifikasinya dengan Weka (algoritma bebas). http://archive.ics.uci.edu/ml/ TBD: - visualisasi data - simpan model lalu jalankan ke dat ayang kelasnya belum diketehui 11