Naive Bayes: Konsep dan Cara Kerja

31 Maret 2026 29 views

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:

P(CX)=P(XC)P(C)P(X)P(C|X) = \frac{P(X|C) \cdot P(C)}{P(X)}

2.2. Komponen-komponen Rumus

Komponen

Nama

Penjelasan

Analogi

P(CX)P(C|X)

Posterior

Probabilitas kelas setelah melihat data

"Seberapa yakin diagnosisnya setelah melihat gejala?"

P(XC)P(X|C)

Likelihood

Probabilitas data muncul jika kelasnya

"Seberapa sering gejala ini muncul pada pasien flu?"

P(C)P(C)

Prior

Probabilitas kelas sebelum melihat data apapun

"Seberapa umum penyakit flu di populasi?"

P(X)P(X)

Evidence

Probabilitas data muncul secara keseluruhan

"Seberapa umum gejala ini di semua pasien?"

Memahami Setiap Komponen

1. Prior — P(C)P(C)

Probabilitas awal suatu kelas, dihitung dari proporsi data training:

P(C)=Jumlah data kelas CTotal seluruh dataP(C) = \frac{\text{Jumlah data kelas } C}{\text{Total seluruh data}}

Contoh: Dari 100 email, 30 spam dan 70 bukan spam:

  • P(Spam)=30/100=0.30P(\text{Spam}) = 30/100 = 0.30

  • (Bukan Spam)=70/100=0.70(\text{Bukan Spam}) = 70/100 = 0.70

2. Likelihood — P(XC)P(X|C)

Probabilitas fitur muncul pada kelas tertentu:

P(XC)=Jumlah data kelas C yang punya fitur XTotal data kelas CP(X|C) = \frac{\text{Jumlah data kelas } C \text{ yang punya fitur } X}{\text{Total data kelas } C}

Contoh: Dari 30 email spam, 25 mengandung kata "gratis":

  • P(gratisSpam)=25/30=0.833P(\text{gratis}|\text{Spam}) = 25/30 = 0.833

3. Evidence — P(X)P(X)

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:

  • P(Spam)=0.30,P(Bukan Spam)=0.70P(\text{Spam}) = 0.30, P(\text{Bukan Spam}) = 0.70

  • P(gratisSpam)=0.833P(\text{gratis}|\text{Spam}) = 0.833

  • P(gratisBukan Spam)=0.071P(\text{gratis}|\text{Bukan Spam}) = 0.071

Hitung posterior:

P(Spamgratis)P(gratisSpam)×P(Spam)=0.833×0.30=0.250P(\text{Spam}|\text{gratis}) \propto P(\text{gratis}|\text{Spam}) \times P(\text{Spam}) = 0.833 \times 0.30 = 0.250
P(Bukan Spamgratis)P(gratisBukan Spam)×P(Bukan Spam)=0.071×0.70=0.050P(\text{Bukan Spam}|\text{gratis}) \propto P(\text{gratis}|\text{Bukan Spam}) \times P(\text{Bukan Spam}) = 0.071 \times 0.70 = 0.050

Normalisasi:

P(Spamgratis)=0.2500.250+0.050=0.2500.300=0.833P(\text{Spam}|\text{gratis}) = \frac{0.250}{0.250 + 0.050} = \frac{0.250}{0.300} = 0.833
P(Bukan Spamgratis)=0.0500.300=0.167P(\text{Bukan Spam}|\text{gratis}) = \frac{0.050}{0.300} = 0.167

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 x1,x2,...,xnx_1, x_2, ..., x_n, kita perlu menghitung:

P(x1,x2,...,xnC)P(x_1, x_2, ..., x_n | C)

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:

P(x1,x2,...,xnC)=P(x1C)×P(x2C)×...×P(xnC)=i=1nP(xiC)P(x_1, x_2, ..., x_n | C) = P(x_1|C) \times P(x_2|C) \times ... \times P(x_n|C) = \prod_{i=1}^{n} P(x_i|C)

Contoh Konkret

Misalkan kita ingin klasifikasi email spam dengan 3 fitur kata:

Tanpa asumsi independensi (sulit):

P(gratis, diskon, klikSpam)=???? (butuh data khusus kombinasi ketiganya)P(\text{gratis, diskon, klik} | \text{Spam}) = \text{???? (butuh data khusus kombinasi ketiganya)}

Dengan asumsi independensi (mudah):

P(gratis, diskon, klikSpam)=P(gratisSpam)×P(diskonSpam)×P(klikSpam)P(\text{gratis, diskon, klik} | \text{Spam}) = P(\text{gratis}|\text{Spam}) \times P(\text{diskon}|\text{Spam}) \times P(\text{klik}|\text{Spam})
=0.833×0.700×0.600=0.350= 0.833 \times 0.700 \times 0.600 = 0.350

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

P(Ck)=nkNP(C_k) = \frac{n_k}{N}

2

Hitung Likelihood setiap fitur terhadap setiap kelas

P(xiCk)P(x_i \| C_k)

3

Hitung Posterior setiap kelas (dengan asumsi independensi)

P(CkX)P(Ck)×P(xiCk)P(C_k\|X) \propto P(C_k) \times \prod P(x_i\|C_k)

4

Pilih kelas dengan posterior tertinggi

y^=argmaxCkP(CkX)\hat{y} = \arg\max_{C_k} P(C_k\|X)

Rumus Lengkap Naive Bayes

P(Ckx1,x2,...,xn)P(Ck)×i=1nP(xiCk)P(C_k|x_1, x_2, ..., x_n) \propto P(C_k) \times \prod_{i=1}^{n} P(x_i|C_k)

Kelas yang diprediksi:

y^=argmaxCk[P(Ck)×i=1nP(xiCk)]\hat{y} = \arg\max_{C_k} \left[ P(C_k) \times \prod_{i=1}^{n} P(x_i|C_k) \right]

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


Komentar

Tulis Komentar

Belum ada komentar. Jadilah yang pertama!