Anda di halaman 1dari 20

1

Tutorial WEKA

Yudi Wibisono ( yudi@upi.edu)


Ilmu Komputer Universitas Pendidikan Indonesia (cs.upi.edu)
Versi BETA : Feb 2017
2

Daftar Isi
Pendahuluan

Format Data

[todo: Regresi]

Klasifikasi
Menggunakan Model untuk Mengklasifikasikan Data yang Tidak Diketahui
Visualisasi Data

Clustering

Association Rule

Todo: Praproses

Todo: Feature selection


3

Pendahuluan
Catatan: diasumsikan pembaca telah mengerti dasar-dasar pembelajaran mesin (machine
learning) seperti klasifikasi, clustering dan frequent itemset mining.

Weka (Waikato Environtment for Knowledge Analysis) adalah tools yang free dan open source
(berlisensi GPL) yang berisi kumpulan algoritma machine learning dan praproses. Weka dapat
digunakan mulai dari tahap praproses, proses, evaluasi sampai dengan visualiasi. Berbagai
algoritma dapat dibandingkan untuk memilih yang terbaik untuk masalah yang akan
dipecahkan. Weka dibuat dengan Java sehingga bersifat multiplatform dan dapat digunakan
sebagai library dalam aplikasi Java.

Software WEKA dapat di-download 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. Sejak Weka
versi 3.8, Weka dapat menangani data stream dan data yang besar dengan menggunakan
Hadoop dan Spark.

Weka menyediakan tiga interface untuk mengolah dataset.

1. Explorer: Digunakan untuk mencari algoritma yang paling tepat. Semua data diload ke
memori sehingga dapat cepat diproses, tapi hanya dapat digunakan untuk data dengan
jumlah terbatas. Explorer dapat digunakan untuk praproses, association rule, klasifikasi,
clustering, memiliih atribut dan visualisasi data.
2. Eksperimenter: Digunakan untuk mencari parameter yang cocok. Mirip dengan explorer
tetapi prosesnya dapat diautomatisasi. Eksperimen berukuran besar (multi machine
dengan RMI) dapat dilakukan dengan interface ini.
3. Knowledgeflow: Digunakan untuk memproses data stream. Konfigurasi proses dapat
diatur dan dapat menangani data berukuran besar. Mendukung incremental learning.
4. Simple CLI (Command Line Interface) menggunakan command line untuk interface.

Dalam tutorial ini, kita akan mempelajari modul explorer terlebih dulu
Format Data
4

Weka menggunakan format penyimpanan yang disebut ARFF. File ARFF adalah file teks yang
dapat diedit dengan text editor biasa. Weka juga menyediakan fasilitas konversi dari file csv dan
file excel. Data juga dapat diperoleh melalui URL atau 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 datacontoh

@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"

[todo: Regresi]

Klasifikasi
Sekarang kita akan mencoba menggunakan Weka untuk task klasifikasi. Analogi dari proses
klasifikasi otomatis dalam machine learning adalah sebagai berikut: misalnya kita ingin
mengajarkan seorang anak balita membedakan motor dan mobil. Motor dan mobil adalah kelas
yang kita ingin prediksi. Salah satu cara yang dapat dilakukan adalah menyiapkan banyak foto-
foto mobil dan motor. Kita perlihatkan kepada anak tersebut: ini foto mobil, ini foto motor dan
seterusnya. Ini disebut proses training, dan datanya disebut data training. Apa yang terjadi
dalam proses training ini? Anak akan membuat model di otaknya berdasarkan karakteristik
setiap kelas (motor atau mobil). Misalnya jumlah roda, posisi pengemudi, bentuk depan, bentuk
belakang dan seterusnya. Karakteristik objek Ini disebut fitur atau atribut.

Setelah selesai proses training, tentu kita ingin tahu apakah anak sudah mengerti. Maka
siapkan gambar mobil dan motor yang belum pernah dilihat anak dan kita akan uji dia untuk
menebak. Tahapan ini disebut testing dan datanya disebut data testing. Misalnya ada 100
gambar uji, si anak menebak benar 85 gambar dan salah untuk 15 lainnya maka akurasi dari
model di otak anak ini adalah 0.85 atau 85%. JIka akurasi terlalu rendah, mungkin bisa kita
utak-atik teknik pembelajarannya atau data latihnya. Baru setelah kita puas dengan akurasinya,
maka kita bisa melepas si anak untuk melakukan klasifikasi untuk data yang sebenarnya.

