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.
Memang semudah apa sih membuat model machine learning menggunakan Orange Data Mining? Yuk, kita coba lihat dan praktekkan sendiri.
Tentang 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.
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.
Kita juga bisa melakukan preview hasil import image, dengan menggunakan widget Image Viewer.
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
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.
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.
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.
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.
Okay, berikutnya apa? Berikutnya kita bisa menyimpan model yang sudah kita train ke dalam sebuah file berekstensi pckls.
Classification Model Testing
Proses berikutnya, dari model yang sudah kita bangun kita bisa melakukan prediksi terhadap data test yang sudah kita persiapkan sebelumnya.
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.