top of page
Gambar penulisCornellius Yudha Wijaya

7 Algoritma Klasifikasi untuk Machine Learning

Diperbarui: 2 Feb

Model machine learning adalah algoritma yang dirancang untuk mempelajari data dan membuat output yang memecahkan masalah manusia. Apa itu algoritma klasifikasi dalam machine learning, dan seberapa berguna setiap model dalam menyelesaikan masalah bisnis kita?


Apa Perbedaan Antara Supervised, Unsupervised, dan Reinforcement Learning?

Machine learning adalah bidang studi dimana manusia mencoba memberikan kemampuan kepada mesin untuk belajar dari data secara eksplisit. Mesin inilah yang kita sebut model machine learning dan yang kita gunakan untuk menyelesaikan masalah kita. Ada berbagai bentuk aplikasi machine learning di industri, misalnya: face recognition machine dan email spam detection adalah aplikasi model machine learning.


Mengetahui model machine learning mana yang harus diterapkan dalam setiap use case sangat penting karena tidak semua model dapat diaplikasikan untuk setiap use case. Model yang sesuai akan meningkatkan metrik model kita.


Machine learning adalah bidang yang luas dengan banyak istilah yang digunakan di dalamnya. Untuk memberikan pemahaman yang jelas tentang apa itu algoritma klasifikasi, pertama-tama kita perlu membahas tentang tiga sistem machine learning yang berbeda berdasarkan pengawasan manusia; Supervised, Unsupervised, dan Reinforcement Learning?

Supervised Learning

Supervised Learning adalah model machine learning yang menggunakan data training dari manusia yang mencakup solusi yang diinginkan. Data training sudah berisi jawaban untuk masalah yang ingin kita selesaikan, dan mesin diharapkan meniru pola pada input data (prediktor) untuk menghasilkan output yang serupa.


Contoh data training untuk Supervised Learning adalah sebagai berikut:

Gambar 1. Data training untuk Supervised Learning

Ada dua typical tasks dari supervised learning; Klasifikasi dan Regresi. Apa perbedaan di antara keduanya? Pada dasarnya, perbedaannya berasal dari hasil prediksi.

Algoritma klasifikasi berfokus pada hasil prediksi diskrit, misalnya, prediksi Churn (keluar atau tidak), Heart Disease (terpengaruh oleh penyakit jantung atau tidak), dll.


Sebaliknya, algoritma regresi berfokus pada hasil prediksi numerik di mana hasilnya tidak terbatas pada kelas tertentu, misalnya: harga rumah, jarak mobil, penggunaan energi, dll.


Unsupervised Learning

Kita dapat mebayangkan unsupervised learning sebagai usaha cara menemukan variabel-variabel tertentu dari data. Seperti namanya, unsupervised learning machine learning tidak memiliki pengawasan atau panduan dari manusia dalam mempelajari data. Sebaliknya, mesin diharapkan menghasilkan solusi berdasarkan pembelajaran algoritma.


Unsupervised learning dimaksudkan untuk mengeksplorasi data dan menghasilkan output berdasarkan pembelajaran algoritma. Algoritma memberi umpan dari data training tanpa label dan menghasilkan learning output. perhatikan contoh hasil unsupervised learning dengan algoritma K-Means.

Gambar 2. Hasil unsupervised learning dengan K-Means

Hasil di atas adalah algoritma Clustering yang digunakan untuk mengelompokkan data ke dalam sejumlah group. Pemanfaatan lain dari unsupervised learning adalah Dimensionality Reduction yang menyederhanakan data tanpa kehilangan terlalu banyak informasi dari data asli.

Reinforcement Learning

Reinforcement learning adalah sistem machine learning yang melakukan tugas dengan memaksimalkan reward melalui tindakan tertentu. Reinforcement learning menggunakan agen untuk mengamati keadaan lingkungan tertentu dan memilih suatu keadaan untuk bertindak. Tindakan akan menghasilkan reward atau penalty tergantung pada pilihan tersebut. Reinforcement learning akan mendorong algoritma untuk menemukan strategi terbaik dalam memaksimalkan reward. Keputusan tersebut kemudian akan menjadi agen dalam suatu lingkungan tertentu.