Kembali ke Weka, misalnya kita memiliki data training fiktif sebagai berikut. Data ini
mengklasifikasikan buah ke dalam dua kelas: berbahaya atau aman untuk dikonsumsi
berdasarkan 4 atribut: kulit, warna, ukuran dan bau. Misal untuk data no 1 (disebut instance di
5

Weka), jika kulit buah kasar, warnanya coklat, ukurannya besar dan berbaku keras maka buah
ini aman dikonsumsi dan seterusnya.

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

Kita akan membuat model klasifikasi berdasarkan data ini sehingga nantinya dapat digunakan
untuk memprediksi otomatis buah aman atau berbahaya jika diberikan atribut buah

Siapkan data ini dalam Excel (copy paste saja). Jangan lupa simpan sebagai csv.

Coba buka file dengan text editor, harusnya akan seperti ini:

No,Kelas,Kulit Buah,Warna,Ukuran,Bau
1,Aman,Kasar,Coklat,Besar,keras
2,Aman,Kasar,Hijau,Besar,keras
dst...
6

Jika setting Indonesia yang digunakan, separator akan menjadi titik koma, bukan
koma. Untuk menjadikannya koma, buka control panel windows change date
time or number format format, additional setting dan ganti isi list seperator
dengan koma (gambar bawah)

Kemudian jalankan Weka, masuk ke explorer dan akan muncul tampilan sebagai berikut.

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.
7

Karena nomor bukanlah atribut (tidak ada hubungannya antara nomor dengan buah itu
berbahaya atau tidak), jadi perlu dihapus. Check atribut No lalu klik button remove dibagian
bawah.

Selanjutnya simpan

Secara default file akan disimpan dalam format ARFF, coba simpan, lalu buka dengan notepad.
Maka dapat dilihat formatnya sebagai berikut.

Terlihat 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 dengan cara mengganti semua kemunculan keras menjadi Keras dan hapus
keras di @attribut. Lakukan load ulang di Explorer (dengan openfile).
Kembali ke explorer, dibagian kanan atas memperlihatkan frekuensi untuk setiap nilai atribut.
Coba lihat untuk semua atribut.
8

Sedangkan bagian kanan bawah memperlihatkan visualisasi proporsi dua atribut. Misalnya
pada gambar dibawah untuk atribut Kelas dan 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)

Silahkan coba kombinasi berbagai kelas lainnya. Selanjutknya kita akan


menggunakan algoritma klasifikasi decision tree. Pilih tab Classify . Klik button
Choose, terlihat banyak pilihan algoritma klasifikasi. Pilih Tree J48 dan
jangan lupa pilih Kelas sebagai label kelas (gambar bawah).

Jangan lupa
untuk
menset
kelas!

Selanjutnya lihat test option. Use training set adalah menggunakan data test yang sama
dengan data training. Ini agak berbahaya karena dapat menyebabkan akurasi akan tinggi
secara semu. Untuk Supplied Test Test, kita akan menggunakan data test yang terpisah
dengan training. Data test ini berbentuk ARFF dan tentu harus sama atributnya dengan data
training. Pilihan Cross-validation menggunakan data training yang dipecah sebanyak fold.
Contoh jika data training ada 1000 dan folds diset 10 (ten cross validation), maka untuk batch
pertama instance 1-100 digunakan untuk testing dan 101 sd 1000 digunakan untuk training.
Untuk batch kedua 101-200 untuk testing dan 1-100 ditambah 201-1000 untuk training.
Demikian seterusnya secara bergiliran sampai batch 10. Akurasi setiap batch dihitung dan
akurasi model adalah rata-rata semua batch. Cross validation ini yang lebih umum digunakan.
Cara terakhir Percentage split adalah kita bagi data training menjadi dua sesuai persentase,
bagian pertama jadi data testing, bagian kedua jadi data training.
9

Jangan lupa set kelas. Lalu klik start.


Hasilnya akan muncul seperti berikut (scroll ke atas). Dapat dilihat tree yang dihasilkan

Sedangkan jika kita scroll ke bawah lagi, akan tampak hasil sebagai berikut:
Akuras
i

Confusion Matrix. Untuk kelas Aman


ada 6 yang benar tebakannya dan 4
salah. Untuk las Berbahaya t
Silahkan coba algoritma lainnya, mana yang paling bagus?
10

