Artikel 5Menit: Apa Yang Membuat Model Machine Learning Berhasil???

Heri Fauzan
Artikel5Menit
Published in
6 min readDec 12, 2019

Dalam proses pembentukan model machine learning terdapat beberapa proses yang menjadi inti dari kegiatan machine learning dan menentukan kesuksesan sebuah model yang dibuat:

Exploratory Analysis

Tujuan dari tahap ini adalah untuk mengenal data yang akan digunakan. Semakin jauh kita mengenal data tersebut maka akan semakin mudah kita mengolah dan menghasilkan model yang bagus dari data tersebut. Dengan melalui proses ini kita akan lebih mudah memproses data dalam 3 hal:

  1. Data Cleaning, kita dapat mengetahui bagian-bagian dari data yang akan merusak model dan harus dihilangkan sebelum dilakukan pembelajaran.
  2. Feature Engineering, kita juga lebih mudah untuk menseleksi dan mendapatkan fitur yang dibutuhkan jika kita mengenal data lebih jauh.
  3. Memiliki pengetahuan mendalam tentang dataset untuk dikomunikasikan

Caranya adalah dengan mulai mempertanyakan hal-hal sederhana terhadap dataset, seperti seberapa banyak fitur yang dimiliki, tipe data apa yang dimiliki fitur-fitur tersebut, apakah ada variabel target.

Lalu lakukan beberapa hal:

  • Observasi Data Sample, dari data sampel yang didapatkan kita dapat melihat kualitas dari dataset tersebut, dapat ditemukan beberapa kolom yang mungkin tidak masuk akal, nilainya tidak pada range yang tepat, atau bahkan bernilai null.
  • Plot Numerical Distributions,

Distribusi numerik tiap kolom berfungsi untuk melihat persebaran nilai pada kolom tersebut. Dari persebaran tersebut kita bisa menemukan kolom yang perlu dibuang dan kolom yang penting serta bisa juga menemukan data outlier.

  • Plot Categorical Distributions,

Pada distribusi kategori ini biasanya digunakan untuk melihat distribusi kelas dari label output yang akan digunakan, dari seluruh dataset akan ditemukan label mana yang bisa digunakan dan label mana yang harus dibuang.

Dari data diatas terlihat bahwa ada beberapa label yang jumlahnya sedikit, sehingga dapat diabaikan agar tidak menghasilkan model yang overfit.

  • Plot Segmentations,

Untuk menemukan hubungan antara categorical features dengan numerical features kita dapat menggunakan segmentasi plot.

Dari tampilan box plot di atas, dapat ditarik kesimpulan nilai rata-rata, nilai tertinggi dan terendah dari kategori properti yang berbeda.

  • Study Correlations dengan heatmaps,

Heatmaps menentukan hubungan antara dua numerical features yang saling berhubungan. Semakin dekat dengan 0 berarti semakin tidak berhubungan, jika semakin dekat dengan 100 atau -100 berarti memiliki hubungan yang kuat.

Dari tampilan tersebut terlihat bahwa hubungan antara nightlife dengan restaurants sangat kuat (93), hubungan cafes dengan restaurants juga sangat kuat (94), hubungan cafes dengan nightlife juga sangat kuat (92), serta hubungan insurance dengan property_tax juga sangat kuat (98). Dalam hal ini jika ada data yang memiliki hubungan erat dapat dianggap memiliki informasi yang sama, sehingga dari dua yang berhubungan tadi bisa diwakili oleh salah satu saja untuk mewakili.

Data Cleaning

Proses ini adalah bagian paling penting kedua dalam proses machine learning. Dalam machine learning “better data is better than fancier algorithms”, karena apabila yang masuk adalah sampah, maka model yang dihasilkan juga adalah sampah. Data cleaning dilakukan untuk menjamin bahwa data-data yang sampah dibuang.

Beberapa hal yang dilakukan:

  • Menghapus observasi/data yang tidak dibutuhkan

Observasi yang tidak dibutuhkan bisa jadi adalah duplikat dari data yang sudah ada atau data yang irrelevant.

  • Memperbaiki structural errors

Structural errors sering muncul ketika terjadi typo dalam memasukkan kategori data seperti berikut:

Ada beberapa kategori yang terjadi duplikasi karena kesalahan huruf kapital atau penggunaan dua atau lebih kategori sekaligus.

  • Filter unwanted outliers

Outlier sangat berpengaruh jika menggunakan model linier namun akan tidak terlalu terlihat jika menggunakan decision tree model. Outlier hanya boleh dihapus jika terbukti tidak sesuai dengan data trend yang sesuai.

  • Handle missing data

Ada dua cara untuk menghadapi missing data, yang pertama yaitu dengan dihilangkan seluruh data tersebut, atau dengan diisi data yang bernilai. Kedua cara ini sebenarnya bukan sesuatu yang bagus, karena terkadang “missingness” memiliki informasi yang penting untuk model machine learning.

Ada dua tipe data yang paling sering ditemukan pada machine learning yaitu numeric dan categorical, untuk mengganti nilai numeric biasanya menggunakan median dan mean, untuk mengganti nilai categorical biasanya digunakan nilai modus.

