Problem Definition
Problem Definition atau definisi masalah merupakan langkah pertama dalam workflow Machine Learning.
Sebelum memilih algoritma, mengumpulkan dataset, atau menulis kode Python, kita harus terlebih dahulu memahami:
"Masalah apa yang sebenarnya ingin kita selesaikan?"
Pertanyaan ini terlihat sederhana, tetapi sangat penting.
Banyak proyek Machine Learning gagal bukan karena algoritmanya buruk, tetapi karena sejak awal masalah yang ingin diselesaikan tidak didefinisikan dengan jelas.
Secara sederhana:
Masalah
↓
Problem Definition
↓
Menentukan pendekatan
↓
Menentukan data
↓
Membangun model
Jadi, jangan mulai dari algoritma.
Mulailah dari masalah.
Mengapa Problem Definition Penting?
Bayangkan seseorang berkata:
"Saya ingin membuat Machine Learning."
Pernyataan tersebut belum menjelaskan apa pun tentang masalah yang akan diselesaikan.
Kita belum mengetahui:
- Apa tujuan model?
- Apa yang ingin diprediksi?
- Siapa pengguna model?
- Data apa yang tersedia?
- Apakah ada label?
- Apakah hasilnya berupa kategori atau angka?
- Apakah Machine Learning memang diperlukan?
Problem Definition membantu mengubah masalah yang masih umum menjadi masalah yang dapat diselesaikan secara sistematis.
Contohnya:
Masalah umum:
"Penjualan perusahaan menurun."
↓
Pertanyaan:
"Apakah kita dapat memprediksi penjualan bulan depan
berdasarkan data penjualan sebelumnya?"
Sekarang masalah tersebut sudah mulai dapat diterjemahkan menjadi masalah Machine Learning.
Pertanyaan Utama Problem Definition
Beberapa pertanyaan yang sebaiknya dijawab pada tahap ini:
- Apa masalah yang ingin diselesaikan?
- Apa tujuan dari sistem?
- Apakah Machine Learning diperlukan?
- Apakah kita memiliki data yang sesuai?
- Apa yang ingin diprediksi atau ditemukan?
- Apakah masalah termasuk supervised, unsupervised, transfer learning, atau reinforcement learning?
- Jika supervised learning, apakah masalahnya classification atau regression?
- Bagaimana hasil model akan digunakan?
Semakin jelas jawaban terhadap pertanyaan tersebut, semakin jelas pula arah proyek Machine Learning.
Kapan Tidak Menggunakan Machine Learning?
Hal yang sangat penting untuk dipahami:
Machine Learning bukan solusi untuk semua masalah.
Kadang-kadang masalah dapat diselesaikan menggunakan aturan sederhana.
Jika sebuah masalah dapat diselesaikan menggunakan:
ifelse- formula matematika,
- aturan bisnis,
- pencarian sederhana,
- database query,
- atau algoritma deterministik,
maka kita tidak selalu membutuhkan Machine Learning.
Contoh Masalah yang Tidak Membutuhkan Machine Learning
Misalnya sebuah toko memberikan diskon:
Jika total belanja >= Rp1.000.000
maka diskon = 10%
Jika total belanja < Rp1.000.000
maka diskon = 0%
Kita tidak membutuhkan Machine Learning.
Program sederhana sudah cukup:
total = 1_200_000
if total >= 1_000_000:
diskon = 0.10
else:
diskon = 0
print(diskon)
Aturan tersebut jelas dan mudah ditulis.
Tidak ada alasan kuat untuk menggunakan Machine Learning.
Contoh Masalah yang Cocok untuk Machine Learning
Sekarang bayangkan kita ingin menentukan apakah sebuah email merupakan spam.
Aturannya mungkin sangat kompleks.
Email spam dapat memiliki:
- kata-kata tertentu,
- pola tertentu,
- kombinasi kata,
- struktur kalimat,
- alamat pengirim,
- jumlah link,
- pola historis,
- dan karakteristik lainnya.
Menulis seluruh aturan secara manual akan menjadi sangat sulit.
Dalam kondisi seperti ini, Machine Learning dapat membantu.
Data email
↓
Label spam / bukan spam
↓
Machine Learning
↓
Model
↓
Prediksi email baru
Model mempelajari pola dari contoh yang tersedia.
Prinsip Sederhana Memilih Machine Learning
Kita dapat menggunakan pertanyaan sederhana:
"Apakah aturan untuk menyelesaikan masalah ini mudah ditulis secara manual?"
Jika jawabannya ya, sistem berbasis aturan mungkin sudah cukup.
Jika jawabannya tidak, Machine Learning mungkin menjadi salah satu pilihan.
Contohnya:
| Masalah | Pendekatan yang mungkin |
|---|---|
| Menghitung total harga | Program biasa |
| Menghitung pajak berdasarkan aturan tetap | Program biasa |
| Mengecek format email | Program biasa |
| Mendeteksi spam | Machine Learning |
| Memprediksi harga rumah | Machine Learning |
| Mengenali objek dalam gambar | Machine Learning |
| Memprediksi pelanggan berhenti berlangganan | Machine Learning |
Namun perlu diingat bahwa tabel tersebut bukan aturan mutlak.
Pemilihan teknologi tetap bergantung pada kebutuhan dan karakteristik masalah.
4 Tipe Utama Pendekatan Machine Learning
Setelah menentukan bahwa Machine Learning memang relevan, kita perlu menentukan jenis masalahnya.
Dalam pembahasan ini kita akan mengenal empat pendekatan:
- Supervised Learning
- Unsupervised Learning
- Transfer Learning
- Reinforcement Learning
Masing-masing memiliki cara belajar dan tujuan yang berbeda.
1️⃣ Supervised Learning
Supervised Learning adalah pendekatan Machine Learning ketika model belajar dari data yang memiliki label atau target.
Sederhananya:
Input
+
Label / Target
↓
Machine Learning
↓
Model
Model belajar hubungan antara input dan target.
Setelah belajar, model dapat digunakan untuk memprediksi target pada data baru.
Contoh Supervised Learning
Misalnya kita memiliki dataset harga rumah:
| Luas | Kamar | Lokasi | Harga |
|---|---|---|---|
| 100 | 3 | Kota A | 700 jt |
| 150 | 4 | Kota A | 950 jt |
| 200 | 5 | Kota B | 1,4 M |
Di sini:
Features:
Luas
Kamar
Lokasi
Target:
Harga
Karena kita mengetahui target dari data training, masalah tersebut termasuk Supervised Learning.
Dua Jenis Utama Supervised Learning
Supervised Learning biasanya dibagi menjadi:
Supervised Learning
│
├── Classification
│
└── Regression
Perbedaannya terletak pada jenis target yang ingin diprediksi.
✅ Classification
Classification digunakan ketika model harus memprediksi kategori.
Contoh:
Spam / Bukan Spam
Sakit / Tidak Sakit
Lulus / Tidak Lulus
Kucing / Anjing
Model tidak menghasilkan angka kontinu sebagai target utama, tetapi memilih kategori.
Binary Classification
Binary Classification adalah classification dengan hanya dua kategori.
Contoh:
Penyakit jantung:
Ya
Tidak
Contoh lain:
Email:
Spam
Bukan Spam
Secara sederhana:
Input
↓
Model
↓
Kategori A atau Kategori B
Contoh Binary Classification
Misalnya kita ingin memprediksi apakah seorang pasien memiliki penyakit jantung.
Dataset:
| Usia | Tekanan Darah | Kolesterol | Penyakit |
|---|---|---|---|
| 45 | 140 | 240 | Ya |
| 32 | 120 | 180 | Tidak |
| 61 | 150 | 270 | Ya |
Model mempelajari hubungan antara:
Usia
Tekanan Darah
Kolesterol
dengan:
Penyakit
Kemudian ketika diberikan pasien baru:
Usia = 50
Tekanan Darah = 145
Kolesterol = 250
model dapat menghasilkan:
Prediksi = Ya
Multiclass Classification
Multiclass Classification digunakan ketika terdapat lebih dari dua kategori.
Contohnya sistem ingin mengenali jenis anjing dari sebuah gambar.
Kategori:
Golden Retriever
Bulldog
Beagle
Poodle
Husky
Model harus memilih salah satu dari beberapa kategori.
Contoh lain:
Jenis kendaraan:
Mobil
Motor
Bus
Truk
Sepeda
Berbeda dengan binary classification:
Binary:
A / B
Multiclass:
A / B / C / D / ...
✅ Regression
Regression digunakan ketika target yang ingin diprediksi berupa nilai numerik kontinu.
Contoh:
- harga rumah,
- harga kendaraan,
- jumlah penjualan,
- suhu,
- pendapatan,
- permintaan produk.
Misalnya:
Input
↓
Data rumah
↓
Model
↓
Rp850.000.000
Output berupa angka.
Contoh Regression
Dataset:
| Luas | Kamar | Harga |
|---|---|---|
| 100 | 3 | 700 jt |
| 150 | 4 | 950 jt |
| 200 | 5 | 1,4 M |
Kita ingin memprediksi harga rumah baru.
Input:
Luas = 175 m²
Kamar = 4
Model dapat menghasilkan:
Prediksi = Rp1.100.000.000
Karena target berupa nilai numerik, masalah tersebut termasuk Regression.
📝 Classification vs Regression
Perbedaan utama:
| Classification | Regression |
|---|---|
| Memprediksi kategori | Memprediksi angka |
| Spam / bukan spam | Harga rumah |
| Sakit / tidak sakit | Suhu |
| Kucing / anjing | Pendapatan |
| Lulus / tidak lulus | Penjualan |
Cara mudah mengingat:
Classification → "Kategori apa?"
Regression → "Berapa nilainya?"
2️⃣ Unsupervised Learning
Berbeda dengan Supervised Learning, Unsupervised Learning bekerja dengan data yang tidak memiliki label target.
Sederhananya:
Data
↓
Machine Learning
↓
Mencari pola
↓
Kelompok / struktur / hubungan
Model mencoba menemukan pola dari data secara mandiri.
Contoh Unsupervised Learning
Misalnya sebuah perusahaan memiliki data pelanggan:
| Usia | Pendapatan | Pengeluaran |
|---|---|---|
| 22 | 4 jt | 3,5 jt |
| 25 | 4,5 jt | 3,8 jt |
| 45 | 15 jt | 5 jt |
| 48 | 17 jt | 5,5 jt |
Tidak terdapat kolom:
Kelompok Pelanggan
Kita dapat menggunakan Unsupervised Learning untuk menemukan kelompok pelanggan berdasarkan kemiripan karakteristik mereka.
Misalnya model menemukan:
Cluster 1
→ pelanggan muda dengan pengeluaran tinggi
Cluster 2
→ pelanggan dengan pendapatan tinggi
Cluster 3
→ pelanggan dengan pendapatan dan pengeluaran rendah
Kelompok tersebut ditemukan berdasarkan pola dalam data.