Belajar Naive Bayes: Alur Algoritma, Rumus dan Contoh Perhitungan Naive Bayes

contoh perhitungan naive bayes

Ingin memahami rumus Naive Bayes, alur algoritma, dan contoh perhitungannya dengan mudah? Naive Bayes adalah algoritma machine learning yang digunakan untuk klasifikasi data berdasarkan probabilitas dari Teorema Bayes, dan sering digunakan dalam data mining karena sederhana namun efektif.

Pada artikel ini, kamu akan mempelajari secara lengkap bagaimana cara kerja algoritma Naive Bayes, mulai dari rumus dasar, alur perhitungan, hingga contoh kasus menggunakan data diskrit dan kontinu. Dengan memahami konsep ini, kamu bisa lebih mudah mengaplikasikan Naive Bayes dalam berbagai kasus seperti klasifikasi data, prediksi, hingga analisis keputusan.

Thomas Bayes
Thomas Bayes

Rumus dan Alur Algoritma Naive Bayes

Untuk bisa lebih memahami algoritma ini, berikut rumus umum Teorema Bayes yang menjadi dasar Naive bayes.

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

Keterangan:

  • XX: sampel data dengan kelas tidak diketahui
  • CC: hipotesis bahwa XX adalah kelas tertentu
  • P(C)P(C): probabilitas prior dari kelas CC
  • P(X)P(X): probabilitas evidence dari sampel XX
  • P(XC)P(X \mid C): likelihood data XX pada kelas CC

Alur Naive Bayes menurut artikel Anda:

  1. Hitung peluang kasus baru untuk setiap hipotesis kelas P(Ci)P(C_i).
  2. Hitung akumulasi peluang likelihood P(XCi)P(X \mid C_i).
  3. Hitung P(XCi)×P(Ci)P(X \mid C_i) \times P(C_i).
  4. Tentukan kelas dengan nilai tertinggi.

Namun, jika atribut ke-ii bersifat kontinu, maka nilai probabilitas P(XiC)P(X_i \mid C) tidak dihitung dengan frekuensi, melainkan diestimasi menggunakan fungsi densitas probabilitas Gaussian (Distribusi Normal) sebagai berikut:

P(XiC)=12πσCexp((XiμC)22σC2)P(X_i \mid C)=\frac{1}{\sqrt{2\pi}\,\sigma_C} \exp\left(-\frac{(X_i-\mu_C)^2}{2\sigma_C^2}\right)

Keterangan:

  • XiX_i = nilai atribut kontinu ke-ii
  • μC\mu_C​ = nilai rata-rata (mean) atribut pada kelas CC
  • σC\sigma_C​ = simpangan baku (standar deviasi) atribut pada kelas CC

Rumus Teorema Bayes diatas tadi menjelaskan bahwa peluang masuknya sampel karakteristik tertentu dalam class C (posterior) adalah peluang munculnya kelas C ( sebelum masuknya sampel tersebut, sering kali disebut prior), dikali dengan peluang kemunculan karakteristik-karakteristik sampel pada class C (disebut juga likelihood) kemudian dibagi dengan peluang kemunculan karakteristik sampel secara global (disebut juga evidence). Oleh karena itu rumus dapat pula ditulis sebagai berikut.

Posterior=Prior×LikelihoodEvidence\text{Posterior} = \frac{\text{Prior} \times \text{Likelihood}}{\text{Evidence}}

Nilai evidence selalu tetap untuk setiap class pada satu sampel. Nilai dari posterior tersebut nantinya akan dibandingkan dengan nilai posterior class lainnya untuk menentukan class apa suatu sampel akan diklasifikasikan.

Baca Juga: Naive Bayes Adalah: Pengertian, Tujuan dan Penerapannya

Contoh Soal Data Diskrit

Berikut ini adalah contoh perhitungan naive bayes dengan menggunakan data diskrit.

Untuk menentukan suatu daerah akan dipilih sebagai lokasi untuk mendirikan perumahan dan telah dihimpun 10 aturan (data). Ada 4 atribut yang akan digunakan yaitu.

  1. Harga tanah per meter persegi (C1).
  2. Jarak daerah tersebut dari pusat kota (C2).
  3. Ada atau tidaknya angkutan umum di daerah tersebut (C3).
  4. Keputusan untuk memilih daerah tersebut sebagai lokasi perumahan (C4).