Kita sering menggunakan reinforcement learning ketika kita tidak memiliki banyak data atau mendapatkan data dengan berinteraksi dengan lingkungan. Contoh reinforcement learning adalah self-driving car dan AI Chess.

Algoritma Klasifikasi pada Machine Learning

Kita telah memahami dasar untuk setiap sistem machine learning dan bagaimana masalah yang berbeda memerlukan algoritma yang berbeda. Secara umum, sebagian besar masalah di industri adalah masalah klasifikasi, sehingga akan berguna bagi kita untuk memahami lebih lanjut tentang algoritma klasifikasi.


Mari kita pahami tujuh algoritma klasifikasi yang paling sering digunakan dan kapan masing-masing algoritma bisa digunakan.


1. Logistic Regression

Logistic Regression atau Logit Regression adalah algoritma klasifikasi untuk mengklasifikasikan data ke dalam dua kategori. Istilah regresi sebaiknya tidak disalahartikan sebagai regresi dari supervised learning karena regresi dalam Logistic Regression mengacu pada Generalized Linear Model (GLM) dengan Fungsi Logit.


Model ini adalah salah satu model paling sederhana dalam algoritma klasifikasi dan digunakan dalam banyak contoh real-case seperti prediksi penyakit, prediksi churn, prediksi repeat-order, dan banyak kasus penggunaan klasifikasi lainnya.


Mengenai persamaannya, GLM adalah model kelas luas yang mencakup banyak model, misalnya: Linear Regression, ANOVA, dan Logistic Regression.


Logistic Regression mengikuti tiga komponen dasar GLM, yaitu:

Gambar 3. Struktur dasar GLM
  • Random Component (E(Y)): Ini adalah distribusi probabilitas model Logistic Regression (Variabel Respons), dalam hal ini, Binomial distribution atau lebih tepatnya, probabilitas keberhasilan suatu peristiwa (E(Y) = 1).

  • Systematic Component: Ini adalah variabel-variabel penjelas (x1, x2, …, xn) dalam prediktor linear (+1 X1 +2X2 + … + nXn).

  • Link Function (g()): Ini adalah fungsi yang menghubungkan nilai yang diharapkan (E(Y))) dari variabel terikat pada prediktor linier. Linear Regression menggunakan Fungsi Logit, yaitu log(P/1-P) di mana P adalah Probabilitas Keberhasilan (E(Y) = 1). Dengan Fungsi Logit, hasil diharapkan berada antara 0 hingga 1.


Semua struktur di atas akan membuat model yang disebut Logistic Regression.


2. Decision Tree

Decision Tree adalah model klasifikasi di mana proses pembelajaran adalah metode untuk mendekati fungsi target diskrit yang direpresentasikan oleh decision tree. Kata tree merujuk pada mathematical graph theory, yang didefinisikan sebagai grafik tidak berarah di mana dua simpul (node) terhubung oleh satu jalur (path).


Sederhananya, decision tree adalah model klasifikasi untuk mengelompokkan data berdasarkan struktur pohon terbalik. Decision tree akan membuat simpul yang terus membagi berdasarkan pembelajaran data dan akan berhenti sampai parameter yang telah kita tentukan atau tidak ada lagi pembagian yang terjadi. Contoh decision tree ditunjukkan dalam gambar di bawah ini.

Gambar 4. Contoh Decision Tree

Bagaimana decision tree menentukan fitur dan nilai apa yang akan dibagi? Ada beberapa algoritma dalam pengambilan keputusan, tetapi yang umum adalah Gini Index, Entropy and Information Gain metrics. Ide dasar penggunaan kedua algoritma pembagian adalah untuk mengukur seberapa baik pembagiannya berdasarkan nilai yang kita bagi dan hasilnya. Perhatikan gambar di bawah ini untuk memahami bagaimana algoritma menentukan titik pembagian terbaik.

Gambar 5. Penentuan titik pembagian decision tree

