Anda di halaman 1dari 6

Belajar Naive Bayes

about a year ago perdana Adhitama

Dah lama ngga nge-blog. Terakhir ngepost tanggal 2 April. Sekarang mau coba-coba lagi
nulis hal-hal yang berguna. masih berurusan sama belajar Machine Learning. Kalo dlu belajar
Bayesian, sekarang belajar Naive Bayes.
Naive Bayes ini mirip-mirip sama Bayesian. Bedanya adalah Naive Bayes ngga pake
evidence. Naive Bayes biasa dipake di text classification. Mencari kalimat positif atau
negatif, mengklasifikasikan teks ke dalam beberapa kategori dan bisa juga dipake untuk
mendeteksi spam.
Diberikan sebuah dokumen d dan kelas c. Maka Naive Bayes dapat didefinisikan.

Berikut contoh Naive Bayes dalam mengklasifikasikan antara ya dan tidak. Metode ini
menggunakan term frequency sebagai feature vector. Artinya adalah menghitung berapa kali
sebuah kota muncul dalam suatu dokumen.
Document ID
Training

Test

1
2
3
4
5

Words in document
Chinese Beijing Chinese
Chinese Chinese Shanghai
Chinese Macao
Tokyo Japan Chinese
Chinese Chinese Chinese Tokyo Japan

Class
ya
ya
ya
tidak
?

1. Pertama-tama hitung prior dari masing-masing kelas


P(ya)=3/4
P(tidak)=1/4
Penjelasannya adalah sebagai berikut. Kemungkinan munculnya ya dari training dokumen
adalah 3 berbanding 4 sedangkan kemungkinan munculnya tidak adalah 1 berbanding 4.

2. Setelah itu hitung likelihood dari masing-masing kata.


Untuk menghindari nilai 0, maka ditambahkan angka 1.
P(Chinese|ya)=(5+1)/(8+6)=6/14=3/7
P(Tokyo|ya)=(0+1)/(8+6)=1/14
P(Japan|ya)=(0+1)/(8+6)=1/14
P(Chinese|tidak)=(1+1)/(3+6)=2/9
P(Tokyo|tidak)=(1+1)/(3+6)=2/9
P(Japan|tidak)=(1+1)/(3+6)=2/9
angka 6 didapatkan dari banyaknya kata yang ada dalam baris training.yaitu:Chinese, Beijing,
Shanghai, Macao, Tokyo dan Japan. Sedangkan angka 8 adalah jumlah kata yang berada
dalam kelas ya. yaitu Chinese Beijing Chinese (terletak pada dokumen 1 ada 3 kata), Chinese
Chinese Shanghai (terletak pada dokumen 2 ada 3 kata), Chinese Macao (terletak pada
dokumen 3 ada 2 kata). Sebaliknya angka 3 didapat dari jumlah kata yang berada pada kelas
tidak. yaitu: Tokyo Japan Chinese (dokumen 4 ada 3 kata).
kita ambil salah satu contoh.
P(Chinese|ya)=(5+1)/(8+6)=6/14=3/7
Banyaknya kata chinese didalam training data=5.(ditambahkan 1 untuk menghindari nol)
Total jumlah kata dalam kelas ya = 8;
banyaknya kata yang unique dalam kelas ya=6
3. Nah sekarang kita lakukan pengetestan data apakah model yang sudah dibuat ini
bisa menjalankan fungsi klasifikasi atau tidak. Coba perhatikan test data diatas.
Probability kelas ya pada dokumen 5 yaitu
dokumen 5 memiliki 5 kata yaitu Chinese Chinese Chinese Tokyo Japan
P(ya|d5)=Prior ya * likelihood chinese|ya * likelihood chinese|ya * likelihood chinese|ya *
likelihood tokyo|ya * likelihood japan|ya
P(ya|d5)=P(ya) * P(Chinese|ya) * P(Chinese|ya) * P(Chinese|ya) * P(Tokyo|ya) * P(Japan|ya)
P(ya|d5)=3/4 *(3/7)*(3/7)*(3/7) * 1/14 * 1/14 = 0.0003
Dengan demikian kemungkinan dokumen 5 masuk ke kelas ya adalah 0.0003
Probability kelas tidak pada dokumen 5 yaitu
dokumen 5 memiliki 5 kata yaitu Chinese Chinese Chinese Tokyo Japan
P(tidak|d5)=Prior tidak * likelihood chinese|tidak * likelihood chinese|tidak * likelihood
chinese|tidak * likelihood tokyo|tidak * likelihood japan|tidak
P(tidak|d5)=P(tidak) * P(Chinese|tidak) * P(Chinese|tidak) * P(Chinese|tidak) * P(Tokyo|
tidak) * P(Japan|tidak)
P(tidak|d5)=1/4 *(2/9)*(2/9)*(2/9) * 2/9 * 2/9 =0.0001
Dengan demikian kemungkinan dokumen 5 masuk ke kelas tidak adalah 0.0001
4. Yang terakhir adalah bandingkan probability antara ya dan tidak
Pilih yang kemungkinannya adalah yang paling besar. Melihat hasil diatas maka dokumen 5
masuk ke dalam kelas ya dengan kemungkinan sebesar 0.0003

Perhitungan Sederhana Nave Bayes untuk Predeksi Kelulusan

Tabel Trening
N
O

STATUS
PRENIKAHA
N

IPK
Semest
er 1-6

STATUS
KELULUS
AN

JENIS KELAMIN

STATUS
MAHASISWA

LAKI - LAKI

MAHASISWA

