Iris Multilayer Perceptron Menggunakan Library Keras

Halo guys di postingan kali ini kita akan coba melakukan klasifikasi data iris (oh man, boring) menggunakan library deep learning keras. Library keras sendiri merupakan library deep learning yang relatif mudah untuk dipelajari dan dipahami. Buat kalian yang belum install keras, bisa ikuti tutorial instalasi keras yang sudah saya tulis sebelumnya.

Dataset

Dataset yang akan kita gunakan kali ini lagi lagi adalah dataset iris. Di dataset ini kita akan memprediksi spesies bunga iris berdasarkan fitur-fitur seperti petal length, petal width, sepal length, sepal width. Dataset ini bisa didownload di link di berikut :
Download dataset iris

Klasifikasi Spesies Iris Menggunakan Keras

Oke kuy langsung saja kita mulai.

Import library

Langkah pertama adalah mengimport library yang akan kita butuhkan. Kita menggunakan numpy untuk melakukan numerical operation serta pandas untuk manipulasi dataframe. Beberapa fungsi dari keras dan juga sklearn juga kita perlukan dalam tutorial ini.

Set Random Seed

Agar mendapatkan hasil yang sama dalam beberapa eksperimen, maka kita perlu me-set suatu random seed.

Loading Dataset

Simpan dataset yang sudah didownload di folder yang sama dengan script python ini. Setelah kita load dengan menggunakan pandas, kita pisahkan antara target variable (spesies, yang merupakan kolom ke 4) dan predictor variabel (petal length, petal width, dll) dan simpan masing-masing dalam Y dan X.

Encode Target Variabel

Untuk dapat di-input-kan ke library keras, target variabel yang mulanya berisi string versicolor, virginica, dan setosa perlu diubah ke dalam skema one-hot encoding. Untuk mengubahnya, kita dapat menggunakan fungsi LabelEncoder dari Sklearn.

Definisi Model

Model yang akan kita gunakan adalah model multilayer perceptron sederhana dengan satu hidden layer. Dalam library keras, model ini dapat dibuat dengan mula mula membuat instance dari kelas Sequential. Langkah berikutnya adalah menambahkan 2 hidden layer, masing-masing terdiri dari 4 neuron dan 3 neuron. Pada hidden layer pertama, perlu kita tentukan input_dim=4, yaitu jumlah predictor variable yang digunakan dalam melakukan klasifikasi. Pada tiap layernya kita tentukan juga bagaimana bobot akan diinisialisasi serta fungsi aktivasi yang digunakan.

Setelah model selesai dibuat, model perlu di-compile terlebih dahulu sehingga pada langkah selanjutnya dapat dilakukan pelatihan. Dalam melakukan kompilasi model, perlu kita tentukan loss function yang akan digunakan, algoritma pelatihan (optimizer) yang akan digunakan, serta metric yang  akan dilaporkan.

Tambahkan Wrapper Sklearn

Untuk mempermudah operasi-operasi seperti cross-validation serta operas-operasi lain yang dapat dilakukan classifier sklearn pada umumnya, model keras yang telah di-compile dapat di-wrap sehingga mengikuti interface dari classifier sklearn.

Pada proses wrapping ini juga kita tentukan parameter-parameter untuk pealtihan seperti jumlah epoch, besar batch size, serta verbose yang menyatakan apakah akan dilakukan pencetakan hasil tiap epoch selama proses pelatihan.

Evaluasi dengan Cross-Validation

Oke semuanya sudah siap, langsung saja kita lakukan cross-validation untuk mengetahui seberapa baik keras classifier yang kita buat.

 

That’s it. Kita sudah berhasil melakukan klasifikasi sederhana dengan Multilayer Perceptron menggunakan lirbary keras. Untuk eksplorasi selanjutnya, bisa browsing-browsing lagi di websitenya keras (dokumentasinya boleh juga kok) untuk mencoba model-model yang lebih powerful untuk case-case yang lebih menarik seperti CNN, LSTM, dan juga GRU.

Leave a Reply

Your email address will not be published. Required fields are marked *