Gambar di atas menunjukkan di mana X1 berada dalam dua nilai, dan nilai Information Gain (IG) berbeda. Pembagian terbaik adalah ketika IG lebih tinggi, sehingga X1 = 2 adalah titik pembagian terbaik. Pembagian terus berlanjut sampai simpul hanya memiliki satu kelas atau memenuhi hyperparameter yang telah kita atur.


Decision tree adalah salah satu model yang populer digunakan oleh banyak ahli data karena cepat dan mudah dijelaskan. Namun, model ini mengalami banyak masalah overfitting. Itulah mengapa banyak model dikembangkan dengan decision tree sebagai dasarnya — misalnya, Random Forest.


3. Random Forest

Random Forest adalah algoritma klasifikasi yang didasarkan pada decision tree. Nama random berasal dari randomisasi yang diperkenalkan dalam algoritma, dan nama forest berasal dari beberapa decision tree yang membangun model tersebut.


Sebelum kita membahas random forest , kita perlu memahami konsep ensemble learning karena model random forest diklasifikasikan sebagai salah satu dari mereka. Ensemble Learning adalah konsep dimana kita menggunakan beberapa algoritma untuk mencapai hasil prediksi dan kinerja yang lebih baik. Misalnya, kita menggunakan beberapa algoritma decision tree untuk membangun model random forest.


Tepatnya, random forest diklasifikasikan sebagai bootstrapping aggregating (bagging) ensemble. Apa itu bagging, dan bagaimana model bekerja? Pertama, kita perlu memahami konsep bootstrap dalam statistik. Bootstrap adalah metode untuk pengambilan sampel acak dengan penggantian; dengan kata lain, kita membuat dataset baru dari dataset yang sama dengan pengulangan. Perhatikan gambar di bawah ini untuk memahami bootstrap.

Gambar 6. Contoh Bootstraping

Gambar di atas menunjukkan bagaimana bootstrap bekerja. Kita memperlakukan data asli sebagai kolam, mengambil sampel ulang data dari sana, dan setiap dataset yang di-bootstrap bisa berisi nilai yang sama. Contoh di atas menunjukkan dua data yang di-bootstrap dengan tiga sampel untuk setiap dataset.


Kita akan menggunakan beberapa decision tree yang secara eksplisit dilatih dengan data yang di-bootstrapped dalam model random forest. Untuk setiap decision tree yang kita gunakan, kita melatih pada data bootstrap yang berbeda. Jadi, jika kita memiliki 100 decision tree dalam random forest, kita akan melatih 100 decision tree dalam 100 data bootstrap yang berbeda.


Kita menggunakan metode bootstrap untuk memperkenalkan ke-random-an ke dalam model dan menghindari overfitting karena data bootstrap akan memiliki estimasi distribusi yang serupa dengan data asli tetapi berbeda. Proses ini akan memastikan terjadinya generalisasi.

Selain itu, untuk menghindari overfitting lebih lanjut, algoritma random forest dapat mengurangi jumlah fitur yang akan dipertimbangkan saat membuat data bootstrap.


Seringkali, ini adalah akar kuadrat total fitur dari data asli; jadi jika data asli kita memiliki empat fitur, kita akan menggunakan dua fitur dalam data bootstrap kita. Pemilihan fitur juga dilakukan secara acak untuk menghindari overfitting lebih lanjut.


Pada akhirnya, setiap decision tree akan memiliki output probabilitas. Output dari random forest akan menjadi rata-rata dari setiap decision tree. Gambar di bawah ini merangkum algoritma random forest.

Gambar 6. Algoritma Random Forest secara umum

4. Naive Bayes

Naive Bayes adalah algoritma klasifikasi berdasarkan Teorema Bayes ( Bayes Theorem). Berbeda dengan frequentist theorem, di mana probabilitas suatu peristiwa didasarkan pada data saat ini, Teorema Bayes akan memperbarui probabilitas berdasarkan probabilitas sebelumnya (prior probability).


Sebagai contoh, kita mengasumsikan bahwa probabilitas hujan adalah 50% ketika cuaca cerah, tetapi setiap hari kita memperbarui probabilitas dengan setiap informasi yang tersedia. Probabilitas Teorema Bayes dapat dijelaskan dalam gambar berikut.