Menggunakan Model untuk Mengklasifikasikan Data yang Tidak Diketahui


Tahapan yang kita buat sebelumnya adalah membuat model. Setelah akurasi kita anggap
cukup, kita ingin agar model ini digunakan untuk mengklasifikasikan data yang belum kita
ketahui kelasnya.

Siapkan data yang akan diprediksi kelasnya dengan format ARFF dengan kelas diisi ?. Artinya
kita akan memprediksi kelas data ini (buah bisa dimakan atau tidak). Nama dan urutan atribut
harus sama dengan yang ARFF yang digunakan untuk menghasilkan model.

@relation buah-weka.filters.unsupervised.attribute.Remove-R1

@attribute Kelas {Aman,Berbahaya}


@attribute 'Kulit Buah' {Kasar,Halus}
@attribute Warna {Coklat,Hijau,Merah}
@attribute Ukuran {Besar,Kecil}
@attribute Bau {Lunak,Keras}

@data
?,Halus,Coklat,Kecil,Keras
?,Kasar,Hijau,Kecil,Keras
?,Kasar,Merah,Kecil,Keras
?,Halus,Coklat,Kecil,Lunak
?,Kasar,Hijau,Kecil,Lunak

Buka file yang berisi arff yang belum diketahui ini sebagai supplied test set. (gambar bawah).

Pastikan kelasnya sesuai (gambar bawah)

Lalu pilih More Options


11

Check Output Prediction agar prediksi dimunculkan, pilih plain text (gambar bawah).

Setelah itu di result list, arahkan ke baris yang berisi model yang sudah dibuat sebelumnya, lalu
klik kanan dan pilih Re-evaluate model on current test set

Hasilnya akan seperti ini. Bisa dilihat instance 1 diprediksi Aman, 2 Berbahaya dan seterusnya.

Pada langkah diatas, diasumsikan dilakukan proses training terlebih dulu sebelum klasifikasi
dimulai. Tentu ini tidak praktis, kita ingin setelah proses training selesai dan model memiliki
akurasi bagus, dapat kita simpan dan dapat langsung digunakan untuk memprediksi (training
cukup sekali). Di Weka model dapat disave sebagai berikut:
12

Klik result list yang akan disimpan, lalu klik kanan dan Save Model

Dan setelah disave, jika diperlukan kita bisa meloadnya.

Di result list akan muncul seperti ini, artinya model sudah diload:

Tahapan selanjutnya sama dengan sebelumnya, load file yang akan diprediksi di supplied test
set, lalu pilih model di result set yang baru diload, klik kanan dan reevaluate model on current
test set (pastikan output prediction di check)

Latihan:
Pilih data yang terdapat di http://archive.ics.uci.edu/ml/ (boleh dari website lain). Lalu buat
model klasifikasinya dengan Weka. Minimal jumlah atribut adalah 10, minimal jumlah record
(instances) adalah 5000
13

Visualisasi Data
Weka menyediakan fasilitas untuk memvisualisasikan data yang membuat kita lebih
mudah memahami data, terutama untuk data berukuran besar. Untuk mencoba fitur ini,
download data arff berikut dan load ke Weka. Data ini dibuat Marko Bohanec, yang
berisi evaluasi mobil berdasarkan beberapa atribut.
https://drive.google.com/open?id=0B2y--TQz9k-PeGRXeTkwdkZMcE0

Setelah itu pilih tab visualize, akan ditampilkan keterkaitan antara atribut. Tentu yang
paling kita ingin tahu adalah kaitan antara atribut dengna kelas. Klik grafik antara kelas
dan safety (gambar bawah)

Akan ditampilkan grafik yang menghubungkan antara safety dan kelas. Supaya grafik
lebih jelas, naikan nilai jitter (gambar bawah)

Hasilnya dapat dilihat pada gambar dibawah. Atribut safety ada di sumbu x (low, med,
high), sedangkan kelas ada di sumbu y (vgood=very good, good, acc, unacc).
14

Dapat dilihat untuk safety yang low, evaluasi mobil seragam di uncacc (tidak di acc),
tetapi untuk kualitas safety medium, jumlah kelas relatif seimbang. Sedangkan untuk
kelas vgood=verygood hanya ada untuk atribut safety high. Dapat disimpulkan atribut
ini sangat penting untuk kelas unacc dan verygood. Kita dapat juga mengklik point,
terutama untuk outlier, sebagai contoh, untuk safety low ada nilai yang hampir
mendekati acc (gambar bawah)
15

