Artikel 5Menit: Bagaimana Membuat Machine Learning Model??

Heri Fauzan
Artikel5Menit
Published in
5 min readDec 12, 2019

Ada beberapa langkah untuk membuat model Machine Learning, berikut adalah langkah-langkahnya:

Define a Problem

Pertama hal yang perlu ditentukan adalah mendefinisikan masalah yang ingin diselesaikan dengan machine learning. Perlu diketahui bahwa tidak semua masalah cocok diselesaikan dengan machine learning, terkadang ada masalah yang lebih baik menggunakan algoritma heuristik. Beberapa hal yang harus diperhatikan dalam menentukan masalah adalah:

  1. Kelayakan sebuah masalah sebagai masalah untuk machine learning
  2. Masalah harus sangat spesifik dan jelas
  3. Masalah sebisa mungkin dapat di-framing ke dalam salah satu dari masalah umum pada machine learning

Ada beberapa masalah umum pada machine learning yang sering digunakan sebagai acuan, seperti pada tabel berikut:

Tabel Masalah Umum pada Machine Learning

Langkah untuk memformulasikan masalah menjadi masalah pembelajaran mesin:

  1. Artikulasikan masalahnya
  2. Mulai dengan sederhana
  3. Identifikasi sumber data
  4. Design bentuk data dengan yang dibutuhkan model
  5. Tentukan bagaimana fitur data dibentuk
  6. Tentukan input yang paling mudah didapatkan
  7. Kemampuan untuk belajar
  8. Berpikir untuk potensial bias

Ketika diartikulasikan maka masalah sudah di-framing secara lebih spesifik menjadi bagian yang lebih sederhana dari masalahnya, seperti berikut ini:

Lalu untuk memulai dengan sederhana, kita harus berpikir dari pertanyaan seperti apakah masalah tersebut bisa disederhanakan? Tentukan model yang paling sederhana yang bisa digunakan pada masalah ini, agar berguna sebagai baseline.

Ada beberapa pertanyaan untuk mengidentifikasi sumber data seperti pertanyaan:

  • Seberapa banyak data berlabel yang kita punya?
  • Apa sumber dari data kita?
  • Apakah label berkaitan erat dengan keputusan yang akan diambil?

Ketika kita sudah menemukan sumber-sumber data yang potensial untuk dijadikan dataset, maka kita harus menentukan bentuk dari data yang akan dijadikan model. Design bentuk data yang dibutuhkan untuk membentuk model sebagai contoh seperti berikut:

Contoh design bentuk data untuk input

Setelah mengetahui bentukan data yang akan digunakan oleh model, sekarang diperlukan untuk menentukan bagaimana data dibentuk. Untuk mendapatkan model data yang diinginkan biasanya terdapat pipeline yang harus dilewati, proses pada pipeline tersebut seberapa mungkinkah berhasil, apakah akan terlalu lama, ataukah data yang kita harapkan tidak dapat dihasilkan, jika sulit untuk dihasilkan maka lebih baik dibuang.

Kemudian tentukan input yang paling mudah didapatkan. Pilih 1–3 input yang paling mudah didapatkan dari data yang dibutuhkan, agar dapat gdiunakan metode heuristik atau machine learning sederhana untuk menjadi baseline model.

Untuk setiap model yang akan dibuat harus dipertimbangkanmengenai kemampuan untuk belajar dari model. Catat beberapa masalah yang mungkin muncul dalam pembelajaran:

  • Kurang cukup data yang berlabel positif
  • Kurang cukup contoh data yang digunakan
  • Label terlalu noisy
  • Sistem mengingat training data, tapi tidak bisa meng-generalisasi kasus

Dari sekian banyak data yang menjadi bahan pembelajaran, pasti selalu ada bias didalamnya. Karena hal tersebut penting untuk berpikir tentang potensial bias sebelum melakukan proses machine learning.

Propose the Solutions