Gambar 7. Persamaan Theorema Bayes

Gambar di atas menunjukkan Teorema Bayes di mana:

  • P(A|B) adalah probabilitas posterior (Probabilitas peristiwa A terjadi jika B benar)

  • P(B|A) adalah probabilitas peristiwa B terjadi jika A benar. Kita juga bisa mengatakan ini adalah peluang (likelihood) A akan terjadi jika B tetap.

  • P(A) dan P(B) adalah prior probabilities; tanpa syarat apapun atau bila tidak ada bukti, seberapa besar kemungkinan terjadinya peristiwa A atau B.


Sehubungan dengan dataset, kita dapat menyatakan persamaan awal Naive Bayes seperti gambar di bawah.

Gambar 8. persamaan awal Naive Bayes

Mari kita ambil contoh dari dataset sebelumnya dan katakanlah X = (Width = 15, Weight = 100, Color = Red) dan y = Apple. Jadi kita bisa menyatakan bahwa pengklasifikasi Naive Bayes P(y|X) adalah probabilitas Apple diberikan Width = 15, Weight = 100, dan Color = Red. Untuk menghitung probabilitas, biasanya algoritma Naive Bayes memerlukan data kontinu untuk diskritisasi atau menggunakan estimasi densitas probabilitas. Tetapi untuk contoh kali ini, mari kita anggap mereka adalah kategorikal.


Jika kita masukkan semua informasi dari data kita ke dalam algoritma Naive Bayes, maka akan seperti gambar di bawah ini.

Gambar 9. Perhitungan Apel dengan Naive Bayes

Kita memasukkan informasi pada data yang kita miliki. Untuk P(Apple) atau prior adalah kemunculan label Apple dibandingkan dengan semua data yang ada, yaitu 3/5. Sebagai contoh, likelihood dari P(Width = 15 | Apple) hanya muncul dalam 1 data dari semua 3 data dengan label Apple.


Kita juga dapat menghitung probabilitas invers (Not Apple, diberikan data) dengan persamaan dan hasil berikut.

Gambar 10. Perhitungan Bukan Apel dengan Naive Bayes

Jika kita menggunakan hasil di atas, probabilitas Apple lebih tinggi daripada Not Apple, artinya data akan menghasilkan Apple. Biasanya, probabilitas akan dinormalisasi untuk kedua kasus, sehingga kita selalu memiliki total probabilitas sebesar 1 dengan persamaan berikut.

Gambar 11. Perhitungan Naive Bayes yang sudah dinormalisasi

Naive Bayes sering digunakan karena kemudahan dan kesederhanaan algoritmanya. Waktu pelatihan juga cukup cepat dibandingkan dengan algoritma yang lain. Model ini populer pada use-case NLP karena berfungsi baik dalam banyak kasus NLP, seperti analisis sentimen, sentiment analysis, spam filtering, dan lain sebagainya.

5. Support Vector Machine (SVM)

SVM adalah algoritma klasifikasi yang cukup populer karena berhasil melampaui beberapa algoritma canggih lainnya pada kasus tertentu, seperti digits recognition. Dalam istilah yang lebih sederhana, SVM adalah pengklasifikasi yang membuat batasan untuk memisahkan kelas-kelas yang berbeda. Data disebut support vektor untuk membantu membuat batasan.


Batasan itu disebut hyperplane atau pembagi. Ini dihitung berdasarkan dataset dan dengan mengukur margin terbaik dengan memindahkan hyperplane. Ketika data berada dalam dimensi yang lebih tinggi atau ketika ada data yang tidak dapat dipisahkan secara linear, kita akan menggunakan Kernel trick untuk menemukan hyperplane.


Perhitungan untuk mengukur hyperplane memang sulit, dan saya menyarankan membaca materi berikut di sini. Berikut adalah representasi gambar SVM.

Gambar 12. Ilustrasi SVM dapat dipisahkan dari hyperplane

6. K-Nearest Neighbor (K-NN)

