Contoh Perhitungan Naive Bayes

Post ini akan menerangkan langkah-langkah contoh perhitungan salah satu metode dalam machine learning, yaitu metode naive Bayes.

Pada contoh perhitungan ini, akan digunakan data training sebagai berikut:

DayOutlookTemperatureHumidityWindPlay
D1SunnyHotHighWeakNo
D2SunnyHotHighStrongNo
D3OvercastHotHighWeakYes
D4RainMildHighWeakYes
D5RainCoolNormalWeakYes
D6RainCoolNormalStrongNo
D7OvercastCoolNormalStrongYes
D8SunnyMildHighWeakNo
D9SunnyCoolNormalWeakYes
D10RainMildNormalWeakYes
D11SunnyMildNormalStrongYes
D12OvercastMildHighStrongYes
D13OvercastHotNormalWeakYes
D14RainMildHighStrongNo

Output yang ingin diprediksi menggunakan metode naive Bayes adalah kolom Play yang berisi antara Yes atau No.

Sedangkan atribut atau variabel yang digunakan untuk melakukan prediksi adalah atribut Outlook, Temperature, Humidity, dan Wind.

Dikarenakan atribut yang digunakan berupa data kategorikal atau diskrit, maka distribusi peluang yang digunakan adalah multinomial. Contoh perhitungan ini tidak akan menggunakan Laplace smoothing ataupun log trick.

Perhitungan dimulai dari menghitung peluang dari Play = Yes dan Play = No dengan rumus sebagai berikut:

\begin{array}{lclcl} \text{P}(\text{Play} = \text{Yes}) & = & \frac{\text{banyaknya Play=Yes}}{\text{banyaknya data}} & = & \frac{9}{14} \\ \\ \text{P}(\text{Play} = \text{No}) & = & \frac{\text{banyaknya Play=No}}{\text{banyaknya data}} & = & \frac{5}{14} \\ \\ \end{array}

Langkah selanjutnya adalah menghitung peluang dari semua kemungkinan atribut dan output.

Misalkan untuk atribut Outlook yang terdiri dari 3 kemungkinan nilai, yaitu Sunny, Overcast, dan Rain, dilakukan perhitungan:

  • P(Outlook=Sunny | Play=Yes)
  • P(Outlook=Overcast | Play=Yes)
  • P(Outlook=Rain | Play=Yes)
  • P(Outlook=Sunny | Play = No)
  • P(Outlook=Overcast | Play=No), dan
  • P(Outlook=Rain | Play=No).

Perhitungan ini dilakukan juga untuk atribut Temperature = {Hot, Mild, Cool}, Humidity = {High, Normal}, dan Wind = {Strong, Weak}.

Untuk menghitung P(Outlook=Sunny | Play=Yes), kita melihat tabel data di atas dan menghitung rumus berikut ini:

P(\text{Outlook} = \text{Sunny} | \text{Play} = \text{Yes}) = \frac{\text{banyaknya data yang Outlook=Sunny dan Play=Yes}}{\text{banyaknya data yang Play=Yes}}

Dari data di atas didapatkan bahwa observasi pada hari D9 dan D11 memiliki atribut Outlook=Sunny dan Play=Yes dan jumlah data dengan Play=Yes adalah sebanyak 9. Maka,

\text{P}(\text{Outlook} = \text{Sunny} | \text{Play} = \text{Yes}) = \frac{2}{9}

Lakukan perhitungan seperti di atas untuk seluruh atribut sehingga diperoleh hasil seperti pada tabel-tabel di bawah ini:

OutlookPlay=YesPlay=No
Sunny2/93/5
Overcast4/90/5
Rain3/92/5
TemperaturePlay=YesPlay=No
Hot2/92/5
Mild4/92/5
Cool3/91/5
HumidityPlay=YesPlay=No
High3/94/5
Normal6/91/5
WindPlay=YesPlay=No
Strong3/93/5
Weak6/92/5

Setelah didapatkan tabel di atas berdasarkan data training, maka kita dapat melakukan prediksi pada data testing.

Misalkan untuk data testing sebagai berikut:

OutlookSunny
TemperatureCool
HumidityHigh
WindStrong
Play???

maka lakukan perhitungan dengan naive Bayes sebagai berikut:

\text{P}(\text{Yes} | \text{sunny, cool, high, strong}) = \text{P}(\text{sunny} | \text{Yes}) * \text{P}(\text{cool} | \text{Yes}) * \text{P}(\text{high} | \text{Yes}) * \text{P}(\text{strong} | \text{Yes}) * \text{P}(\text{Yes})

menggunakan tabel peluang yang telah dihitung dari data training di atas. Diketahui, P(sunny | yes) = 2/9; P(cool | yes) = 3/9; P(high | yes) =3/9; P(strong | yes) = 3/9; dan P(yes) = 9/14. Kalikanlah nilai-nilai tersebut sehingga didapatkan:

\text{P}(\text{Yes} | \text{sunny, cool, high, strong}) = \frac{2}{9} * \frac{3}{9} * \frac{3}{9} * \frac{3}{9} * \frac{9}{14} = 0.0053

Lakukan perhitungan yang sama untuk Play=No. Perhatikan tabel hasil akhir berikut ini:

FeaturePlay=YesPlay=No
Outlook=Sunny2/93/5
Temperature=Cool3/91/5
Humidity=High3/94/5
Wind=Strong3/93/5
9/145/14
Peluang0.00530.0206

Dengan membandingkan peluang Yes dan No, didapatkan peluang No lebih besar, sehingga output dari metode naive Bayes adalah No.

Referensi Persamaan Naive Bayes

P(C|X) = P(X_1 | C) * P(X_2 | C) * \ldots * P(X_n | C) * P(C) = P(C) * \prod_{i=1}^{n} P(X_i | C)

Output didapatkan dengan menggunakan aturan maximum a posteriori (MAP) sebagai berikut:

\text{argmax}_{k \in \{ 1, \ldots, K \}} P(C_k | X)

Leave a Reply

Your email address will not be published. Required fields are marked *