Dengan soal, suatu daerah dengan harga tanah mahal, jarak dari pusat kota sedang dan ada angkutan umum. Maka tentukan apakah daerah tersebut dipilih untuk mendirikan perumahan?

Aturan ke- Harga tanah (C1)Jarak dari pusat kota (C2)Ada angkutan umum (C3)Dipilih untuk Perumahan (C4)
1MurahDekatTidakIya
2SedangDekatTidakIya
3MahalDekatTidakIya
4MahalJauhTidakTidak
5MahalSedangTidakTidak
6SedangJauhAdaTidak
7MurahJauhAdaTidak
8MurahSedangTidakIya
9MahalJauhAdaTidak
10SedangSedangAdaIya

Hal yang pertama kamu lakukan adalah mencari probabilitas kemunculan setiap nilai untuk atribut (class).

  • Probabilitas kemunculan setiap nilai untuk atribut Harga tanah (C1).
Harga tanahJumlah kejadian ‘dipilih’ IyaJumlah kejadian ‘dipilih’ TidakProbabilitas IyaProbabilitas Tidak
Murah212/51/5
Sedang212/51/5
Mahal131/53/5
Jumlah5511
  • Probabilitas kemunculan setiap nilai untuk atribut Jarak dari pusat kota (C2).
Jarak dari pusat kotaJumlah kejadian ‘dipilih’ IyaJumlah kejadian ‘dipilih’ TidakProbabilitas IyaProbabilitas Tidak
Dekat30 3/50
Sedang212/51/5
Jauh0 40/54/5
Jumlah5511
  • Probabilitas kemunculan setiap nilai untuk atribut Ada angkutan umum (C3).
Ada angkutan umumJumlah kejadian ‘dipilih’ IyaJumlah kejadian ‘dipilih’ TidakProbabilitas IyaProbabilitas Tidak
Ada131/53/5
Tidak424/52/5
Jumlah5511
  • Probabilitas kemunculan setiap nilai untuk atribut Dipilih untuk perumahan (C4)
Dipilih untuk perumahanJumlah kejadian ‘dipilih’ IyaJumlah kejadian ‘dipilih’ TidakProbabilitas IyaProbabilitas Tidak
Jumlah551/21/2

Berdasarkan data tersebut, apabila diketahui suatu daerah dengan harga tanah mahal, jarak dari pusat kota sedang dan ada angkutan umum, maka dapat dihitung:

Likelihood untuk Iya:Likelihood Iya=152515510=1125=0,008\text{Likelihood Iya} = \frac{1}{5}\cdot\frac{2}{5}\cdot\frac{1}{5}\cdot\frac{5}{10} = \frac{1}{125} = 0{,}008

Likelihood untuk Tidak:Likelihood Tidak=351535510=9250=0,036\text{Likelihood Tidak} = \frac{3}{5}\cdot\frac{1}{5}\cdot\frac{3}{5}\cdot\frac{5}{10} = \frac{9}{250} = 0{,}036

Nilai probabilitas  dapat dihitung dengan melakukan normalisasi terhadap likelihood tersebut sehingga jumlah nilai yang diperoleh = 1.

Normalisasi menjadi probabilitas:P(IyaX)=0,0080,008+0,036=0,182P(\text{Iya}\mid X)=\frac{0{,}008}{0{,}008+0{,}036}=0{,}182

P(TidakX)=0,0360,008+0,036=0,818P(\text{Tidak}\mid X)=\frac{0{,}036}{0{,}008+0{,}036}=0{,}818

Kesimpulan: Karena P(TidakX)>P(IyaX)P(\text{Tidak}\mid X) > P(\text{Iya}\mid X), maka daerah tersebut tidak dipilih untuk perumahan.

Baca Juga: Belajar Kecerdasan Buatan (AI): Sejarah Kecerdasan Buatan

Contoh Data Kontinu

Berikut ini kita akan lanjut dengan contoh perhitungan naive bayes menggunakan data kontinu.

Contoh untuk data kontinu kita adaptasi dari soal sebelumnya. Apabila C1 = 300, C2 = 17, C3 = Tidak, maka tentunkan apakah lokasi akan di bangun perumahan?