K-Nearest Neighbor atau K-NN adalah algoritma klasifikasi sederhana berbasis jarak data dan masalah optimasi Nearest Neighbor. Tidak seperti model-model sebelumnya, K-NN tidak mempelajari parameter seperti koefisien tetapi hanya menggunakan data aktual sebagai model.


Algoritma K-NN bertujuan untuk mengukur kedekatan data baru dibandingkan dengan data pelatihan yang telah dipelajari sebelumnya oleh model. Alih-alih mempelajari parameter apa pun, model menetapkan K jumlah observasi terdekat untuk mengklasifikasikan data baru.


Cara termudah untuk memahami cara kerja K-NN adalah dengan membayangkan model sebagai peta, dan setiap titik baru ditetapkan ke kelas baru dengan mayoritas jumlah K observasi terdekat menggunakan pengukuran jarak (seringkali Euclidean Distance).


Perhatikan gambar di bawah ini.

Gambar 13. Contoh model K-NN

Gambar di atas menunjukkan data aktual dari dua kelas yang berbeda (biru dan oranye). Bintang adalah data baru yang K-NN mencoba prediksi. Jika kita set K = 3, data baru akan mencari tiga data terdekat. Dengan menggunakan contoh di atas, data baru akan diklasifikasikan sebagai biru karena sebagian besar data terdekat adalah biru. Namun, jika kita meningkatkan K = 5, K-NN akan mengklasifikasikan data baru sebagai oranye karena mayoritas bergeser.


Sebagai catatan, jangan gunakan angka genap untuk K karena klasifikasi akan menjadi prediksi acak jika seri. Menemukan jumlah K yang optimal juga merupakan eksperimen, jadi cobalah mengevaluasi model pembelajaran mesin dengan metrik yang relevan.


7. Neural Networks

Neural Networks adalah model machine learning yang didasarkan pada otak saraf manusia, dan model ini adalah subset dari machine learning yang fokus pada deep learning method. Secara lebih rinci, neural network biasanya terdiri dari tiga komponen simpul (node):

  • Input Layer (Tempat masuknya data)

  • Hidden Layer

  • Output Layer (Output data)

Mari kita lihat gambar di bawah ini untuk mendapatkan detail lebih mendalam.

Gambar 14. Model Neural Network

Secara umum, Anda bisa memiliki jumlah hidden layer yang tak terbatas untuk meningkatkan algoritma. Namun, lebih banyak node berarti daya komputasi dan waktu pelatihan yang semakin tinggi. Jadi, tidak baik jika meningkatkan jumlah layer terlalu tinggi.


Neural network menghitung prediksi dengan menghitung data melalui layer. Data diproses dalam hidden layer node di mana setiap node terdiri dari dua fungis: linear function, dan activation function. Anggaplah fungsi linear sebagai model linear, dan activation function adalah fungsi yang memperkenalkan non-linearitas ke model. Untuk menyelaraskan perhitungan, metode backpropagation digunakan.


Singkatnya, setiap data di layer input akan melewati hidden layer, dan fungsi akan membuat nilai output.


Neural network sering digunakan untuk prediksi data tidak terstruktur, seperti data gambar, teks, atau audio, karena neural network dapat mengonsumsi data ini. Ini juga memungkinkan banyak kasus penggunaan, seperti image recognition, text recognition, dll.


Kesimpulan

Model machine learning adalah algoritma yang dirancang untuk mempelajari data dan membuat output yang menyelesaikan masalah manusia. Klasifikasi dalam machine learning berkaitan dengan hasil prediksi diskrit.


Kita telah membahas tujuh algoritma klasifikasi berbeda, yaitu:

  1. Logistic Regression

  2. Decision Tree

  3. Random Forest

  4. Naive Bayes

  5. Support Vector Machine (SVM)

  6. K-Nearest Neighbour (K-NN)

  7. Neural Networks.


Semoga membantu!

Artikel ditranslasi oleh: Ahmad Ilham Habibi

830 tampilan0 komentar

Postingan Terkait

Lihat Semua

Comments


bottom of page