Cara Menghitung Naive Bayes untuk Diagnosa Penyakit, Contoh Langkah demi Langkah

Apa itu Naive Bayes?

Naive Bayes adalah salah satu metode klasifikasi yang bekerja dengan menghitung seberapa besar kemungkinan suatu data termasuk ke dalam kategori tertentu, berdasarkan data-data sebelumnya yang sudah diketahui hasilnya.

Metode ini banyak dipakai untuk membuat sistem diagnosa sederhana, misalnya menebak jenis penyakit berdasarkan gejala yang dirasakan seseorang. Cara kerjanya sebenarnya sederhana: setiap gejala "memberi suara" untuk penyakit tertentu, lalu semua suara itu dikalikan untuk melihat penyakit mana yang paling mungkin.

Nama "naive" (naif) dipakai karena metode ini menganggap setiap gejala berdiri sendiri dan tidak saling berhubungan satu sama lain. Pada kenyataannya gejala bisa saling berkaitan, tapi anggapan sederhana ini justru membuat perhitungannya mudah dan tetap cukup akurat untuk banyak kasus.

Teorema Bayes, Naive Bayes, dan Bayes Lainnya

Sebelum masuk ke contoh hitungan, penting untuk memahami satu hal dulu: Naive Bayes bukan satu-satunya metode yang memakai Teorema Bayes. Ada banyak metode lain yang juga berpijak pada teorema yang sama, tapi dengan cara kerja yang sedikit berbeda.

Posterior ∝ Prior × Likelihood

Rumus di atas adalah Teorema Bayes, dan ini selalu sama di semua metode yang namanya mengandung kata "Bayes" — baik itu Naive Bayes, Bayesian Network, maupun Bayes Optimal Classifier. Yang membedakan satu metode dengan metode lainnya bukan rumus utamanya, melainkan cara menghitung bagian likelihood-nya.

Kenapa disebut "Naive"?

Kalau ada beberapa gejala sekaligus, secara teori likelihood yang benar-benar akurat itu seharusnya dihitung sebagai satu kesatuan, karena gejala satu bisa saja berkaitan dengan gejala lainnya:

P(Gejala1, Gejala2, Gejala3, Gejala4 | Penyakit)

Masalahnya, menghitung probabilitas gabungan seperti itu butuh data yang sangat banyak, karena harus ada cukup banyak kasus lama yang punya kombinasi gejala persis sama. Naive Bayes mengatasi ini dengan cara "berpura-pura naif": setiap gejala dianggap berdiri sendiri, sehingga likelihood gabungan bisa dipecah menjadi perkalian sederhana per gejala:

P(Gejala1, Gejala2, Gejala3, Gejala4 | Penyakit) ≈ P(Gejala1|Penyakit) × P(Gejala2|Penyakit) × P(Gejala3|Penyakit) × P(Gejala4|Penyakit)

Bentuk perkalian sederhana inilah yang dipakai pada Langkah 3 di artikel ini. Anggapan ini memang tidak selalu 100% benar di dunia nyata, tapi membuat perhitungan jauh lebih mudah dan tetap cukup akurat untuk banyak kasus.

Contoh metode Bayes lainnya

Berikut beberapa metode lain yang juga memakai Teorema Bayes, tapi dengan cara menghitung likelihood yang berbeda:

MetodeCara Menghitung Likelihood
Naive BayesSetiap gejala dianggap berdiri sendiri, lalu dikalikan satu per satu (seperti pada artikel ini)
Bayesian NetworkHubungan antar gejala digambarkan sebagai jaringan/grafik, sehingga keterkaitan antar gejala tetap diperhitungkan
Bayes Optimal ClassifierMenggabungkan prediksi dari banyak kemungkinan hipotesis sekaligus, bukan hanya satu, sehingga secara teori paling akurat tapi paling berat dihitung
Semakin "canggih" cara menghitung keterkaitan antar gejala, biasanya semakin akurat hasilnya — tapi juga semakin banyak data dan daya komputasi yang dibutuhkan. Naive Bayes populer karena ada di titik tengah: cukup sederhana untuk dihitung manual, tapi masih cukup akurat untuk banyak kasus sehari-hari seperti diagnosa penyakit.

