Proyek Machine Learning dari Hulu ke Hilir (End-to-End) – Part 1: Pendahuluan

Blog Banner End To End Machine Learning With Python

“Machine learning is the field of study that gives computers the ability to learn without being explicitly programmed.”

~ Arthur Samuel

 

“A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance T, as measured by P, improves with experience E.”

~ Tom Mitchell

1. Pendahuluan

hakim-azizul.com – Di postingan kali ini, kita posisikan diri kita sebagai data scientist yang baru di-hire oleh perusahaan real estate, di USA pula, wow!

Kita akan menggunakan dataset California Housing Prices (harga hunian di California) yang bersumber dari StatLib repository. Dataset ini berdasarkan dari data sensus 1990 di California. Memang datanya sudah lama, tapi cukup relevan untuk keperluan belajar kita saat ini.

Sebagai well-organized data scientist, sebelum memulai pekerjaan, hal pertama yang perlu kita lakukan adalah membuat/mengecek daftar checklist machine learning project kita. Daftar tersebut dapat diterapkan dengan sangat baik untuk kebanyakan proyek machine learning.

Berikut ini adalah delapan checklist yang dapat dijadikan panduan dalam mengerjakan proyek machine learning:

  1. Rumuskan masalah, dan lihat gambaran besarnya.
  2. Peroleh data.
  3. Eksplorasi data untuk mendapatkan insights.
  4. Menyiapkan data (data preparation) agar siap ditemukan pola yang mendasari (underlying patterns) menggunakan algoritma-algoritma machine learning.
  5. Eksplorasi model-model berbeda, lalu kumpulkan model-model yang memiliki performa terbaik.
  6. Setel dengan seksama (fine-tune) model-model machine learning tersebut dan kombinasikan hingga tercapai solusi terbaik.
  7. Presentasikan hasilnya.
  8. Launch, monitor, dan maintain sistem yang telah anda buat.

Secara umum, list tersebut serupa dengan metodologi ilmiah, ya?

data science machine learning introduction pendahuluan

Data Science/Machine Learning dapat Membantu Manusia untuk Belajar dengan Lebih Baik. Sumber Gambar: Geron A. (2017),
Hands-On Machine Learning with Scikit-Learn and Tensorflow, O’Reilly Media.

 

2. Melihat Gambaran Besar (Look at the Big Picture)

Tugas kita sebagai data scientis di sini adalah untuk membuat model machine learning yang telah belajar/dilatih menggunakan data sensus housing price di California tersebut, lalu diharuskan untuk mampu memprediksi median harga tempat tinggal (housing) di distrik manapun, dengan metrik-metrik yang telah diberikan.

Contoh metrik-metrik tersebut antara lain, populasi, median income (median pendapatan), median housing price (median harga hunian), dll untuk setiap kelompok blok atau distrik di California. Distrik adalah satuan geografis terkecil untuk data yang dipublikasikan oleh Biro Sensus US. Setiap kelompok blok atau distrik memiliki populasi sekitar 600 hingga 3000 orang.

2.1. Merumuskan Masalah (Frame the Problem)

Pertanyaan pertama yang perlu diajukan ke Bos anda adalah, apakah tujuan bisnisnya (business objective); karena membuat model machine learning belum tentu merupakan tujuan akhir dari proyek. Manfaat apakah yang diharapkan perusahaan dari model ini? Pertanyaan ini penting, karena menentukan bagaimana kita akan merumuskan masalah, menentukan algoritma yang akan dipakai, metode pengukur performa yang digunakan untuk mengevaluasi model machine learning, serta sebanyak (dan selama) apakah effort yang akan dikerahkan dalam pengerjaan proyek ini.

end to end machine learning project

Machine Learning Pipeline untuk Investasi Real Estate. Sumber Gambar: Geron A. (2017),
Hands-On Machine Learning with Scikit-Learn and Tensorflow, O’Reilly Media.

Dengan segala informasi yang telah kita peroleh, sekarang kita telah siap untuk mulai mendesain sistem kita. Pertama, kita golongkan dahulu, apakah problem yang kita hadapi itu termasuk supervised, unsupervised, atau Reinforcement Learning? Apakah tergolong sebagai permasalahan yang dapat diselesaikan dengan regresi, klasifikasi, atau yang lainnya? Haruskah kita menggunakan batch learning, atau online learning? Sebelum kita memulai pekerjaan, berhentilah sejenak, dan cobalah menjawab pertanyaan-pertanyaan tersebut terlebih dahulu.