Aturan ke- Harga tanah (C1)Jarak dari pusat kota (C2)Ada angkutan umum (C3)Dipilih untuk Perumahan (C4)
11002TidakIya
22001TidakIya
35003TidakIya
460020TidakTidak
55508TidakTidak
625025AdaTidak
77515AdaTidak
88010TidakIya
970018AdaTidak
101808AdaIya

Hal yang pertama kamu lakukan adalah mencari probabilitas kemunculan setiap nilai untuk atribut (class).

  • Probabilitas kemunculan setiap nilai untuk atribut Harga tanah (C1).
IyaTidak
1100600
2200550
3500250
48075
5180700
Mean212435
Deviasi standar168,8787261,9637
  • Probabilitas kemunculan setiap nilai untuk atribut Jarak dari pusat kota (C2).
IyaTidak
1220
218
3325
41015
5818
Mean4,817,2
Deviasi standar3,96236,3008

Untuk data yang diskrit kita ambil lansung nilainya dari tabel contoh soal perhitungan naive bayes dengan data diskrit supaya tidak berlama-lama. Berdasarkan hasil dari perhitungan dan soal tersebut, maka:

f(C1=300ya)=12π(168,8787)e(300212)22(168,8787)2=0,0021f(C1 = 300 \mid ya) = \frac{1}{\sqrt{2\pi(168{,}8787)}} \, e^{-\frac{(300 – 212)^2}{2(168{,}8787)^2}} = 0{,}0021

f(C1=300tidak)=12π(261,9637)e(300435)22(261,9637)2=0,0013f(C1 = 300 \mid tidak) = \frac{1}{\sqrt{2\pi(261{,}9637)}} \, e^{-\frac{(300 – 435)^2}{2(261{,}9637)^2}} = 0{,}0013

f(C2=17ya)=12π(3,9623)e(174,8)22(3,9623)2=0,0009f(C2 = 17 \mid ya) = \frac{1}{\sqrt{2\pi(3{,}9623)}} \, e^{-\frac{(17 – 4{,}8)^2}{2(3{,}9623)^2}} = 0{,}0009

f(C2=17tidak)=12π(6,3008)e(1717,2)22(6,3008)2=0,0633f(C2 = 17 \mid tidak) = \frac{1}{\sqrt{2\pi(6{,}3008)}} \, e^{-\frac{(17 – 17{,}2)^2}{2(6{,}3008)^2}} = 0{,}0633

Ketika nilai C1 dan C2 sudah dapat dengan rumus Gaussian, jadi kita lanjut untuk mencari nilai likelihood.

Likelihood Iya=(0,0021)×(0,0009)×45×510=0,000000756\text{Likelihood Iya} = (0{,}0021)\times(0{,}0009)\times\frac{4}{5}\times\frac{5}{10} = 0{,}000000756

Likelihood Tidak=(0,0013)×(0,0633)×25×510=0,000016458\text{Likelihood Tidak} = (0{,}0013)\times(0{,}0633)\times\frac{2}{5}\times\frac{5}{10} = 0{,}000016458

Nilai probabilitas dapat dihitung dengan melakukan normalisasi terhadap likelihood tersebut sehingga jumlah nilai yang diperoleh = 1.

P(Iya)=0,0000007560,000000756+0,000016458=0,0439P(\text{Iya}) = \frac{0{,}000000756} {0{,}000000756 + 0{,}000016458} = 0{,}0439

P(Tidak)=0,0000164580,000000756+0,000016458=0,9561P(\text{Tidak}) = \frac{0{,}000016458} {0{,}000000756 + 0{,}000016458} = 0{,}9561

Maka dari hasil akhir kita dapat menyimpulkan bahwa pada lokasi tersebut tidak dibangun perumahan.

Baca Juga: Belajar Kecerdasan Buatan (AI): 15 Contoh Kecerdasan Buatan Dalam Kehidupan Sehari-hari

Penutup

Nah, sekarang kamu sudah lebih paham mengenai algoritma naive bayes. Kamu sudah mengerti bagaimana alur dan proses perhitungan yang terjadi di algoritma naive bayes. 

Artikel ini merupakan bagian dari seri Kecerdasan Buatan KantinIT.com. Jika artikel ini bermanfaat, jangan lupa bagikan ke media sosial atau ke teman kamu.

Subscribe to our Newsletter

Subscribe to our email newsletter to get the latest posts delivered right to your email.
Pure inspiration, zero spam ✨