Bagaimana dengan Laplace Smoothing?

Satu hal yang perlu diluruskan: Laplace smoothing bukan bagian dari Teorema Bayes itu sendiri. Laplace smoothing adalah teknik terpisah untuk memperkirakan nilai likelihood dari data yang jumlahnya terbatas, agar tidak ada probabilitas yang bernilai nol (yang sudah dibahas di Langkah 2). Teknik ini bisa dipakai di Naive Bayes, tapi sebenarnya bisa juga dipakai di metode klasifikasi lain yang sama-sama butuh memperkirakan probabilitas dari data terbatas.

BagianSelalu Sama di Semua Jenis Bayes?
Rumus utama (Posterior ∝ Prior × Likelihood)Ya, selalu sama
Cara menghitung/memecah likelihoodBerbeda — inilah yang membedakan Naive Bayes dari metode Bayes lainnya
Laplace smoothingTeknik tambahan yang opsional, bukan bagian inti dari Teorema Bayes

Studi Kasus: Diagnosa Penyakit Gigi

Supaya lebih mudah dipahami, mari gunakan contoh diagnosa penyakit gigi. Anggap ada data 10 pasien yang pernah diperiksa sebelumnya, dengan hasil diagnosa sebagai berikut:

PenyakitJumlah Kasus
Karies Gigi5
Gingivitis (radang gusi)3
Abses Gigi2
Total10

Dari 10 pasien itu, tercatat juga gejala apa saja yang mereka rasakan. Berikut rekapnya (angka menunjukkan berapa dari total kasus penyakit tersebut yang mengalami gejala ini):

GejalaKaries Gigi (dari 5)Gingivitis (dari 3)Abses Gigi (dari 2)
Nyeri berdenyut402
Gigi sensitif dingin/panas511
Gusi bengkak132
Bau mulut221

Sekarang datang pasien baru yang mengeluhkan dua gejala saja: nyeri berdenyut dan gusi bengkak. Tugas kita adalah menebak penyakit apa yang paling mungkin dialami pasien ini, menggunakan Naive Bayes.


Langkah 1: Menghitung Probabilitas Awal (Prior)

Langkah pertama adalah menghitung probabilitas awal setiap penyakit, sebelum melihat gejala apa pun. Ini dihitung dari seberapa sering penyakit itu muncul di data lama.

P(Penyakit) = Jumlah kasus penyakit tersebut ÷ Total seluruh kasus
PenyakitPerhitunganHasil
Karies Gigi5 ÷ 100,50
Gingivitis3 ÷ 100,30
Abses Gigi2 ÷ 100,20
Contoh: Prior Karies Gigi = 5 ÷ 10 = 0,50 (artinya sebelum tahu gejala apa pun, 50% dari seluruh kasus lama adalah Karies Gigi)

Langkah 2: Menghitung Probabilitas Bersyarat (Likelihood)

Selanjutnya kita hitung seberapa besar kemungkinan setiap gejala muncul pada setiap penyakit. Karena pasien baru hanya mengeluhkan nyeri berdenyut dan gusi bengkak, kita hanya perlu menghitung likelihood untuk dua gejala itu saja.

Kalau dihitung dengan cara paling sederhana (jumlah kasus gejala muncul ÷ jumlah kasus penyakit), ada risiko hasilnya menjadi 0 apabila suatu gejala kebetulan tidak pernah tercatat pada penyakit tertentu. Kalau ada satu angka 0 saja, seluruh hasil perkalian akhirnya akan otomatis menjadi 0 juga, padahal belum tentu penyakit itu benar-benar mustahil. Karena itu dipakai sedikit "penyesuaian" yang disebut Laplace Smoothing, supaya tidak ada probabilitas yang benar-benar nol.
P(Gejala | Penyakit) = (Jumlah kasus gejala muncul + 1) ÷ (Jumlah kasus penyakit + 2)
Kenapa ditambah 1 di atas dan 2 di bawah? Karena tiap gejala hanya punya dua kemungkinan: ada atau tidak ada. Angka "+1" mewakili tambahan satu kasus anggapan untuk kemungkinan yang sedang dihitung, dan "+2" mewakili tambahan untuk kedua kemungkinan tersebut (ada dan tidak ada). Ini adalah bentuk smoothing yang paling umum dipakai untuk data dengan dua kemungkinan nilai.

