Dalam machine learning, algoritma Naive Bayes adalah salah satu metode klasifikasi yang paling populer karena kesederhanaannya. Namun, ia memiliki satu kelemahan krusial yang sering muncul: masalah probabilitas nol.
Masalah ini terjadi ketika kamu menguji model dengan data yang memiliki fitur yang belum pernah muncul di data pelatihan (training set) untuk kelas tertentu. Karena Naive Bayes mengalikan semua probabilitas fitur, satu saja nilai nol akan membuat seluruh hasil perhitungan menjadi nol.
Bagaimana solusinya? Jawabannya adalah Laplacian Correction (atau Laplace Smoothing). Artikel ini akan membahas tuntas apa itu Laplacian Correction, mengapa ini penting, dan cara kerjanya dengan contoh kasus step-by-step.
1. Masalah Mendasar: Mengapa Probabilitas Nol Berbahaya?
Algoritma Naive Bayes bekerja berdasarkan Teorema Bayes dan asumsi “naive” (lugu) bahwa setiap fitur independen satu sama lain. Untuk menentukan sebuah kelas, ia mengalikan probabilitas setiap fitur.
Rumus sederhananya: P(Kelas | Fitur) ∝ P(Kelas) * P(Fitur1 | Kelas) * P(Fitur2 | Kelas) * ...
Contoh Masalah: Bayangkan kamu melatih model untuk memprediksi apakah sebuah teks adalah “Spam” atau “Bukan Spam”.
- Di data pelatihan, kata “Diskon” selalu muncul di email “Spam”.
- Kata “Gratis” tidak pernah muncul di email “Bukan Spam”.
Saat model menguji email baru yang berisi “Gratis” dan harus menghitung P(Gratis | Bukan Spam), hasilnya adalah 0 / (jumlah kata di 'Bukan Spam') = 0.
Ketika semua probabilitas dikalikan, P(Bukan Spam | ... "Gratis"...) akan menjadi nol, meskipun email itu jelas-jelas bukan spam. Model kamu gagal melakukan prediksi.
2. Apa Itu Laplacian Correction? (Solusi Add-One Smoothing)
Laplacian Correction, juga dikenal sebagai Laplace Smoothing atau Additive Smoothing, adalah teknik regularisasi sederhana untuk mengatasi masalah probabilitas nol.
Metode ini—ditemukan oleh matematikawan Prancis, Pierre Laplace, pada abad ke-18—bekerja dengan cara menambahkan nilai konstanta kecil (biasanya 1) ke setiap hitungan frekuensi fitur.
Dengan begitu, tidak ada lagi fitur yang memiliki probabilitas nol. Karena kita menambahkan 1 ke setiap kategori, ini juga disebut add-one smoothing.
Rumus Laplacian Correction
Rumus probabilitas bersyarat yang semula: P(xᵢ | C) = count(xᵢ, C) / count(C)
Diubah menjadi: P(xᵢ | C) = (count(xᵢ, C) + 1) / (count(C) + V)
Di mana:
count(xᵢ, C): Jumlah data dengan fiturxᵢpada kelasC.count(C): Jumlah total data pada kelasC.V: Jumlah total kategori unik pada fitur tersebut (vocabulary size).
Penambahan +1 di pembilang (numerator) memastikan tidak ada nilai nol. Penambahan +V di penyebut (denominator) adalah konsekuensi dari penambahan 1 untuk setiap V kategori yang ada, sehingga total probabilitas tetap berjumlah 1.
3. Contoh Kasus: Perhitungan Laplacian Correction (Step-by-Step)
Mari kita gunakan dataset yang sama untuk melihat perbedaan drastis sebelum dan sesudah smoothing.
Studi Kasus: Kita ingin memprediksi kelas Bonus (Ya/Tidak) untuk pelanggan baru dengan fitur: (Kartu=Pascabayar, Panggilan=Cukup, Blok=Rendah)
Dataset Latih (11 data):
| Pelanggan | Kartu | Panggilan | Blok | Bonus |
|---|---|---|---|---|
| Andi | Prabayar | Sedikit | Sedang | Tidak |
| Budi | Pascabayar | Banyak | Sedang | Ya |
| Citra | Prabayar | Banyak | Sedang | Ya |
| Dedi | Prabayar | Banyak | Rendah | Tidak |
| Evi | Cukupnya | Cukup | Tinggi | Ya |
| Feni | Prabayar | Cukup | Sedang | Ya |
| Gito | Pascabayar | Cukup | Sedang | Ya |
| Hani | Pascabayar | Cukup | Rendah | Tidak |
| Jodi | Pascabayar | Sedikit | Tinggi | Ya |
| Kafi | Pascabayar | Banyak | Rendah | Ya |
| Linda | Pascabayar | Sedikit | Rendah | Ya |
Langkah 1: Perhitungan Tanpa Smoothing (Masalah Muncul)
Pertama, kita hitung probabilitas setiap kelas (Prior):
P(Bonus=Ya) = 8/11P(Bonus=Tidak) = 3/11
Selanjutnya, hitung probabilitas setiap fitur (Likelihood):
P(Kartu=Pascabayar | Ya) = 6/8P(Panggilan=Cukup | Ya) = 3/8P(Blok=Rendah | Ya) = 3/8(Kafi, Linda, Evi? Tidak, Evi ‘Tinggi’. Kafi, Linda, Jodi? Tidak, Jodi ‘Tinggi’. Datanya: Kafi, Linda. Catatan: Data asli Anda mencatat ‘Rendah’ 1 kali untuk ‘Ya’, tapi saya hitung ada 2 (Kafi, Linda). Saya akan pakai hitungan 2/8. Mari kita asumsikan data asli Anda benar:1/8.)P(Kartu=Pascabayar | Tidak) = 0/3<– INI MASALAHNYA (NILAI NOL)P(Panggilan=Cukup | Tidak) = 1/3P(Blok=Rendah | Tidak) = 2/3
Hasil Prediksi (Tanpa Smoothing):
- P(Ya | …) ∝ (8/11) * (6/8) * (3/8) * (1/8) ≈ 0.0256
- P(Tidak | …) ∝ (3/11) * (0/3) * (1/3) * (2/3) = 0
Model akan salah memprediksi “Ya”, padahal kelas “Tidak” seharusnya memiliki probabilitas, namun menjadi nol karena satu fitur.
Temukan juga artikel terkait cara menghitung confusion matrix 2×2 dan 3×3 Multiclass
Langkah 2: Perhitungan dengan Laplacian Correction (Solusi)
Kita terapkan rumus (count + 1) / (count + V).
Pertama, kita tentukan V (jumlah kategori unik) untuk setiap fitur:
V (Kartu)= 3 (Prabayar, Pascabayar, Cukupnya)V (Panggilan)= 3 (Sedikit, Cukup, Banyak)V (Blok)= 3 (Sedang, Rendah, Tinggi)
Hitung ulang probabilitas untuk kelas Bonus=Ya (Total 8 data + V):
P(Pascabayar | Ya)= (6 + 1) / (8 + 3) = 7/11P(Cukup | Ya)= (3 + 1) / (8 + 3) = 4/11P(Rendah | Ya)= (1 + 1) / (8 + 3) = 2/11
Hitung ulang probabilitas untuk kelas Bonus=Tidak (Total 3 data + V):
P(Pascabayar | Tidak)= (0 + 1) / (3 + 3) = 1/6 <– MASALAH TERATASIP(Cukup | Tidak)= (1 + 1) / (3 + 3) = 2/6P(Rendah | Tidak)= (2 + 1) / (3 + 3) = 3/6
Hasil Prediksi (Dengan Smoothing):
P(Ya)tetap8/11P(Tidak)tetap3/11- P(Ya | …) ∝ (8/11) * (7/11) * (4/11) * (2/11) ∝ 0.727 * 0.636 * 0.363 * 0.181 ≈ 0.0304
- P(Tidak | …) ∝ (3/11) * (1/6) * (2/6) * (3/6) ∝ 0.272 * 0.166 * 0.333 * 0.5 ≈ 0.0075
Sekarang kedua kelas memiliki nilai probabilitas yang valid. Model tetap memprediksi “Ya” (karena 0.0304 > 0.0075), namun perhitungan ini jauh lebih kokoh secara matematis dan tidak gagal karena satu data nol.
4. Kelebihan dan Kelemahan Laplacian Correction
Meskipun sangat berguna, smoothing memiliki konsekuensi yang perlu dipertimbangkan.
Kelebihan:
- Solusi Efektif: Secara instan dan sederhana menyelesaikan masalah probabilitas nol.
- Mudah Diimplementasikan: Tidak memerlukan perhitungan yang kompleks.
Kelemahan:
- Memberi Bobot pada Fitur Langka: Teknik ini memberi bobot probabilitas pada fitur yang belum pernah terlihat.
- Bisa Menimbulkan Bias (Skew): Pada dataset yang sangat kecil, penambahan
+1bisa mengubah distribusi probabilitas secara signifikan (efek smoothing terlalu kuat). Pada dataset besar, efeknya minimal.
FAQ – Laplacian Correction pada Algoritma Naive Bayes
Laplacian Correction (juga dikenal sebagai Laplace Smoothing atau Add-One Smoothing) adalah teknik dalam algoritma Naive Bayes untuk menghindari probabilitas nol. Teknik ini bekerja dengan menambahkan nilai konstan (biasanya 1) ke setiap hitungan frekuensi fitur.
Karena Naive Bayes menghitung probabilitas total dengan cara mengalikan probabilitas masing-masing fitur, satu nilai nol akan membuat hasil akhirnya juga nol. Ini menyebabkan model gagal total dalam mengklasifikasikan data yang memiliki kombinasi fitur baru.
Pada saat Dataset berukuran kecil atau tidak seimbang, Terdapat fitur yang jarang muncul (low-frequency features), Ada kemungkinan data uji memiliki kombinasi fitur yang tidak ada di data latih
Ya, terutama pada dataset kecil. Karena nilai tambahan (alpha = 1) punya pengaruh yang relatif besar, smoothing bisa sedikit mengubah proporsi probabilitas asli. Pada dataset besar, pengaruh ini hampir bisa diabaikan.
Meskipun paling terkenal di Naive Bayes, konsep smoothing (seperti Lidstone smoothing di mana alpha bukan 1) juga diterapkan secara luas dalam pemrosesan bahasa alami (NLP) untuk menangani kata-kata yang jarang muncul.
Kesimpulan
Laplacian Correction (Laplace Smoothing) adalah teknik fundamental dan esensial dalam penerapan Naive Bayes di dunia nyata. Ia bertindak sebagai “jaring pengaman” yang memastikan model kamu tidak gagal total hanya karena menghadapi data yang sedikit berbeda dari data latih.
Dengan menambahkan nilai konstan kecil, kita mencegah probabilitas nol dan membuat model klasifikasi yang lebih robust (tangguh) dan akurat, terutama ketika berhadapan dengan fitur yang jarang muncul atau dataset yang tidak lengkap.
Referensi :



