Ini adalah step modelling dari repository berikut (https://github.com/nadyadtm/Obesity-Level-Estimation-using-Machine-Learning)
Tujuan dari pembuatan project ini adalah untuk membuat sistem yang dapat mengetahui seberapa besar tingkatan obesitas seseorang berdasarkan beberapa faktor seperti kondisi fisik dan kebiasaan seseorang.
Berikut ini adalah langkah-langkah yang dilakukan dalam pembuatan sistem.
- Exploratory Data Analysis, yang terdiri dari
- Pengecekan Missing Values
- Pengecekan Baris yang Duplikat
- Data Preprocessing, yang terdiri dari
- Penghapusan data duplikat
- Encoding untuk Data Kategorikal
- Data Splitting, membagi data menjadi data train dan data test.
- Machine Learning Modelling
Untuk melihat proses EDA dan Data Preprocessing secara lengkap dapat melihat repository sebelumnya (https://github.com/nadyadtm/Obesity-Level-Estimation-using-Machine-Learning)
Selanjutnya kita akan mencari algoritma machine learning yang paling sesuai dengan kondisi data yang sudah di preprocessing sebelumnya. Langkah modelling yang dilakukan adalah sebagai berikut.
Dalam kasus ini, kita akan memilih tiga algoritma berikut ini. Di antaranya adalah
- Decision Tree, dengan parameter
max_depth
10 dancriterion
entropy. - Random Forest, dengan parameter
n_estimators
200 dancriterion
entropy. - Gradient Boosting, dengan parameter
n_estimators
200.
Semua algoritma ini merupakan model tree based, yaitu algoritma yang akan menghasilkan aturan bercabang. Aturan bercabang ini adalah hasil dari pembelajaran yang dilakukan oleh algoritma tersebut.
Pada step sebelumnya, kita sudah membagi data menjadi
- Data Latih sebanyak 1669 data
- Data Uji sebanyak 418 data
Data yang sudah dipreprocessing akan menjadi bahan untuk dipelajari oleh algoritma machine learning. Tiga model ini akan mempelajari data latih terlebih dahulu. Setelah itu kita akan menguji model tersebut untuk memprediksi data uji. Setelah itu kita perlu membandingkan hasil prediksi model kita dengan hasil dari data uji dengan menggunakan metrik evaluasi.
Dalam kasus ini, metrik evaluasi yang digunakan adalah F1 Score. Semakin besar F1 Score, artinya model berhasil memprediksi kelas dengan baik. Untuk mencatat dan memonitoring hasil evaluasi, kita dapat menggunakan tools Neptune.ai.
Berikut ini adalah hasil evaluasi yang dihasilkan oleh tiga model berikut
- Decision Tree
- Random Forest
- Gradient Boosting
Berdasarkan hasil evaluasi tersebut, Gradient Boosting menghasilkan hasil yang terbaik dengan F1 Score 96%. Oleh karena itu, kita akan memilih Gradient Boosting.