Berdasarkan permasalahan yang sudah didefinisikan tentukan model apa yang akan digunakan, hasil dari solusi yang diajukan bisa banyak, namun bisa dipilih salah satu dari yang paling sederhana dan paling general.

Construct the Datasets

Langkah untuk mengkonstruksikan data adalah:

  1. Koleksi raw data, dari seluruh sumber data yang potensial kumpulkan sebanyak mungkin.
  2. Identifikasi fitur-fitur yang berguna dan sumber yang berlabel, pilah antara data yang berlabel dan tanpa label serta pilih fitur mana yang diperlukan dan mana yang tidak diperlukan.
  3. Pilih strategi sampling, strategi sampling diperlukan agar komposisi data pada proses machine learning tidak terlalu berat sebelah misalkan jumlah dataset label positif jauh lebih banyak dari dataset label negatif. Strategi sampling juga digunakan untuk memastikan bahwa semua kasus yang menjadi cakupan machine learning memiliki perwakilan yang seimbang.
  4. Split data, split data pada proses machine learning berguna sebagai salah satu strategi dalam membuat model yang menghindari overfit termasuk didalamnya dengan menggunakan cross validation. Data yang dimiliki akan displit ke dalam dua golongan yaitu training data dan testing data. Training data adalah data yang digunakan untuk membentuk model dan biasanya digunakan cross validation untuk menghindari underfitting, komposisi dari training data biasanya antara 80 hingga 90%. Sisanya akan dikelompokkan sebagai testing data, yaitu data yang digunakan untuk menguji akurasi dari model yang dibentuk, data ini tidak boleh sama sekali disentuh saat proses pembelajaran.

Transforming the Data

Feature Engineering adalah proses memilih fitur yang akan digunakan dan menghasilkan fitur tersebut dari raw data. Pada bagian ini adalah bagian untuk menghasilkan fitur dari raw data.

Ada 2 alasan mentransformasikan data:

  1. Mandatory Transformation, wajib ditransformasi agar data dapat digunakan contohnya mengubah data dari non-numeric ke numeric. Misal dari umur yang isinya ordinal dibagi jadi kategori anak-anak, remaja, dewasa, lansia.
  2. Optional Quality Transformation, tidak wajib untuk transformasi namun jika dilakukan kualitas model jadi lebih bagus. Contohnya: Tokenisasi, Normalisasi nilai, dll.

Train a Model

Pada proses training model gunakan tools yang tepat sesuai dengan jenis algoritma dan data yang digunakan. Penggunaan tools yang tepat akan mempercepat proses dalam pembuatan model machine learning. Tidak perlu lagi membuat hal yang baru dari nol karena sudah banyak tools yang dapat digunakan. Ada beberapa tools yang sering digunakan pada pembuatan model:

  1. Pandas, untuk membaca data dari CSV atau Excel
  2. Numpy, untuk melakukan perhitungan matematis dan menyusun struktur dataset
  3. Scikit-Learn, untuk melakukan proses machine learning, ini adalah library yang berisi banyak sekali algoritma machine learning dasar
  4. Matplotlib, untuk melakukan plotting menjadi grafik
  5. Seaborn, untuk melakukan visualisasi ketika melakukan eksplorasi data
  6. Nlptk, adalah toolkit untuk pemrosesan natural language (teks, dokumen, speech, dll)
  7. Tensorflow untuk melakukan Deep Learning
  8. OpenCV atau Scikit-Image untuk melakukan pemrosesan dan manipulasi gambar (image processing)
  9. Dan banyak lagi lainnya.

Use the Model to Make Predictions

Untuk membuat prediksi dengan model machine learning pertama kali yang harus dilakukan adalah menyesuaikan struktur data yang digunakan agar sama sesuai dengan struktur yang diharapkan.

--

--

Heri Fauzan
Artikel5Menit

Cloud Solutions Architect, AWS Azure GCP and Kubernetes Certified