Membuat Model Image Classification tanpa Skill Programming dengan Orange Data Mining

Source: Deep Learning on Medium

Membuat Model Image Classification tanpa Skill Programming dengan Orange Data Mining

Oleh: Irfan Wahyudin

Pada tanggal 17 Oktober 2019 kemarin, Datasynthesis berkesempatan untuk mengisi acara sharing Digilearn di PT Indo Tambangraya Megah, Tbk (ITMG). Pada kesempatan itu CEO Datasynthesis, Angkin Winartan memberi paparan yang memotivasi para peserta untuk mulai mempelajari dan mengimplementasikan Data Analytics untuk mengoptimalkan bisnis proses di ITMG. Dimulai dengan paparan sejarah data analytics, skill dasar yang dibutuhkan, dan diakhiri dengan live demo bagaimana membuat model machine learning bagi yang belum atau sedikit mempunya skill programming menggunakan Orange Data Mining. Live Demo ini dipandu oleh CPO Datasynthesis, yaitu saya sendiri, Irfan.

Pada artikel ini, kita akan membahas semudah apa sih membuat model machine learning menggunakan Orange Data Mining?

Tentang Orange Data Mining

Orange Data Mining

Orange Data Mining merupakan platform Data Analytics, yang mengedepankan Visual Programming (Free Coding), dan dibuat oleh tim dari University of Ljubljana dan Jožef Stefan Institute pada tahun 1996.

Instalasi

Melakukan instalasi Orange Data Mining cukup mudah, installer dapat diunduh secara gratis pada https://orange.biolab.si/, atau melalui dashboard Anaconda Navigator.

Orange Data Mining pada Anaconda Navigator

Yang akan Kita Lakukan dengan Orange

Pada kesempatan kali ini kita akan melakukan sebuah demonstrasi tentang bagaimana Orange dapat membantu kita dalam membuat model machine learning dengan mudah dan cepat. Tentu, terdapat beberapa batasan seperti besarnya data yang akan dianalisis dengan Orange tidak akan bisa melampaui besarnya data bisa diolah oleh Machine Learning framework yang berjalan di atas Big Data Platform seperti Spark ML, dan Mahout. Orange lebih cocok apabila dibandingkan secara head-to-head dengan platform sejenis seperti Weka, dan Scikit-Learn.

Okay, back to topic, kita akan melakukan sebuah clustering gambar kartun beberapa hewan. Sebenarnya tutorial ini sudah tersedia di blog Orange, kita coba membahasnya di sini, merubah sedikit metode clusteringnya, dan mengembangkannya dengan menambahkan model classifier.

Data Import

Untuk mengambil data, kita bisa menggunakan wdiget Import Images, yang ada di Add-Onn Orange3-ImageAnalytics. Anda harus menginstallnya terlebih dahulu apabila belum tersedia.

Import File Image menggunakan widget Import Images (source: Orange Blog)

Kita juga bisa melakukan preview hasil import image, dengan menggunakan widget Image Viewer.

Image Preview (source: Orange Blog)

Image Embedding

Proses berikutnya adalah proses membuat fitur dari gambar yang sudah kita muat ke dalam flow proses. Di sini kita akan menggunakan widget Image Embedding

Image Embbedding Widget
Image Embbedding pada Orange

Kerennya, pada Image Embedder yang tersedia di Orange sudah terdapat beberapa pilihan model yang biasa digunakan pada convolutional layer untuk Deep Learning, seperti Inception v3, VGG-16 dan sebagainya. Penggunaan model-model ini tentu saja dapat menjamin tingkat akurasi yang tinggi untuk model classifier yang akan digunakan.

Kemudian, yang membedakan antara tulisan ini dengan tutorial di blog Orange adalah penggunaan metode clustering. Di mana metode yang digunakan di sana adalah Hierarchical Clustering. Sedangkan yang akan digunakan di sini adalah K-Means Clustering. Alasannya adalah pada widget Hierarchical Clustering di Orange, tidak terdapat label klaster yang bisa kita gunakan untuk proses lebih lanjut seperti membuat klasifikasi.

Clustering

Proses Clustering yang akan dilakukan di sini akan menggunakan widget K-Means clustering. Berhubung kita sudah tahu pada dataset gambar tersebut terdapat sekitar 5 kelas, maka kita langsung bisa menenetukan jumlah K yang tepat yaitu 5.

Clustering menggunakan K-Means, dengan fixed cluster number = 5
Hasil clustering

Dapat dilihat pada gambar di atas, hasil clustering sudah cukup bagus, gambar-gambar yang kita muat sudah masuk pada kelompok-kelompok yang sama.

Classification Model Training

Hasil cluster selanjutnya sudah bisa kita gunakan untuk melakukan proses training. Akan tetapi sebelumnya kita perlu melakukan feature dan label selection. Untuk feature bisa kita ambil dari output yang dihasilkan oleh Image Embedding, sedangkan untuk label bisa kita ambil dari hasil cluster.

Feature dan Label Selection
Hasil dari clustering selanjutnya digunakan untuk proses training pada proses pembuatan Classification

Setelah melakukan clustering, tahapan berikutnya adalah kita perlu melakukan model training. Secara tidak langsung, sebenarnya Orange di sini sudah mendukung implementasi Deep Learning. Kenapa? Jika kita lihat di awal kita menggunakan Image Embedding yang biasa digunakan pada Convolutional Layer pada Deep Learning. Berikutnya kita juga bisa menggunakan fully connected layer Neural Network untuk melakukan klasifikasi.

Widget NN pada Orange Data Mining dengan beberapa pilihan Activation Function dan Optimizer seperti yang ada pada implementasi model Deep Learning pada umumnya

Hasil pengujian dapat dilihat pada penggunaan widget Test & Score. Jika dibandingkan dengan model lain, terlihat NN lebih superior untuk data yang terbilang kompleks seperti gambar dan teks.

Hasil score neural network terbilang cukup tinggi

Okay, berikutnya apa? Berikutnya kita bisa menyimpan model yang sudah kita train ke dalam sebuah file berekstensi pckls.

Classification Model Testing

Data untuk Testing

Proses berikutnya, dari model yang sudah kita bangun kita bisa melakukan prediksi terhadap data test yang sudah kita persiapkan sebelumnya.

Model Testing

Proses untuk melakukan testing masih sama dengan proses awal pada saat kita melakukan clulstering, yaitu harus melalui proses Image Embendding untuk mengekstraksi fitur.

Setelah itu, hubungkan antara model yang sudah kita load dengan widget Prediction untuk memulai memprediksi data yang dipersiapkan untuk testing.

Voila, berikut hasil prediksi dari model yang kita bangun.

horse masuk klaster ke dua (C2)? Well, Cek dengan hasil tabel clustering di atas