NAIVE BAYES
Konsep Naive Bayes
Simple naive Bayesian classifier merupakan salah satu metode pengklasifikasian sederhana yang berdasarkan pada penerapan Teorema Bayes dengan asumsi antar variabel penjelas saling bebas (independen).Algoritma ini memanfaatkan metode probabilitas dan statistik yang dikemukakan oleh ilmuwan Inggris Thomas Bayes, yaitu memprediksi probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya. Dua kelompok peneliti, satu oleh Pantel dan Lin, dan yang lain oleh Microsoft Research memperkenalkan metode statistik Bayesian ini pada teknologi anti spam filter. Tetapi yang membuat algoritma Bayesian filtering ini popular adalah pendekatan yang dilakukan oleh Paul Graham. Dasar dari teorema naive digunakan dalam pemrograman adalah rumus Bayes berikut ini:
(
)
(
( )
)
( )
X P Y xP Y X P X Y P =Artinya Peluang kejadian X bersyarat Y ditentukan dari peluang Y terhadap X, peluang X, dan peluang
Y.
Penggunaan Naive Bayes
Contoh penggunaan Algoritma Naive Bayesian antara lain: • Untuk mengklasifikasi Dokumen
• Untuk mendeteksi SPAM atau filtering SPAM • Dan masalah klasifikasi lainnya
Algoritma Naive Bayes
Teorema Bayes:
Dimana :
• P(X) evidence atau buktiP
( )
X • P(C) merupakan peluang prior P(C)• P(X|C) peluang bersyarat yang diketahui disebut sebagai likelihood • P(C|X) peluang bersyarat yang akan dicari atau peluang posterior
Masalah menghitung P(X|C)
Apabila diberikan k atribut yang saling bebas (independence), nilai probabilitas dapat diberikan sebagai berikut.
P(x1,…,xk|C) = P(x1|C) x … x P(xk|C)
Jika atribut ke-i bersifat diskret, maka P(xi|C) diestimasi sebagai frekuensi
1 ) ( ) ( ) ( ) ( X X X P C P C | P | C P = Evidence Prior Likelihood Posterior = ×
relatif dari sampel yang memiliki nilai xi sebagai atribut ke i dalam kelas C. Namun jika atribut ke-i bersifat kontinu, maka P(xi|C) diestimasi dengan fungsi densitas Gauss.
f ( x)
=
1
2
π
σ
−(x −µ)2e
2σ2dengan µ = mean, dan σ = deviasi standar
Independensi bersyarat
Misalkan diberikan tiga variable acak X,Y dan Z
Independensi bersyarat antara X dan Y terhadap Z dapat ditulis sebagai berikut :
(
X Y Z)
P ,(
)
( )
Z P Z Y X P , , =(
)
(
)
P(
( )
Z)
Z Y P x Z Y P Z Y X P , , , , =(
XY Z) (
xP YZ)
P , =(
X Z) (
xPY Z)
P =Dan untuk independensi bersyarat X terhadap Y dan Z dapat ditulis sebagai berikut
(
X Y Z)
P(
X Z)
P , =
Cara kerja Naïve Bayesian
Misalkan di berikan sebuah data sebagai berikut untuk diklasifikasi
X
1X
2. . .
X
nC
. . .
. . .
. . .
. . .
Ya
. . .
. . .
. . .
. . .
Tidak
. . .
. . .
. . .
. . .
Ya
. . .
. . .
. . .
. . .
Ya
Maka dari data tersebut diketahui bahwa X
1,X
2, . . . , X
nadalah atribut ,
sedangkan untuk C disebut sebagai target ( didalamnya hanya ada dua
kemungkinan “ Ya” atau “ Tidak “).
Untuk mencari solusi dari target C diatas kita gunakan rumus
(
)
max
(
)
(
)
1X
P
X
C
P
C
X
P
d i i∏
==
dengan cara kerja sebagai berikut
1. Estimasi peluang dari target C
Hitung peluang jika C=ya dan jika C= tidak
2. Estimasi peluang bersyarat X
iterhadap C
Hitung peluang bersyarat masing-masing atribut X terhadap C,
misalnya
P(
C X1)
, P(
C X2)
sampai P(
C Xn)
3.
Estimasi peluang bersyarat
P(
X C)
yang ingin dicariHitung P
(
XiC =Ya)
dan P(
XiC =Tidak)
4.
Bandingkan nilai antara
P(
XiC =Ya)
dan P(
XiC =Tidak)
Jika nilai
P(
XiC =Ya)
> P(
XiC =Tidak)
maka keputusan akhir adalah Ya4. Contoh
Misalnya ingin diketahui apakah suatu objek masuk dalam ketegori dipilih untuk perumahan atau tidak, maka dengan algoritma Naive Bayes Classifier kita dapat mencari solusi untuk kasus diatas . Untuk menetapkan suatu daerah akan dipilih sebagai lokasi untuk mendirikan perumahan, telah dihimpun 10 aturan.
Ada 4 atribut yang digunakan, yaitu: • harga tanah per meter persegi (C1),
• jarak daerah tersebut dari pusat kota (C2),
• ada atau tidaknya angkutan umum di daerah tersebut (C3), dan
• keputusan untuk memilih daerah tersebut sebagai lokasi perumahan (C4).
a. Probabilitas kemunculan setiap nilai untuk atribut Harga Tanah (C1)
b. Probabilitas kemunculan setiap nilai untuk atribut Jarak dari Pusat Kota (C2)
1
d. Probabilitas kemunculan setiap nilai untuk atribut Dipilih untuk perumahan (C4)
e. Menghitung probabilitas setiap kejadian :
• Berdasarkan data tersebut, apabila diketahui suatu daerah dengan harga tanah MAHAL, jarak dari pusat kota SEDANG, dan ADA angkutan umum, maka dapat dihitung:
YA =P(Ya| Tanah=MAHAL).P(Ya|Jarak=SEDANG).P(Ya| Angkutan=ADA).P(Ya)
= 1/5 x 2/5 x 1/5 x 5/10 = 2/125 = 0,008
TIDAK = P(Tidak| Tanah=MAHAL).P(Tidak|Jarak=SEDANG).P(Tidak| Angkutan=ADA).P(Ya)
= 3/5 x 1/5 x 3/5 x 5/10 = 2/125 = 0,036
• Nilai probabilitas dapat dihitung dengan melakukan normalisasi terhadap likelihood tersebut sehingga jumlah nilai yang diperoleh = 1
Probabilitas Ya = 0,008 0,008 + 0,036 0,036 = 0,182. = Klasifikasi : TIDAK Probabilitas Tidak = 0,008 + 0,036 0,818.
Untuk jenis data harga tanah dan jarak pusat kota yang kontinue, misalnya :
2
2
2
2
• Probabilitas kemunculan setiap nilai untuk atribut Jarak dari Pusat Kota (C2)
• Probabilitas kemunculan setiap nilai untuk atribut Angkutan Umum (C3)
• Probabilitas kemunculan setiap nilai untuk atribut Dipilih untuk Perumahan (C4)
• Apabila diberikan C1 = 300, C2 = 17, C3 = Tidak, maka:
f (C1 = 300 | ya) = 1 2π(168,8787) −(300− 212 )2 e 2(168,8787) = 0,0021. f (C1 = 300 | tidak ) = 1 2π(261.9637) −(300− 435)2 e 2( 261.9637) = 0,0013. f (C 2 = 17 | ya) = 1 2π(3.9623) −(17−4,8 )2 e 2(3.9623) = 0,0009. f (C 2 = 17 | tidak ) = 1 2π(6,3008) −(17−17,2 )2 e 2( 6,3008) = 0,0633. Sehingga : Likelihood Ya = (0,0021) x (0,0009) x 4/5 x 5/10 = 0,000000756. Likelihood Tidak = (0,0013) x (0,0633) x 2/5 x 5/10 = 0,000016458.
• Nilai probabilitas dapat dihitung dengan melakukan normalisasi terhadap likelihood tersebut sehingga jumlah nilai yang diperoleh = 1
• Probabilitas Ya = • Probabilitas Tidak = 0 , 0 0 0 0 00756 0,000000756 + 0,000016458 0,000016458
= 0,0439.
= 0,9561. Klasifikasi : TIDAK
0,000000756 + 0,000016458
Keuntungan Naïve Bayes, diantaranya :
1. Relatif mudah untuk diimplemetasikan karena tidak menggunakan optimasi numerik, perhitungan matriks dan lainnya.
2. Efisien dalam pelatihan dan penggunaannya. 3. Bisa menggunakan data binary atau polinom.
4. Karena diasumsikan independen maka memungkinkan metode ini diimplementasikan dengan berbagai macam data set.
5. Akurasi yang dihasilkan relatif tinggi.
Kelemahan dari Naïve Bayes,
1. Diantaranya karena diasumsikan bahwa Naïve Bayes itu bersifat independen maka memiliki konsekuensi yaitu diantaranya :
• Perkiraan kemungkinan kelas yang tidak akurat
1
Implementasi naïve Bayesian menggunakan php, Misalkan ada data:
Cuaca Temperatur Kecepatan Angin Olahraga
Cerah Normal Pelan Ya
Cerah Normal Pelan Ya
Hujan Tinggi Pelan Tidak
Cerah Normal Kencang Ya
Hujan Tinggi Kencang Tidak
Cerah Normal Pelan Ya
Terlebih dahulu dibuat table dengan variable diatas di database phpmyadmin.
Kemudian insert masing – masing dari data nya:
Setelah itu akan kita buat index.php, config.php, answer.php, dan file sql diatas. Pertama, kita buat file index.php
<?php
require_once("config.php");
$query = mysql_query("SELECT * FROM sample_olahraga;"); ?>
<!doctype html> <html>
<head>
<title>Naive Bayesian Example</title> <style> *{ font-family:Tahoma; } body{ font-size:12px;
1 } </style> </head> <body> <h1>Data Learning</h1>
<table width="50%" border="1" cellspacing="0" cellpadding="5"> <tr>
<th>Harga Tanah</th>
<th>Jarak dari pusat kota</th> <th>Ada angkutan umum</th> <th>Dipilih untuk perumahan?</th> </tr> <?php while($data = mysql_fetch_array($query)){ ?> <tr> <td><?php echo $data['Harga_Tanah']; ?></td> <td><?php echo $data['Jarak_dari_pusat_kota']; ?></td> <td><?php echo $data['ada_angkutan_umum']; ?></td> <td><?php echo $data['dipilih_untuk_perumahan']; ?></td> </tr> <?php } ?> </table> <h1>Question</h1> <p>
<form method="post" action="answer.php">
<table width="50%" cellspacing="0" cellpadding="5"> <tr>
<td align="right" width="50%">Harga Tanah</td> <td>
<select style="padding:3px;" name="cuaca"> <option value="Murah">Murah</option> <option value="Sedang">Sedang</option> <option value="Mahal">Mahal</option> </select> </td> </tr> <tr>
<td align="right">Jarak dari pusat kota</td> <td> <select style="padding:3px;" name="temperatur"> <option value="Dekat">Dekat</option> <option value="Sedang">Sedang</option> <option value="Jauh">Jauh</option> </select> </td> </tr> <tr> <td align="right">Kecepatan Angin</td> <td> <select style="padding:3px;" name="kecepatan_angin">