Feature Engineering

Feature engineering adalah proses untuk mendapatkan fitur yang akan digunakan pada machine learning. Bisa dilakukan dengan seleksi fitur, ekstraksi fitur, menghitung fitur, dan lain-lain.

Feature engineering penting untuk mengetahui hal-hal penting dari data yang akan digunakan sebagai bahan machine learning. Proses ini merupakan yang paling menentukan antara newbie dan expert dalam machine learning, karena terdapat knowledge yang sudah menjadi kebiasaan terkait penanganan berbagai jenis-jenis data.

Kemampuan ini akan terus bertambah seiring dengan banyak pengalaman seorang machine learning engineer:

  • Infuse Domain Knowledge

Pengetahuan terkait domain knowledge dalam hal data yang digunakan sangat berpengaruh dalam feature engineering, sehingga mampu menghasilkan fitur yang sangat relevan dengan domain tersebut.

  • Create Interaction Features

Interaction features adalah fitur hasil gabungan beberapa fitur yang mungkin berguna dalam proses pembelajaran, seperti total nilai, rata-rata, dll. Interaction features sangat bergantung pada keahlian domain knowledge terkait data untuk menghasilkan fitur yang benar-benar bermanfaat.

  • Combine Sparse Classes

Terkadang terlalu banyak kelas yang ada pada hasil observasi, dari banyak kelas ini banyak diantaranya yang hanya beranggotakan sedikit anggota misalnya 5 atau hanya 10 observasi. Ada rule of thumb yang mengharuskan sedikitnya satu kelas minimal ada 50 data (tidak harus) karena itu biasanya ada kelas yang dijadikan satu kelas agar tidak terlalu banyak kelas tujuan.

  • Add Dummy Variables

Biasanya algoritma pembelajaran tidak dapat memproses nilai bertipe data text sebagai kategori/label, karena itu digunakan dummy variable yang bernilai 0 atau 1 untuk mengelompokkan ke label atau kelompok yang dituju.

  • Remove unused features

Fitur-fitur yang tidak “make sense” digunakan dalam pembelajaran dihapus karena tidak akan digunakan, serta data-data yang redundan juga dihapus. Sehingga akan dihasilkan sebuah Analytical Base Table (ABT) yang siap digunakan untuk training.

Algorithm Selection

Pemilihan algoritma pertama kali harus dicari yang paling sederhana namun kalau bisa lebih general. Ada dua sifat pengelompokkan yaitu linear dan non linear. Setiap algoritma memiliki kelebihan dan kekurangan karena itu harus dipilih berdasarkan tujuan dan input dari machine learning tersebut.

Beberapa algoritma sederhana mesin learning yaitu:

  1. Linear Regression, sangat sederhana dan mudah dipahami, tetapi sering overfit dengan banyak fitur serta tidak cocok untuk masalah non-linear
  2. Lasso Regression, linear regression dengan regularisasi, optimasi koefisien menuju 0, otomatis menjadi feature selection
  3. Ridge Regression, linear regression dengan regularisasi, optimasi squared coefficient sampai mendekati 0, feature shrinkage
  4. Elastic Net, gabungan lasso dan ridge
  5. Random Forest, bikin hutan random berisi strong decision tree buat model, mengurangi kompleksitas model agar tidak overfitting
  6. Boosted Tree, dia ambil n weak fitur terus terus dikombinasikan biar jadi strong fitur

Model Training

Untuk melakukan training harus disediakan dahulu data yang akan digunakan lalu:

  • Split Dataset, data train (menggunakan cross validation) dan data test (tidak boleh disentuh sampah akhir pembelajaran untuk akurasi model)
  • Tuning Parameter, ada model parameter (misal koefisien regresi) dan ada juga hyper parameter (koefisien regularisasi/ lamda)
  • Select the Winning Model

Kalau menggunakan regresi performance measurenya lebih baik menggunakan Mean Squared Error (MSE) atau Mean Absolute Error (MAE), jika menggunakan klasifikasi baiknya menggunakan AUROC (Area Under ROC Curve).

Pilih yang terbaik berdasarkan:

  1. Performance (akurasinya paling bagus)
  2. Robustness (dari beberapa performance measure dia tetap bagus)
  3. Consistency (hasil cross validation-nya tidak terlalu menyimpang)
  4. Win Condition (menyelesaikan tujuan dari dibuatnya model)

Others

Ada beberapa hal yang penting namun sangat bergantung pada kondisi yaitu:

  1. Project Scoping, kadang-kadang kita butuh roadmap project yang jelas dan mengantisipasi kebutuhan data.
  2. Data Wrangling, terkadang perlu juga untuk melakukan restructure data format agar bisa dihandle oleh algoritma, misal jika input algoritma adalah binary, maka harus diubah seluruh data ke binary terlebih dahulu.
  3. Preprocessing, transformasi fitur untuk optimasi model.
  4. Ensembling, menggabungkan beberapa model untuk pembelajaran.

--

--

Heri Fauzan
Artikel5Menit

Cloud Solutions Architect, AWS Azure GCP and Kubernetes Certified