Apa itu machine learning?
Namun sebelum kita membahas lebih jauh, mari kita pahami terlebih dahulu apa itu model.
Apa Itu Model?
Sederhananya, model merupakan sebuah formula.
Contoh:
kecepatan = jarak / waktu
Formula di atas adalah model yang menghitung kecepatan berdasarkan jarak dan waktu. Sering melihatnya bukan?
Apa Itu Machine Learning?
Jadi apa itu machine learning?
Machine learning adalah sebuah cabang dari kecerdasan buatan (artificial intelligence) yang memungkinkan komputer untuk belajar dari data tanpa harus diprogram secara eksplisit. Dengan kata lain, machine learning memungkinkan komputer untuk belajar dari data yang dimasukkan ke dalamnya.
Jika penjelasan di atas terlalu teoritis, ingatlah ini:
Machine learning adalah mesin yang berusaha membuat formula.
Dalam machine learning, terdapat dua istilah:
- Feature: variabel yang digunakan untuk membuat prediksi.
- Target: variabel yang ingin diprediksi.
Contohnya seperti ini:
Price = 0.3 + 1.5 * Area + 0.7 No. Rooms + 1.2 No. Floors
Dalam formula di atas, Area
, No. Rooms
dan No. Floors
merupakan feature, sedangkan Price
merupakan target.
Dan beberapa angka yang ada di dalam formula tersebut disebut dengan weight. Machine learning berusaha menemukan weight yang paling tepat untuk membuat prediksi yang akurat.
Cara Kerja Machine Learning
Machine learning akan membentuk pola dari data yang diberikan. Misalnya, jika kita melatih model untuk memprediksi harga rumah, data latih mungkin mencakup informasi seperti ukuran rumah, jumlah kamar, lokasi (feature) dan harga rumah (target).
Dari data latih, model akan mencari weight yang paling tepat sehingga mendapatkan minimum error berdasarkan pengujian. Nilai error minimum ini yang kita pilih sebagai model terbaik.
Model terbaik kemudian kita gunakan untuk memprediksi harga rumah berdasarkan feature baru yang diberikan.
Kedudukan Machine Learning dalam AI
Lihat gambar di atas? menarik bukan.
Ternyata machine learning hanyalah sebagian kecil dari AI. Singkatnya AI adalah umbrella yang mencakup machine learning dan deep learning.
Jenis Machine Learning
Terdapat tiga jenis machine learning:
Supervised Learning
Pada supervised learning, model belajar dari data yang sudah dilabeli. Artinya, model belajar dari data yang sudah memiliki target.
Contohnya:
- Prediksi harga rumah berdasarkan luas dan jumlah kamar.
- Prediksi apakah email itu spam atau bukan.
Tujuan dari supervised learning yaitu membuat model yang bisa memprediksi target dari feature yang diberikan.
Terdapat dua jenis supervised learning:
- Regression: jika target merupakan nilai kontinu.
- Classification: jika target merupakan kategori.
Maksudnya apa?
Misalnya, jika kita ingin memprediksi harga rumah, maka kita menggunakan regression, karena harga rumah merupakan nilai kontinu.
Namun jika kita ingin memprediksi apakah email itu spam atau bukan, maka kita menggunakan classification, karena email spam merupakan data kategorikal.
Unsupervised Learning
Pada unsupervised learning, model belajar dari data yang tidak dilabeli. Artinya, model belajar dari data yang tidak memiliki target.
Contohnya:
- Segmentasi pelanggan berdasarkan perilaku.
- Guru meminta murid untuk membuat kelompok yang terdiri dari 5 orang.
Tujuan dari unsupervised learning yaitu mencari pattern yang tersembunyi dalam data.
Reinforcement Learning
Pada reinforcement learning, model belajar dari interaksi dengan lingkungan. Artinya, model belajar dari reward dan punishment.
Contohnya:
- Mobil belajar mengemudi.
- Game AI belajar bermain game.
- Robot belajar berjalan.
Jadi, reinforcement learning akan belajar dari trial and error.
Machine Learning Workflow
Untuk membuat model machine learning, tidak serta-merta kita langsung membuat model. Ada beberapa tahapan yang harus dilalui:
Bussiness Understanding
Pahami terlebih dahulu apa yang ingin dicapai. Pelajari bisnisnya, pelajari data yang ada, dan pelajari apa yang ingin dicapai.
Contohnya:
Prediksi penjualan ecommerce berdasarkan data penjualan sebelumnya. Maka kita harus pahami bisnisnya, pelajari data penjualan sebelumnya, dan pelajari apa yang ingin dicapai.
Analytic Approach
Pilih pendekatan yang akan digunakan. Apakah supervised learning, unsupervised learning, atau reinforcement learning. Pilih juga algoritma yang akan digunakan untuk membuat model.
Data Requirements
Pahami data yang dibutuhkan:
- Apakah data yang kita miliki sudah cukup?
- Apakah data yang kita miliki sudah bersih?
- Apakah data yang kita miliki sudah siap digunakan?
Data Collection
Kumpulkan data yang dibutuhkan. Data bisa berasal dari berbagai sumber, seperti database, file, atau API. Pastikan data yang dikumpulkan sudah sesuai dengan data yang dibutuhkan. Jika data yang dibutuhkan belum ada, maka kita harus membuatnya terlebih dahulu.
Pembuatan data ini biasa disebut feature engineering.
Data Understanding
Pahami data yang sudah dikumpulkan. Apakah data tersebut sudah bersih? Apakah data tersebut sudah siap digunakan untuk membuat model?
Data Preparation
Siapkan data yang sudah dikumpulkan. Data yang sudah dikumpulkan mungkin belum siap digunakan. Data mungkin perlu di cleaning, transforming, atau scaling.
Data yang sudah siap ini biasa disebut feature matrix dan target vector.
Modeling
Pembuatan model dimulai dari data yang sudah siap. Model yang dibuat harus bisa memprediksi target dari feature yang diberikan. Dalam beberapa algoritma, tidak semua feature bisa digunakan. Maka kita harus memilih feature yang paling berpengaruh.
Apa yang terjadi jika terlalu banyak feature?
Hal ini biasa disebut overfitting. Overfitting merupakan kondisi dimana model terlalu belajar dari data latih, sehingga tidak bisa memprediksi data uji dengan baik. Singkatnya, model ini menghafal, bukan belajar.
Lalu apa yang terjadi jika terlalu sedikit feature?
Hal ini biasa disebut underfitting. Underfitting merupakan kondisi dimana model terlalu sederhana, sehingga tidak bisa memprediksi data uji dengan baik. Singkatnya, model ini terlalu generalisasi.
Evaluation
Model yang sudah dibuat harus dievaluasi untuk mengetahui seberapa baik model tersebut dalam memprediksi target dari feature yang diberikan.
Evaluasi model biasanya menggunakan metric yang sesuai dengan jenis model yang dibuat. Misalnya, jika model yang dibuat adalah regression, maka kita bisa menggunakan metric seperti mean squared error atau mean absolute error.
Deployment
Model yang sudah dievaluasi bisa di deploy ke environment production. Model yang sudah di deploy bisa digunakan untuk memprediksi target dari feature yang diberikan. Delivery model bisa dilakukan dengan berbagai cara, seperti API, web app, atau mobile app.
Feedback
Model yang sudah di deploy bisa jadi tidak akurat jika data yang digunakan berubah. Maka model harus terus dimonitor dan diperbarui jika diperlukan. Inilah mengapa machine learning adalah iterative process, karena model harus terus diperbarui dari data yang telah ada.
Kesimpulan
Jadi, machine learning adalah sebuah cabang dari kecerdasan buatan (artificial intelligence) yang memungkinkan komputer untuk belajar dari data tanpa harus diprogram secara eksplisit. Dalam machine learning, terdapat tiga jenis machine learning: supervised learning, unsupervised learning, dan reinforcement learning.
Untuk membuat model machine learning, kita harus melewati beberapa tahapan, seperti bussiness understanding, analytic approach, data requirements, data collection, data understanding, data preparation, modeling, evaluation, deployment, dan feedback.