Cara Memilih Algoritma Machine Learning
Cara Memilih Algoritma Machine Learning
Tipe Algorithms
Secara garis besar ada empat tipe algoritma utama Machine Learning (atau setidaknya yang saya
pelajari):
1. Supervised Learning
2. Unsupervised Learning
3. Semi- Supervised Learning
4. Reinforcement Learning
Berikut ilustrasinya:
Supervised Learning
Supervised Learning adalah algoritma machine learning yang dalam proses belajarnya
membutuhkan serangkaian contoh input-output yang benar, sebagai supervisor
(pengawas/pelatih).
Contoh kasus yang dapat menerapkan algoritma ini adalah Pada kasus Iris classification, kita
memiliki sejumlah dataset sampel input berupa data panjang dan lebar sepal dan petal. Masing-
masing sampel tersebut sudah memiliki output yang benar (memiliki label). Serangkaian sampel
input-output ini kemudian digunakan untuk menge-train (melatih) algoritma kita, agar kelak
dapat menghasilkan output (label) yang sesuai ketika diberikan masukan data baru.
Algoritma Supervised Learning ini sendiri juga dibagi lagi menjadi beberapa jenis algoritma
tergantung dari task/tujuan dibentuknya algoritma, antara lain:
Klasifikasi: Logistik Regression, Decision Trees, Random Forest, KNN, SVM, Neural Networks,
Naïve Bayes, dll
Prediksi Numerik/Regresi: Linear Regression, Decision Trees, Neural Networks, SVM, Trees, dll
Unsupervised Learning
Unsupervised learning adalah algoritma machine learning yang dalam proses belajarnya,
algoritma hanya diberikan sejumlah sampel masukan tanpa label (output yang benar). Sehingga
pada algoritma ini, tidak ada supervisor/pelatih yang membantu dalam menentukan apakah
kinerja dan output yang dihasilkan benar atau salah.
Contoh penggunaan algoritma ini adalah untuk segmentasi pasar. Misalkan suatu perusahaan X
memiliki data usia, gender, pekerjaan, tempat tinggal, frekuensi pembelian, dan kuantitas
pembelian dari pembeli produknya selama dua tahun terakhir. Data ini bisa digunakan oleh
perusahaan X untuk melakukan segmentasi pasar berdasarkan data-data tadi. Dengan algoritma
Unsupervised Learning, kita tidak perlu men-declare atau menetapkan ‘label’ atau ‘output yang
benar’. Kita tidak perlu melabeli pembeli dengan usia, gender, dan kriteria tertentu ke dalam
kelompok tertentu. Kita tidak perlu menentukan jumlah kelas/kelompok dan kriteria tiap
kelompok. Di sini algoritma machine learning akan melihat dan mempelajari pola-pola dari
karakteristik tiap data yang ada dan melakukan pengelompokan pembeli secara mandiri.
Untuk macam-macam algoritma unsupervised sendiri antara lain berdasarkan task/tujuan
algoritmanya:
Klustering: K-Means Clustering, Hierarchical Clustering
Association: Association Rules
Semi-Supervised Learning
Dalam praktiknya, tidak semua data memiliki data input dan output yang jumlahnya sama.
Terkadang ada kumpulan data yang memiliki variabel input, namun variabel outputnya hanya
ada sebagian. Untuk menyelesaikan kasus seperti ini, kita bisa menggunakan algoritma semi
supervised learning. Algoritma ini berada di tengah-tengah antara algoritma supervised dan
unsupervised learning. Cara kerja algoritma ini adalah dengan menggunakan teknik unsupervised
learning untuk menemukan dan mempelajari struktur dalam variabel input. Setelah itu, sistem
akan menggunakan algoritma supervised learning untuk membuat prediksi terbaik dari data tak
berlabel dan memasukkan kembali data tersebut ke algoritma supervised learning sebagai data
latih lalu menggunakan model tersebut untuk membuat prediksi baru dari data input baru.
Saya menemukan banyak sekali “kisah sukses” semi-supervised clustering dalam menyelesaikan
berbagai permasalahan di dunia nyata yang bersesuaian. Namun demikian, saya menemukan
banyak studi yang melaporkan kegagalan semi-supervised classification ketimbang
kesuksesannya.
Reinforcement Learning
Satu model dalam machine learning yang kekinian adalah Reinforcement Learning. Pada
reinforcement learning, terdapat dua komponen utama yaitu agent dan environment. Di
algoritma pembelajaran ini, agent ‘dipaksa’ untuk dengan sendirinya mempelajari bagaimana ia
harus bertindak menghadapi environment-nya untuk mencapai tujuannya. Di sini tidak ada
kumpulan dataset yang diberikan seperti pada Supervised Learning dan Unsupervised Learning.
Contohnya misal kita hendak membuat sebuah
machine yang dapat bermain catur melawan
Magnus Carlsen, sang Juara Catur Dunia. Tujuan
dari machine ini adalah memenangkan
pertandingan. Dengan Reinforcement Learning,
machine bertindak sebagai agent. Bagaimana cara
bermain catur, aturan mainnya, dan trik yang biasa
digunakan Magnus Carlsen adalah environment,
yang tentunya harus ia pelajari sendiri. Sehingga
dalam kasus ini, si machine pokoknya harus bisa
belajar dengan sendirinya meraba-raba
environment yang ada biar menang. Titik.
Dalam proses belajarnya sendiri ia akan belajar dari pengalaman-pengalaman yang ia peroleh
ketika bermain (tanpa kita ajarkan). Misalkan pengalaman ketika ia mendapatkan skak dari lawan
ataupun pengalaman ketika ia berhasil memakan benteng lawan. Dari pengalaman-pengalaman
ini, ia dipaksa belajar untuk memahami apa yang harus dan tidak boleh ia lakukan dalam
menghadapi lawan dan membuat strateginya sendiri agar menang.
Setelah mengetahui garis besar tipe algoritma-algoritma machine learning secara umum, berikut
ini sedikit penjelasan terkait contoh-contoh dari algoritma yang telah disebutkan di atas.
1. Logistic Regression
Algoritma ini biasa digunakan untuk menghitung nilai probabilitas, sehingga output yang
dihasilkan berada antara nilai 0 hingga 1. Contoh penggunaannya adalah proses pengajuan kredit
di bank. Biasanya pihak bank akan mengajukan sejumlah pertanyaan/kuisioner untuk menilai
kelayakan calon penerima kredit. Dari beberapa pertanyaan itulah nantinya pihak bank akan
memperhitungkan probabilitas calon penerima kredit akan mengembalikan pinjaman atau tidak.
2. Decision Trees
Algoritma jenis ini melakukan tugasnya dengan menggunakan konsep struktur flowchart
bercabang menggunakan decision rules atau aturan-aturan keputusan yang dibuat oleh
desainernya.
Ilustrasi Decision Tree dalam Klasifikasi (kiri) dan Decision Tree dalam Prediksi Numerik (kanan)
3. Random Forest
Random Forest merupakan kumpulan dari sejumlah Decision Tree. Oleh karena itu, prinsip dasar
random forest mirip dengan decision tree. Masing-masing decision tree akan menghasilkan
output (hasil) yang bisa saja berbeda-beda. Nah, random forest ini akan melakukan voting untuk
menentukan hasil mayoritas dari semua decision tree.
Bedanya, random forest akan memberikan output berupa mayoritas hasil dari semua decision
tree. Pusing ya? Mungkin bisa dilihat di ilustrasinya biar lebih jelas.
Ilustrasi SVM
6. Neural Network
Algoritma jenis ini terinspirasi dari cara kerja jaringan saraf manusia. Oleh karena itu, arsitektur
dari algoritma ini mirip dengannya. Secara garis besar, di algoritma ini tiap data pada suatu
“layer” akan diolah dan diteruskan ke “layer” berikutnya hingga ke layer terakhir (layer output).
7. Naive Bayes
Algoritma ini menggunaan prinsip teorema Bayes. Sehingga pada proses pengolahan data,
masing-masing feature (feature itu semacam parameter, dalam kasus klasifikasi Iris, features-nya
antara lain adalah panjang dan lebar sepal dan petal) dianggap independen atau tidak terkait
satu sama lain.
8. Linear Regression
Sebagai ilustrasi, pada grafik dua dimensi, algoritma ini melakukan task prediksi suatu nilai
variabel dependent di sumbu y berdasarkan variabel independent di sumbu x. Pusing ya?
Yaaaaa, itu tadi beberapa algoritma machine learning yang cukup sering digunakan
(atau setidaknya yang saya pelajari haha). Tentunya masih banyak lagi algoritma-
algoritma lainnya yang belum disebutkan.
Algoritma yang dipakai tentunya disesuaikan dengan tujuan pemakaiannya. Bisa
jadi suatu masalah dapat diselesaikan tidak hanya dengan satu algoritma saja.
Semua algoritma memiliki kelemahan dan kelebihannya masing-masing. Oleh
karena itu, kita dapat memilah-milah atau mengkombinasikan beberapa algoritma
dalam menyelesaikan masalah untuk memperoleh hasil yang maksimal.
1. Jenis kasus/masalah
Hal pertama yang harus diperhatikan dalam memilih algoritma machine learning adalah kita
harus paham masalah apa yang akan diselesaikan. Ada beberapa jenis masalah yang dapat
diselesaikan dengan machine learning, seperti regresi, klasifikasi, clustering, anomaly detection,
recommender, text analytic, dan image classification.
Setelah mengetahui masalahnya, barulah kita memilih opsi algoritma apa saja yang mungkin
dapat digunakan untuk menyelesaikan masalah tersebut dan mengeliminasi algoritma yang tidak
mungkin digunakan. Misalnya saat kita akan mengerjakan permasalahan klasifikasi, kita bisa
mengeliminasi Linear Regression dari pilihan karena algoritma Linear Regression hanya dapat
dipakai untuk menyelesaikan masalah regresi.
3. Akurasi
Akurasi dalam machine learning merupakan ukuran keefektifan sebuah model sebagai proporsi
dari hasil yang benar atau sesuai dari total data yang ada. Namun kebutuhan skor akurasi sendiri
berbeda tergantung pada kasusnya. Terkadang kita hanya membutuhkan metode perkiraan
untuk mengurangi waktu proses dan menghindari overfitting.
Untuk mengetahui algoritma yang terbaik, Anda dapat membandingkan nilai akurasi dari model-
model yang menggunakan algoritma berbeda, namun menggunakan dataset yang sama.
5. Jumlah parameter
Parameter-parameter yang digunakan pada algoritma machine learning berperan penting dalam
membangun model machine learning yang baik. Parameter mempengaruhi bagaimana algoritma
tersebut akan bekerja, seperti menoleransi kesalahan, jumlah iterasi, atau berbagai pilihan
lainnya. Oleh karena itu, kombinasi dari parameter-parameter yang bisa digunakan juga perlu
dipertimbangkan untuk memilih algoritma machine learning yang baik.
6. Jumlah fitur
Di dalam machine learning, fitur merupakan variabel yang ingin dianalisis. Untuk beberapa jenis
data tertentu, jumlah fitur bisa sangat besar dibandingkan dengan jumlah datanya, misalnya
pada jenis data genetik dan data tekstual. Banyaknya jumlah fitur dapat memperlambat proses
training beberapa algoritma. Support Vector Machine (SVM) merupakan salah satu algoritma
yang cocok untuk jenis kasus seperti ini.
Mungkin segitu dulu tipsnya, beberapa informasi seperti algoritma SVM belum masuk kedalam
tipe algoritma diatas karena pemanfaatannya bisa beradaptasi dalam keluarga regresi dan
klasifikasi. Gambar dibawah ini menunjukan bahwa SVM masuk kedalam keluarga dari liniear
regression dan classification, yang mana akhir-akhir ini sudah ada development untuk
penggunaan nonlinear classification dengan memanfaatkan kernel tricks. Semoga mencerahkan..