Coba klik maka akan ditampilkan nilai semua atribut untuk titik tersebut (gambar
bawah), mungkin karena :

Sedangkan grafik di bagian kanan (gambar bawah) adalah shortcut untuk grafik.
Pertama perlu dilihat kode pewarnaan kelas (biru = unacc, merah=acc dst). Dari grafik
ini terlihat mayoritas kelas adalah unacc. Setiap baris menyatakan atribut (X), klik baris
untuk menampilkan grafik detilnya disebelah kiri.
16

Clustering
Pada task clustering, kita akan mencari kelompok-kelompok berdasarkan atributnya. Sebagai
contoh akan digunakan data dari customer bank:
http://facweb.cs.depaul.edu/mobasher/classes/ect584/WEKA/data/bank-data.csv

Buang data yang tidak diperlukan (id) lalu pilih tab cluster, dan tombol Choose dan pilih
SimpleKMeans

Klik tulisan simpleKmeans (text box), maka akan ditampilkan parameter untuk KMeans. Bagian
yang paling penting adalah jumlah cluster (numCluster), coba isi dengan 4

Klik Start, maka hasilnya adalah sebagai berikut. Kolom paling kiri adalah atribut, kolom kedua
adalah cluster yang berisi semua data Full Data, kolom berikutnya adalah cluster pertama
dengan jumlah data 114 dan seterusnya. Nilai atribut yang ditampilkan adalah centroid.

Apa yang bisa dilihat dari data ini?


Dari sisi umur, dapat dilihat bahwa customer baik laki-laki maupun perempuan yang berumur
45-an akan tinggal di daerah INNER_CITY (tengah kota besar) sedangkan yang berumur 35an
tinggal di TOWN (kota kecil). Sedangkan kalau dilihat dari penghasilan, bank mungkin akan
tertarik dengan cluster yang memiliki penghasilkan tertinggi untuk ditawari berbagai produk
17

keuangan (misal kartu kredit platinum). Cluster dengan penghasilan tertinggi adalah male,
tinggal di kota besar, umur 45an, sudah menikah dengan anak satu dengan jumlah data 180.

Coba dengan berbagai konfigurasi jumlah cluster, hasil apa yang dapat diperoleh?
Lalu coba dengan teknik clustering lain (pilih Choose), misal teknik Canopy yang tidak
memerlukan input jumlah cluster, maka hasilnya adalah sebagai berikut dengan total 31
cluster:

Canopy sering dijadikan praproses sebelum clustering KMeans dilakukan untuk menentukan
jumlah cluster. Sekarang coba gunakan lagi SimpleKMeans tetapi dengan jumlah cluster 31.
Jika menggunakan menggunakan jumlah cluster 31, ada yang menarik untuk cluster yang
memiliki centroid dengan menghasilkan tertinggi (gambar bawah)

Berdasarkan cluster itu, ada 14 orang dengan penghasilkan tertinggi dengan karakteristik
female, tinggal di tengah kota, menikah tapi tidak punya anak.

Association Rule
Misalnya kita mempunyai data seperti ini, dan akan melakukan mining association rule.
18

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

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.

Selanjutnya pilih tab Associate (gambar bawah), secara default algoritma yang digunakan
adalah apriori. Tekan start.
19

Hasilnya akan seperti ini (dibagian output):

Output menampilkan parameter algoritma (support, confidence) dan rule terbaik berdasarkan
confidence. Rule nomor satu pada gambar di atas dapat dibaca jika user beli item E maka
100% confidence dia akan beli item B.

Misalnya kita ingin mengganti agar minimum support menjadi 0.5 (2 instance). Klik tulisan
apriori (gambar bawah)

Kemudian ganti parameter lowerBoundMinSupport dengan 0.5


20

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

Todo: Praproses
Weka menyebut fasilitas praproses sebagai filter. Beberapa filter yang tersedia adalah:
1. Menambah atau menghilangkan atribut.
2. Diskretisasi.
3. Filter time series.
4. Sampling.
5. Penanganan nilai kosong (missing value).
6. Normalisasi.

Todo: Feature selection

Todo: Pemrosesan Teks

Anda mungkin juga menyukai