Tipe-tipe Algoritma Machine Learning, Mana yang Harus Digunakan?

Di tulisan sebelumnya, untuk melakukan klasifikasi Iris digunakan algoritma Machine Learning K-Nearest-Neighbors (KNN). Sebenarnya ada algoritma apa saja di dunia per-ML-an selain KNN? Kenapa untuk klasifikasi sebelumnya saya memilih menggunakan KNN?

Secara garis besar ada tiga tipe algoritma utama Machine Learning (atau setidaknya yang saya pelajari):

  • Supervised Learning
  • Unsupervised Learning
  • Reinforcement Learning

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 kasus di tulisan sebelumnya di sini. 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

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 Random Forest

4. K-Nearest Neighbors (KNN)
Seperti telah sedikit disinggung di tulisan sebelumnya, KNN pada prinsipnya akan mengklasifikasikan data baru ke kelas tertentu berdasarkan jarak data baru tersebut dengan k data terdekat.

Ilustrasi klasifikasi dengan KNN

5. Support Vector Machine (SVM)
Algoritma ini pada dasarnya dapat digunakan untuk melakukan pengelompokan pada algoritma multidimensi. SVM mengelompokkan data menggunakan apa yang disebut sebagai hyperplane (classifier/pemisah).

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?

Ilustrasi Regresi Linier

9. K-Means Clustering
Seperti namanya, algoritma ini biasa digunakan untuk kasus clustering. Cara kerja algoritma ini mula-mula adalah dengan membentuk sejumlah k titik, yang disebut dengan centroid (dimana nilai k merepresentasikan jumlah cluster). Kemudian titik-titik data (data points) yang ada akan membentuk cluster dengan centroid terdekat darinya. Otomatis, titik pusat (centroid) akan berubah seiring dengan pertambahan anggota tiap cluster-nya (yang mana adalah datapoints tadi). Oleh karena itu, tiap-tiap cluster yang telah terbentuk akan ‘mencari’ titik centroid barunya. Proses ini terus menerus dilakukan hingga diperoleh kondisi konvergensi, contohnya jika posisi centroid sudah tidak berubah.

10. Hierarchical Clustering
Secara prinsip, hierarchical clustering ini akan melakukan clustering secara berjenjang berdasarkan kemiripan tiap data. Sehingga pada akhirnya, pada ujung hierarki akan terbentuk cluster-cluster yang karakteristiknya berbeda satu sama lain, dan objek di satu cluster yang sama memiliki kemiripan satu sama lain.

Ilustrasi Hierarchical Clustering

11. Association Rules
Prinsip algoritma ini dalam melakukan tugasnya adalah dengan menemukan probabilitas hubungan asosiasi antar data

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. Tetapi semoga gambaran garis besar algoritma-algoritma ML ini bisa membantu pembaca dalam menentukan tipe algoritma mana yang harus dipakai ketika menyelesaikan suatu masalah.

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.

References:

[1] Analytics Vidhya
[2] Toward Data Science
[3] proft.me
[4] Saedsayad
[5] Samet Girgin
[6] scikit-learn
[7] Tim Bock Displayr
[8] Mark Labbe

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store