BELUM

3.17

TEPAT

LAKI - LAKI

BEKERJA

BELUM

3.30

TEPAT

PEREMPUAN

MAHASISWA

BELUM

3.01

TEPAT

PEREMPUAN

MAHASISWA

MENIKAH

3.25

TEPAT

LAKI - LAKI

BEKERJA

MENIKAH

3.20

TEPAT

LAKI - LAKI

BEKERJA

MENIKAH

2.50

TERLAMBA
T

PEREMPUAN

BEKERJA

MENIKAH

3.00

TERLAMBA
T

PEREMPUAN

BEKERJA

BELUM

2.70

TERLAMBA
T

LAKI - LAKI

BEKERJA

BELUM

2.40

TERLAMBA
T

10

PEREMPUAN

MAHASISWA

MENIKAH

2.50

TERLAMBA
T

11

PEREMPUAN

MAHASISWA

BELUM

2.50

TERLAMBA
T

12

PEREMPUAN

MAHASISWA

BELUM

3.50

TEPAT

13

LAKI - LAKI

BEKERJA

MENIKAH

3.30

TEPAT

14

LAKI - LAKI

MAHASISWA

MENIKAH

3.25

TEPAT

15

LAKI - LAKI

MAHASISWA

BELUM

2.30

TERLAMBA
T

Jika seorang mahasiswa dengan data sebagai berikut;


Tabel Testing
KELAMIN

STATUS

PRENIKAH

IPK

KETERANG

AN
LAKI LAKI

MAHASIS
WA

BELUM

AN
2.70

???

Jawab
Tahap 1 menghitung jumlah class/label
P(Y= TEPAT) = 8/15 jumlah data TEPAT pada komom STATUS KELULUSAN
dibagi jumlah data
P(Y= TERLAMBAT) = 7/15 jumlah data TERLAMBAT pada komom STATUS
KELULUSAN dibagi jumlah data

Tahap 2 menghitung jumlah kasus yang sama dengan class yang sama
P(JENIS KELAMIN = LAKI - LAKI | Y= TEPAT) = 5/8
jumlah data jenis kelamin laki-laki dengan keterangan TEPAT dibagi jumlah
data TEPAT
P(JENIS KELAMIN = LAKI - LAKI | Y= TERLAMBAT) = 3/7
jumlah data jenis kelamin laki-laki dengan keterangan TERLAMBAT dibagi
jumlah data TERLAMBAT

P(STATUS MAHASISWA = MAHASISWA | Y= TEPAT) = 5/8


jumlah data dengan status mahasiswa dengan keterangan TEPAT dibagi
jumlah data TEPAT
P(STATUS MAHASISWA = MAHASISWA | Y= TERLAMBAT) = 3/7
jumlah data dengan status mahasiswa dengan keterangan TERLAMBAT dibagi
jumlah data TERLAMBAT

P(STATUS PRENIKAHAN = BELUM| Y= TEPAT) = 4/8


jumlah data dengan status pernikahan Belum menikah dan keterangan
TEPAT dibagi jumlah data TEPAT
P(STATUS PRENIKAHAN = BELUM| Y= TERLAMBAT) = 4/7

jumlah data dengan status pernikahan Belum menikah dan keterangan


TERLAMBAT dibagi jumlah data TERLAMBAT

P(IPK = 2.70| Y= TEPAT) = 0/8


jumlah data IPK 2.70 dengan keterangan TEPAT dibagi jumlah data TEPAT
P(IPK = 2.70| Y= TERLAMBAT) = 1/7
jumlah data IPK 2.70 dengan keterangan TERLAMBAT dibagi jumlah data
TERLAMBAT

Tahap 3 kalikan semua hasil variable TEPAT & TERLAMBAT


P (KELAMIN=LAKI LAKI), (STATUS MHS=MAHASISWA), (PRENIKAHAN = BELUM), (IPK =
2.70 ) |TEPAT)
= {P(P(KELAMIN =LAKI-LAKI|Y=TEPAT). P(STATUS MHS = MAHASISWA | Y= TEPAT) . P(PRENIKAHAN = BELUM|
Y=TEPAT). P(IPK = 2.70| Y= TEPAT)

5/8

5/8 . 4/8 . 0/8 . 8/15

=0

P (KELAMIN=LAKI LAKI), (STATUS MHS=MAHASISWA), (PRENIKAHAN = BELUM), (IPK =


2.70 ) |TERLAMBAT)
= {P(P(KELAMIN =LAKI-LAKI|Y= TERLAMBAT). P(STATUS MHS = MAHASISWA | Y= TERLAMBAT) .
P(PRENIKAHAN = BELUM|Y= TERLAMBAT). P(IPK = 2.70| Y= TERLAMBAT)

= 3/7 . 3/7

. 4/7 . 1/7 . 7/15

= 0,0069
Tahap 4 Bandingkan hasil class TEPAT & TERLAMBAT
Karena hasil (P|TERLAMBAT) lebih besar dari (P|TERLAMBAT) maka keputusanya
adalah TERLAMBAT
KELAMIN
LAKI LAKI

referensi :

STATUS
MAHASIS
WA

PRENIKAH
AN
BELUM

IPK

KETERANG
AN

2.70

TERLAMBA
T

Marselina - Prediksi Kelulusan dengan Naive Bayes dan C45 - 2010


Sakti Sarjono,Contoh-Perhitungan-Untuk-Naive-Bayes.pdf, 2010

Artikel Terkait:
Cara membuat Aplikasi Predeksi Kelulusan