Likelihood untuk Karies Gigi

GejalaPerhitunganHasil
Nyeri berdenyut(4 + 1) ÷ (5 + 2)5 ÷ 7 ≈ 0,7143
Gusi bengkak(1 + 1) ÷ (5 + 2)2 ÷ 7 ≈ 0,2857
Nyeri berdenyut pada Karies Gigi: dari 5 kasus Karies, 4 kasus mengalami nyeri berdenyut → (4+1) ÷ (5+2) = 5 ÷ 7 ≈ 0,7143

Likelihood untuk Gingivitis

GejalaPerhitunganHasil
Nyeri berdenyut(0 + 1) ÷ (3 + 2)1 ÷ 5 = 0,20
Gusi bengkak(3 + 1) ÷ (3 + 2)4 ÷ 5 = 0,80
Nyeri berdenyut pada Gingivitis: dari 3 kasus Gingivitis, tidak ada satu pun yang mengalami nyeri berdenyut → (0+1) ÷ (3+2) = 1 ÷ 5 = 0,20 (bukan 0, karena sudah memakai smoothing)

Likelihood untuk Abses Gigi

GejalaPerhitunganHasil
Nyeri berdenyut(2 + 1) ÷ (2 + 2)3 ÷ 4 = 0,75
Gusi bengkak(2 + 1) ÷ (2 + 2)3 ÷ 4 = 0,75

Langkah 3: Menghitung Nilai Akhir (Posterior)

Sekarang seluruh nilai digabung dengan cara mengalikan prior dengan semua likelihood gejala yang dialami pasien. Inilah rumus utama Naive Bayes:

P(Penyakit | Gejala) = P(Penyakit) × P(Gejala 1 | Penyakit) × P(Gejala 2 | Penyakit) × ...
PenyakitPerhitunganHasil Akhir
Karies Gigi0,50 × 0,7143 × 0,2857≈ 0,1020
Gingivitis0,30 × 0,20 × 0,800,0480
Abses Gigi0,20 × 0,75 × 0,750,1125
Abses Gigi: 0,20 (prior) × 0,75 (nyeri berdenyut) × 0,75 (gusi bengkak) = 0,20 × 0,5625 = 0,1125

Langkah 4: Mengubah ke Persentase dan Menyimpulkan

Angka-angka di atas belum berbentuk persentase karena belum dibagi dengan total dari ketiganya. Supaya lebih mudah dibaca, kita ubah menjadi persentase dengan cara membagi setiap hasil dengan jumlah totalnya.

Persentase = (Nilai Akhir Penyakit ÷ Total Semua Nilai Akhir) × 100%
Total = 0,1020 + 0,0480 + 0,1125 = 0,2625
PenyakitPerhitunganPersentase
Karies Gigi0,1020 ÷ 0,2625≈ 38,9%
Gingivitis0,0480 ÷ 0,2625≈ 18,3%
Abses Gigi0,1125 ÷ 0,2625≈ 42,9%
Nilai tertinggi ada pada Abses Gigi (≈ 42,9%), sedikit di atas Karies Gigi (≈ 38,9%). Artinya, berdasarkan data dan gejala yang dimasukkan, sistem akan menyimpulkan pasien baru ini paling mungkin mengalami Abses Gigi.

Kesimpulan

Secara garis besar, langkah menghitung Naive Bayes untuk diagnosa selalu mengikuti pola yang sama:

  1. Hitung prior: seberapa sering setiap kategori muncul di data lama.
  2. Hitung likelihood: seberapa sering setiap gejala muncul pada masing-masing kategori, memakai smoothing agar tidak ada nilai nol.
  3. Kalikan prior dengan seluruh likelihood gejala yang relevan untuk mendapatkan nilai akhir tiap kategori.
  4. Bandingkan nilai akhir semua kategori, lalu pilih yang paling besar sebagai hasil diagnosa.
