Naive Bayes: Konsep dan Cara Kerja
1. Apa itu Naive Bayes?
Naive Bayes adalah algoritma supervised learning yang menggunakan probabilitas untuk melakukan klasifikasi. Berbeda dengan KNN yang menggunakan jarak, Naive Bayes menggunakan Teorema Bayes untuk menghitung probabilitas suatu data termasuk dalam kelas tertentu.
1.1. Analogi Sederhana
Bayangkan seorang dokter mendiagnosis pasien:
Langkah | Analogi Dokter | Dalam Naive Bayes |
|---|---|---|
1 | Dokter punya pengalaman bertahun-tahun | Model punya data training |
2 | Pasien datang dengan gejala: demam, batuk | Data baru punya fitur: demam=ya, batuk=ya |
3 | Dokter ingat: "80% pasien flu punya demam" | Menghitung probabilitas P(demam|flu) = 0.8 |
4 | Dokter menghitung kemungkinan setiap penyakit | Menghitung posterior untuk setiap kelas |
5 | Dokter memilih diagnosis paling mungkin | Memilih kelas dengan probabilitas tertinggi |
1.2. Mengapa Disebut "Naive"?
"Naive" (naif/polos) karena algoritma ini mengasumsikan bahwa setiap fitur saling independen (tidak saling mempengaruhi).
Contoh: Naive Bayes mengasumsikan bahwa "demam" dan "batuk" tidak saling berkaitan, padahal dalam kenyataan keduanya sering muncul bersamaan. Meskipun asumsi ini "naif", hasilnya seringkali tetap akurat!
2. Teorema Bayes
2.1. Rumus Teorema Bayes
Teorema Bayes menghitung probabilitas suatu hipotesis berdasarkan bukti (evidence) yang diamati:
2.2. Komponen-komponen Rumus
Komponen | Nama | Penjelasan | Analogi |
|---|---|---|---|
Posterior | Probabilitas kelas setelah melihat data | "Seberapa yakin diagnosisnya setelah melihat gejala?" | |
Likelihood | Probabilitas data muncul jika kelasnya | "Seberapa sering gejala ini muncul pada pasien flu?" | |
Prior | Probabilitas kelas sebelum melihat data apapun | "Seberapa umum penyakit flu di populasi?" | |
Evidence | Probabilitas data muncul secara keseluruhan | "Seberapa umum gejala ini di semua pasien?" |
Memahami Setiap Komponen
1. Prior —
Probabilitas awal suatu kelas, dihitung dari proporsi data training:
Contoh: Dari 100 email, 30 spam dan 70 bukan spam:
2. Likelihood —
Probabilitas fitur muncul pada kelas tertentu:
Contoh: Dari 30 email spam, 25 mengandung kata "gratis":
3. Evidence —
Probabilitas keseluruhan munculnya fitur . Karena nilainya sama untuk semua kelas, sering diabaikan saat membandingkan kelas (hanya pembanding).
Contoh Perhitungan Sederhana
Soal: Dari data email, hitung apakah email yang mengandung kata "gratis" termasuk spam atau bukan?
Diketahui:
Hitung posterior:
Normalisasi:
Kesimpulan: Email yang mengandung kata "gratis" memiliki probabilitas 83.3% spam.
Dapat divisualisasikan seperti berikut:
3. Asumsi Independensi
3.1. Mengapa Disebut "Naive" (Naif)?
Dalam Teorema Bayes lengkap, jika data memiliki beberapa fitur , kita perlu menghitung:
Ini adalah probabilitas gabungan — sangat sulit dihitung karena membutuhkan data yang sangat banyak!
3.2. Solusi: Asumsi Independensi
Naive Bayes membuat asumsi penyederhanaan yang "naif":
Setiap fitur dianggap independen (saling bebas) satu sama lain, diberikan kelasnya.
Dengan asumsi ini, probabilitas gabungan menjadi perkalian probabilitas individual:
Contoh Konkret
Misalkan kita ingin klasifikasi email spam dengan 3 fitur kata:
Tanpa asumsi independensi (sulit):
Dengan asumsi independensi (mudah):
Apakah Asumsi Ini Realistis?
Aspek | Penjelasan |
|---|---|
Dalam teori | Tidak realistis — fitur sering saling berkaitan (demam & batuk saling terkait) |
Dalam praktik | Meskipun asumsi ini salah, Naive Bayes tetap bekerja sangat baik! |
Mengapa tetap akurat? | Yang penting adalah urutan ranking probabilitas, bukan nilai pastinya |
Ilustrasi Independensi vs Dependensi
Skenario | Independen? | Contoh |
|---|---|---|
Warna rambut & golongan darah | Ya | Tidak saling mempengaruhi |
Tinggi badan & berat badan | Tidak | Orang tinggi cenderung lebih berat |
Hujan & membawa payung | Tidak | Hujan → bawa payung |
Naive Bayes menganggap semua fitur independen, meskipun dalam kenyataannya tidak selalu demikian.
4. Klasifikasi Berbasis Probabilitas
4.1. Langkah-langkah Klasifikasi Naive Bayes
Langkah | Penjelasan | Rumus |
|---|---|---|
1 | Hitung Prior setiap kelas | |
2 | Hitung Likelihood setiap fitur terhadap setiap kelas | |
3 | Hitung Posterior setiap kelas (dengan asumsi independensi) | |
4 | Pilih kelas dengan posterior tertinggi |
Rumus Lengkap Naive Bayes
Kelas yang diprediksi:
4.2. Jenis-jenis Naive Bayes
Jenis | Data Fitur | Rumus Likelihood | Contoh Penggunaan |
|---|---|---|---|
Categorical/Multinomial NB | Kategorikal (diskrit) | Frekuensi relatif | Klasifikasi teks, data survei |
Gaussian NB | Numerik (kontinu) | Distribusi Gaussian | Data sensor, pengukuran |
Bernoulli NB | Biner (0/1) | Distribusi Bernoulli | Ada/tidak ada kata tertentu |
5. Kelebihan dan Keterbatasan Naive Bayes
5.1. Kelebihan Naive Bayes
No | Kelebihan | Penjelasan |
|---|---|---|
1 | Sangat cepat | Training dan prediksi sangat cepat — hanya perlu menghitung frekuensi |
2 | Efisien untuk data besar | Tidak perlu menyimpan seluruh dataset (berbeda dengan KNN) |
3 | Bekerja baik dengan sedikit data | Cukup efektif meskipun data training sedikit |
4 | Mudah diimplementasikan | Rumusnya sederhana dan mudah dipahami |
5 | Bagus untuk klasifikasi teks | Sangat populer untuk spam filter, sentiment analysis, kategori berita |
6 | Tahan terhadap fitur tidak relevan | Fitur yang tidak relevan hanya sedikit mempengaruhi hasil |
5.2. Keterbatasan Naive Bayes
No | Keterbatasan | Penjelasan |
|---|---|---|
1 | Asumsi independensi | Dalam realita, fitur sering saling berkorelasi |
2 | Zero frequency problem | Jika ada kombinasi fitur-kelas yang tidak pernah muncul, probabilitasnya 0 → seluruh perkalian menjadi 0 |
3 | Estimasi probabilitas kurang akurat | Nilai probabilitas yang dihasilkan sering tidak kalibrasi dengan baik |
4 | Kurang baik untuk fitur numerik | Gaussian NB mengasumsikan distribusi normal, yang tidak selalu benar |