Belajar Naive Bayes

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.

P(c|d)=\frac{P(d|c)P(c)}{P(d)}

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 Words in document Class
Training 1 Chinese Beijing Chinese ya
  2 Chinese Chinese Shanghai ya
  3 Chinese Macao ya
  4 Tokyo Japan Chinese tidak
Test 5 Chinese Chinese Chinese Tokyo Japan ?

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

Sumber

Leave a Reply

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

*
*
Website