Setelah kita melihat datanya, kita dapat menyimpulkan bahwa problem yang kita hadapi tergolong problem yang dapat diselesaikan dengan supervised learning, karena kita mempunyai sampel data yang telah terlabeli (setiap sampel telah memiliki output/target yang jelas, yaitu median house price di distrik tersebut). Lebih lanjut lagi, problem ini termasuk tipikal contoh problem regresi, karena kita ditugaskan untuk memprediksi suatu nilai (memprediksi median house price). Lebih spesifik lagi, ini tergolong sebagai problem regresi multivariat (multivariate regression), karena untuk memprediksi satu nilai, kita melibatkan banyak variabel/feature (populasi distrik, median income, dll).

Untuk problem ini, kita tidak memerlukan batch learning pada beberapa server,maupun online learning, karena tidak ada aliran data kontinu dari sistem, juga tidak adanya kebutuhan untuk mengubah/meng-adjust data dengan cepat, serta datanya cukup kecil untuk diolah di memory local, sehingga batch learning biasa (plain batch learning) sudah mencukupi.

 

2.2. Menentukan Pengukur Performa Model (Select a Performance Measure)

Langkah selanjutnya adalah menentukan pengukur performa (performance measure). Pada postingan kali ini kita akan membahas dua diantaranya, yaitu RMSE dan MAE.

2.2.1. Root Mean Square Error (RMSE)

Performance measure yang umum digunakan untuk problem regresi adalah Root Mean Square Error (RMSE)-jika dialihbahasakan secara kasar ke bahasa Indonesia menjadi: akar pangkat dua dari rata-rata kuadrat kesalahan. Atau secara lebih singkat dikenal dengan deviasi standar dari kesalahan yang dibuat oleh sistem dalam memprediksi suatu nilai.

Rumus matematis dari RMSE, dituliskan sebagai berikut:

root mean square error

 

2.2.2. Mean Absolute Error (MAE)

Biarpun RMSE lebih umum digunakan untuk mengukur performa model regresi, pada konteks tertentu, kita juga memerlukan metode pengukuran lain. Sebagai contoh, untuk kasus yang memiliki banyak outlier (data/nilai pencilan), kita dapat menerapkan Mean Absolute Error atau MAE (terjemahan kasarnya: Rata-rata dari nilai mutlak kesalahan).

mean absolute error

Pada dasarnya, RMSE dan MAE adalah cara untuk mengukur jarak diantara dua vektor: yaitu vektor prediksi, dan vektor nilai target.

 

2.3. Menguji Asumsi (Check the Assumptions)

Langkah terakhir sebelum kita memulai pekerjaan kita adalah menguji asumsi yang telah kita buat (baik asumsi kita sendiri, maupun asumsi orang lain). Dengan menguji asumsi, memungkinkan kita untuk lebih dini menemukan suatu permasalahan serius.

Sebagai contoh untuk kasus kita di atas, kita mengasumsikan bahwa output prediksi harga housing pada suatu distrik yang dihasilkan oleh sistem yang kita buat akan diintegrasikan dengan machine learning system yang pernah dibuat sebelumnya maupun yang akan kita buat nantinya (downstream system), dan kita juga mengasumsikan bahwa output harga tersebutlah yang akan menjadi tujuan proyek kita.

Namun, bagaimana jika ternyata sistem yang telah ada, maupun sistem yang diharapkan oleh user adalah, sistem yang akan mengkonversikan hasil prediksi kita menjadi kategori (contohnya, “murah”, “medium”, dan “mahal”) dan user akan menggunakan kategori tersebut, bukannya menggunakan prediksi nilai yang telah kita buat?

Jika kasusnya demikian, memprediksi harga dengan tepat menjadi tidak penting sama sekali; karena sistem yang dibutuhkan untuk menggolongkan harga menjadi kategori yang tepat. Jika demikian, problem yang kita hadapi menjadi problem klasifikasi, bukan problem regresi seperti yang telah kita asumsikan/tentukan sebelumnya. Tentu saja kita tidak menginginkan hal ini terjadi setelah berbulan-bulan menjalankan projek regresi kita, bukan?

Dengan demikian, kita dapat bertanya kembali pada user/bos kita, kita konfirmasi kembali, kita uji asumsi kita, apakah output/goal yang diharapkan user. Dan, ternyata kita beruntung, asumsi awal kita sesuai dengan keinginan user dan pembuat sistem machine learning sebelumnya, yaitu memprediksi harga housing pada suatu distrik dengan tepat. Sehingga dengan kepercayaan diri penuh, kita akan lanjut ke tahapan berikutnya! πŸ™‚

See you in the next part, enjoy machine learning! πŸ™‚

 

References & Further Reading

Geron A. (2017), Hands-On Machine Learning with Scikit-Learn and Tensorflow, O’Reilly Media.

Follow and like us:

1 tanggapan pada “Proyek Machine Learning dari Hulu ke Hilir (End-to-End) – Part 1: Pendahuluan”

  1. Pingback: Proyek Machine Learning dari Hulu ke Hilir (End-to-End) – Part 2: Mempersiapkan Environment dan Mengakses Data - hakim-azizul.com

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *