Using WEKA in our application

“The best way to learn is teaching” – wise man.

Dari pada ilmu yang dulu pernah kepake waktu nugas a beberapa bulan lalu usang tak terpakai, mending coba ditularkan kepada orang lain, betul? Asumsi yang saya pakai dalam post ini adalah bahwa Anda sudah tahu apa itu WEKA dan pernah menggunakannya pada aplikasi WEKA versi GUI.

Bagaimana menggunakan WEKA di aplikasi kita (web dengan jsp ataupun aplikasi java murni)?

Langkah pertama adalah mengimport library weka. Saya pikir semua orang sudah tahu caranya betul?

  1. Klik kanan pada project (asumsi Anda mengerjakannya di netbeans).
  2. Pilih add/import library
  3. Cari weka.jar ataupun weka-src.jar
  4. Ok

Langkah selanjutnya adalah mencobanya. Coba buat kelas runnable.

  1. Klik kanan pada folder src pada bagian project.
  2. Add class -> pilih java class yang ada mainnya.

Untuk mencobanya saya sarankan pakai langkah-langkah yang sangat lengkap dijelaskan disini.

Coba lakukan semua step pada link di atas. Kalau Sudah berhasil melakukan semua tahapan tersebut. Baru coba fitur WEKA lainnya.

***

#1 Evaluate Model


//Load Instances testweka
trainer testweka = new trainer("C://a/path/to/your/arff/file");

//Build Classifier with testweka
Classifier NB = testweka.buildNBTree();

//Evaluation
Evaluation NBeval = testweka.testClassifier(NB, testweka.trainerdata);
 System.out.println(NBeval.toSummaryString());
 System.out.println(NB.toString());

#2 Serialization/Deserialization Model

Mengapa kita perlu melakukan serialization model? Tujuannya adalah agar kita tidak perlu membuat model klasifikasi setiap kali kita ingin menggunakan model tersebut. Cukup sekali kita membuat kelas model klasifikasi, misalnya pada contoh dibawah kita membuat model klasifikasi menggunakan algoritma NBTree. Lalu model tersebut diserialisasi ke dalam file NB.model. Selanjutnya NB.model tersebut dapat diserialisasi untuk dipakai di berbagai kelas java lainnya.


//Load Instances testweka
 trainer testweka = new trainer("C://a/path/to/your/arff/file");

//Build Classifier with testweka
 Classifier NB = testweka.buildNBTree();

//SERIALIZATION MODEL
 //save model to file cara 1
 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("C://a/path/to/your/NB.model"));
 oos.writeObject(NB);
 oos.flush();
 oos.close();

//save model to file cara 2
 SerializationHelper.write("C://a/path/to/your/NB.model", NB);

//DESERIALIZATION MODEL
 //using model
 Classifier NBload = (Classifier) weka.core.SerializationHelper.read("C://a/path/to/your/NB.model");

//predict class target anInstance using deserialized model that have been prepared in NB.model
 Instance anInstance = ...;
 double[] resNB = NBload.distributionForInstance(testweka.makeInstance(anInstance));

//Asumsi kelas target dari file arff yang dimasukkan ada 4
 System.out.println(resNB[0]);
 System.out.println(resNB[1]);
 System.out.println(resNB[2]);
 System.out.println(resNB[3]);

Penjelasannya bisa dibaca di sini.

#3 Divide dataset to training dataset and test dataset

Langsung saja dibaca di sini.

#4 About dataset, filter (supervised/unsupervised), and classifier

Langsung saja dibaca di sini.

#5 Misc

http://weka.wikispaces.com/Use+WEKA+in+your+Java+code

Link di atas berisi penjelasan tentang:

  • Instances – your data
  • Filter – for pre-processing the data
  • Classifier/Clusterer – is built on the processed data
  • Evaluating – how good is the classifier/clusterer?
  • Attribute selection – removing irrelevant attributes from your data

Untuk keperluan programming yang lengkap, langsung saja buka API WEKA di sini.

Satu pemikiran pada “Using WEKA in our application

  1. Boleh tanya2 lagi tentang weka mas, saya mau menerapkan algoritma kmeans untuk aplikasi yg saya buat, saya masih bingung memanggil kelas2nya, kalo boleh saya sangat berterima kasih

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s