Satu hal yang wajib diperhatikan: prior hanya boleh dikalikan satu kali di langkah akhir. Kesalahan yang cukup umum terjadi adalah prior ikut "menempel" pada rumus likelihood, sehingga tanpa disadari ia dikalikan berulang kali dan membuat hasil akhirnya menjadi tidak akurat.

Referensi Internasional (Sumber Asli Rumus)

Rumus prior, likelihood, dan posterior yang dipakai di artikel ini bukan rumus yang dibuat sendiri, tapi merujuk pada beberapa sumber akademik luar negeri yang jadi rujukan dasar hampir semua buku dan jurnal tentang Naive Bayes di dunia. Berikut daftarnya, lengkap dengan bagian mana dari masing-masing sumber yang relevan:

SumberBagian yang RelevanRumus yang Dibahas
Mitchell, Machine Learning (1997)Bab 6 (Bayesian Learning), sub-bab 6.9 “Naive Bayes Classifier” dan 6.9.1 “An Illustrative Example” — termasuk sub-bab tentang m-estimateRumus dasar prior P(vj), likelihood P(ai|vj), dan rumus m-estimate sebagai bentuk smoothing yang lebih umum dari Laplace
Manning, Raghavan & Schütze, Introduction to Information Retrieval (2008)Bab 13 (Text Classification and Naive Bayes), bagian 13.2 “The Bernoulli Model” dan 13.2.1 “Add-one/Laplace smoothing”Rumus (hitungan + 1) ÷ (total + jumlah kategori) persis seperti yang dipakai pada Langkah 2 di artikel ini
Duda, Hart & Stork, Pattern Classification, edisi ke-2 (2001)Bab 2 (Bayesian Decision Theory), bagian tentang klasifikasi dua kelas dengan aturan BayesBentuk umum Posterior ∝ Prior × Likelihood yang jadi dasar Langkah 3 di artikel ini
Dokumentasi resmi scikit-learn, bagian “Naive Bayes”Sub-bagian “Bernoulli Naive Bayes” dan penjelasan parameter alphaNotasi modern dari rumus smoothing yang sama, dipakai sebagai pembanding versi “praktik industri”
Kalau dibandingkan, keempat sumber di atas pada dasarnya sepakat pada bentuk yang sama: Posterior sebanding dengan Prior dikalikan seluruh Likelihood, dan smoothing dilakukan dengan menambah angka kecil di pembilang serta menambah jumlah kemungkinan kategori di penyebut. Sumber-sumber ini yang jadi induk dari rumus yang biasa dikutip ulang oleh buku, kuliah, dan jurnal-jurnal di berbagai negara, termasuk Indonesia.
  • Mitchell, T. M. (1997). Machine Learning. McGraw-Hill. Bab 6 — cs.cmu.edu/~tom/mlbook.html (PDF lengkap: tautan PDF)
  • Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. Bab 13 — nlp.stanford.edu/IR-book
  • Duda, R. O., Hart, P. E., & Stork, D. G. (2001). Pattern Classification (2nd ed.). Wiley. Rumus ini juga masih dikutip di paper-paper modern, misalnya — arxiv.org/pdf/2301.10581
  • Scikit-learn Developers. Dokumentasi resmi “Naive Bayes” — scikit-learn.org

Referensi Jurnal Indonesia

Beberapa jurnal yang membahas penerapan Naive Bayes pada sistem diagnosa penyakit, sebagai bahan bacaan lebih lanjut:

  • Implementasi Metode Naive Bayes pada Sistem Pakar Diagnosa Penyakit Gigi Berbasis Web — researchgate.net
  • Sistem Pakar Diagnosa Penyakit Hipertensi Menggunakan Metode Naive Bayes — media.neliti.com
  • Sistem Pakar Diagnosa Penyakit dan Hama pada Tanaman Jagung Menggunakan Metode Naive Bayes — researchgate.net
  • Sistem Pakar Mendiagnosa Penyakit pada Tanaman Jagung — e-jurnal.pnl.ac.id

Posting Komentar