naive bayesian and bayesian network

33
N A I V E BA Y E S 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: 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 bukti 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 1

Upload: chime-rosu

Post on 25-Apr-2015

122 views

Category:

Documents


5 download

DESCRIPTION

a this free

TRANSCRIPT

Page 1: Naive Bayesian and Bayesian Network

NAIVE BAYES

Konsep Naive BayesSimple 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:

Artinya Peluang kejadian X bersyarat Y ditentukan dari peluang Y terhadap X, peluang X, dan peluang Y.

Penggunaan Naive BayesContoh penggunaan Algoritma Naive Bayesian antara lain:

Untuk mengklasifikasi Dokumen Untuk mendeteksi SPAM atau filtering SPAM Dan masalah klasifikasi lainnya

Algoritma Naive BayesTeorema Bayes:

Dimana :

P(X) evidence atau bukti

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 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.

1

Page 2: Naive Bayesian and Bayesian Network

f ( x) 1

2

x 2

e 2 2

dengan = mean, dan = deviasi standar

Independensi bersyarat

Misalkan diberikan tiga variable acak X,Y dan Z

Independensi bersyarat antara dan terhadap Z dapat ditulis sebagai berikut :

Dan untuk independensi bersyarat X terhadap Y dan Z dapat ditulis sebagai berikut

2

Page 3: Naive Bayesian and Bayesian Network

Cara kerja Naïve Bayesian

Misalkan di berikan sebuah data sebagai berikut untuk diklasifikasi

X1 X2 . . . Xn C. . . . . . . . . . . . Ya. . . . . . . . . . . . Tidak. . . . . . . . . . . . Ya . . . . . . . . . . . . Ya

Maka dari data tersebut diketahui bahwa X1, X2, . . . , Xn adalah 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

dengan cara kerja sebagai berikut1. Estimasi peluang dari target C

Hitung peluang jika C=ya dan jika C= tidak2. Estimasi peluang bersyarat Xi terhadap C

Hitung peluang bersyarat masing-masing atribut X terhadap C, misalnya , sampai

3. Estimasi peluang bersyarat yang ingin dicari

Hitung dan

4. Bandingkan nilai antara dan

Jika nilai > maka keputusan akhir adalah Ya

Jika nilai < maka keputusan akhir adalah Tidak

Page 4: Naive Bayesian and Bayesian Network

4. ContohMisalnya 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)

c. Probabilitas kemunculan setiap nilai untuk atribut Ada Angkutan Umum (C3)

Page 5: Naive Bayesian and Bayesian Network

1010

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,0360,818.

Untuk jenis data harga tanah dan jarak pusat kota yang kontinue, misalnya :

Probabilitas kemunculan setiap nilai untuk atribut Harga Tanah (C1)

Page 6: Naive Bayesian and Bayesian Network

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 4352

e 2( 261.9637) 0,0013.

f (C 2 17 | ya)

1

2 (3.9623)

174,8 2

e 2(3.9623) 0,0009.

f (C 2 17 | tidak )

1

2 (6,3008)

1717,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,0000007560,000000756 0,000016458

0,000016458

0,0439.

0,9561.

Klasifikasi : TIDAK

Page 7: Naive Bayesian and Bayesian Network

1212

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 Batasan atau threshold harus ditentukan secara manual dan bukan secara analitis.

Page 8: Naive Bayesian and Bayesian Network

1313

Implementasi naïve Bayesian menggunakan php,

Misalkan ada data:

Cuaca Temperatur Kecepatan Angin OlahragaCerah Normal Pelan YaCerah Normal Pelan YaHujan Tinggi Pelan TidakCerah Normal Kencang YaHujan Tinggi Kencang TidakCerah 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

<?phprequire_once("config.php");$query = mysql_query("SELECT * FROM sample_olahraga;");?><!doctype html><html><head>

<title>Naive Bayesian Example</title><style>

*{font-family:Tahoma;

}body{

Page 9: Naive Bayesian and Bayesian Network

1414

font-size:12px;}

</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><?phpwhile($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>

Page 10: Naive Bayesian and Bayesian Network

1515

<select style="padding:3px;" name="kecepatan_angin">

<option value="Ada">Ada</option><option value="Tidak">Tidak</option>

</select></td>

</tr><tr>

<td align="right">&nbsp;</td><td><input type="submit" style="border:1px solid;

padding:5px 10px 5px 10px;" value="Temukan Jawaban"></td></tr>

</table></form>

</p></body></html>

kemudian buat file answer.php, script nya seperti dibawah :

<!doctype html><html><head>

<title>Naive Bayesian Example</title><style>

*{font-family:Tahoma;

}body{

font-size:12px;}

</style></head><body><h1>Jawaban</h1><?php

require_once("config.php");$q['all'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan;");$count['all'] = mysql_num_rows($q['all']);

//HITUNG NILAI POSITIF (dipilih_untuk_perumahan = YA)$q['positive'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE dipilih_untuk_perumahan='ya';");$count['positive'] = mysql_num_rows($q['positive']);$count['negative'] = $count['all'] - $count['positive'];

//HITUNG MURAH$q['Murah_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Murah' AND dipilih_untuk_perumahan='Ya';");

$count['Murah_Ya'] = mysql_num_rows($q['Murah_Ya']);$q['Murah_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Murah' AND dipilih_untuk_perumahan='Tidak';");

Page 11: Naive Bayesian and Bayesian Network

1616

$count['Murah_Tidak'] = mysql_num_rows($q['Murah_Tidak']);echo "MURAH YA : $count[Murah_Ya]/$count[positive]<br>";echo "MURAH TIDAK : $count[Murah_Tidak]/$count[negative]<br><br>";

//HITUNG SEDANG$q['Sedang_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Sedang' AND dipilih_untuk_perumahan='Ya';");

$count['Sedang_Ya'] = mysql_num_rows($q['Sedang_Ya']);$q['Sedang_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Sedang' AND dipilih_untuk_perumahan='Tidak';");

$count['Sedang_Tidak'] = mysql_num_rows($q['Sedang_Tidak']);echo "SEDANG YA : $count[Sedang_Ya]/$count[positive]<br>";echo "SEDANG TIDAK :

$count[Sedang_Tidak]/$count[negative]<br><br>";

//HITUNG MAHAL$q['Mahal_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Sedang' AND dipilih_untuk_perumahan='Ya';");

$count['Mahal_Ya'] = mysql_num_rows($q['Mahal_Ya']);$q['Mahal_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Mahal' AND dipilih_untuk_perumahan='Tidak';");

$count['Mahal_Tidak'] = mysql_num_rows($q['Mahal_Tidak']);echo "MAHAL YA : $count[Mahal_Ya]/$count[positive]<br>";echo "MAHAL TIDAK : $count[Mahal_Tidak]/$count[negative]<br><br>";

//HITUNG JARAK DEKAT$q['Dekat_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Jarak_dari_pusat_kota='Dekat' AND dipilih_untuk_perumahan='Ya';");

$count['Dekat_Ya'] = mysql_num_rows($q['Dekat_Ya']);$q['Dekat_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Jarak_dari_pusat_kota='Dekat' AND dipilih_untuk_perumahan='Tidak';");

$count['Dekat_Tidak'] = mysql_num_rows($q['Dekat_Tidak']);echo "DEKAT YA : $count[Dekat_Ya]/$count[positive]<br>";echo "DEKAT TIDAK : $count[Dekat_Tidak]/$count[negative]<br><br>";

//HITUNG JARAK SEDANG$q['Sedang_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Jarak_dari_pusat_kota='Sedang' AND dipilih_untuk_perumahan='Ya';");

$count['Sedang_Ya'] = mysql_num_rows($q['Sedang_Ya']);$q['Sedang_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Jarak_dari_pusat_kota='Sedang' AND dipilih_untuk_perumahan='Tidak';");

$count['Sedang_Tidak'] = mysql_num_rows($q['Sedang_Tidak']);echo "SEDANG YA : $count[Sedang_Ya]/$count[positive]<br>";echo "SEDANG TIDAK :

$count[Sedang_Tidak]/$count[negative]<br><br>";

//HITUNG JARAK JAUH

Page 12: Naive Bayesian and Bayesian Network

1717

$q['Jauh_Ya'] = mysql_query("SELECT * FROM sample_dipilih_untuk_perumahan WHERE Jarak_dari_pusat_kota='Jauh' AND dipilih_untuk_perumahan='Ya';");

$count['Jauh_Ya'] = mysql_num_rows($q['Jauh_Ya']);$q['Jauh_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE Jarak_dari_pusat_kota='Jauh' AND dipilih_untuk_perumahan='Tidak';");

$count['Jauh_Tidak'] = mysql_num_rows($q['Jauh_Tidak']);echo "JAUH YA : $count[Jauh_Ya]/$count[positive]<br>";echo "JAUH TIDAK : $count[Jauh_Tidak]/$count[negative]<br><br>";

//HITUNG ADA ANGKUTAN UMUM$q['Ada_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE ada_angkutan_umum='Ada' AND dipilih_untuk_perumahan='Ya';");

$count['Ada_Ya'] = mysql_num_rows($q['Ada_Ya']);$q['Ada_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE ada_angkutan_umum='Ada' AND dipilih_untuk_perumahan='Tidak';");

$count['Ada_Tidak'] = mysql_num_rows($q['Ada_Tidak']);echo "ADA YA : $count[Ada_Ya]/$count[positive]<br>";echo "ADA TIDAK : $count[Ada_Tidak]/$count[negative]<br><br>";

//HITUNG TIDAK ANGKUTAN UMUM$q['Tidak_Ya'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE ada_angkutan_umum='Tidak' AND dipilih_untuk_perumahan='Ya';");

$count['Tidak_Ya'] = mysql_num_rows($q['Tidak_Ya']);$q['Tidak_Tidak'] = mysql_query("SELECT * FROM

sample_dipilih_untuk_perumahan WHERE ada_angkutan_umum='Tidak' AND dipilih_untuk_perumahan='Tidak';");

$count['Tidak_Tidak'] = mysql_num_rows($q['Tidak_Tidak']);echo "TIDAK YA : $count[Tidak_Ya]/$count[positive]<br>";echo "TIDAK TIDAK : $count[Tidak_Tidak]/$count[negative]<br><br>";

$Harga_Tanah = $_POST['Harga_Tanah'];$Jarak_dari_pusat_kota = $_POST['Jarak_dari_pusat_kota'];$ada_angkutan_umum = $_POST['ada_angkutan_umum'];

$p_Mahal_Ya = $count['Mahal_Ya'] / $count['positive'];$p_Mahal_Tidak = $count['Mahal_Tidak'] / $count['negative'];if($p_Mahal_Ya == 0)

$p_Mahal_Ya = 0.2;if($p_Mahal_Tidak == 0)

$p_Mahal_Tidak = 0.6;

$p_Sedang_Ya = $count['Sedang_Ya'] / $count['positive'];$p_Sedang_Tidak = $count['Sedang_Tidak'] / $count['negative'];if($p_Sedang_Ya == 0)

$p_Sedang_Ya = 0.33;if($p_Sedang_Tidak == 0)

$p_Sedang_Tidak = 0.2;

$p_Ada_Ya = $count['Ada_Ya'] / $count['positive'];$p_Ada_Tidak = $count['Ada_Tidak'] / $count['negative'];

Page 13: Naive Bayesian and Bayesian Network

1818

if($p_Ada_Ya == 0)$p_Ada_Ya = 0.2;

if($p_Ada_Tidak == 0)$p_Ada_Tidak = 0.6;

echo "P(Harga_Tanah = Mahal, dipilih_untuk_perumahan = Ya) = $p_Mahal_Ya<br>";

echo "P(Jarak_dari_pusat_kota = Sedang, dipilih_untuk_perumahan = Ya) = $p_Sedang_Ya<br>";

echo "P(ada_angkutan_umum = Ada, dipilih_untuk_perumahan = Ya) = $p_Ada_Ya<br><br>";

echo "P(Harga_Tanah = Mahal, dipilih_untuk_perumahan = Tidak) = $p_Mahal_Tidak<br>";

echo "P(Jarak_dari_pusat_kota = Sedang, dipilih_untuk_perumahan = Tidak) = $p_Sedang_Tidak<br>";

echo "P(ada_angkutan_umum = Ada, dipilih_untuk_perumahan = Tidak) = $p_Ada_Tidak<br><br>";

if($Harga_Tanah == "Mahal"){$pos_Harga_Tanah = $p_Mahal_Ya;$neg_Harga_Tanah = $p_Mahal_tidak;

}else{$pos_Harga_Tanah = $p_Mahal_Tidak;$neg_Harga_Tanah = $p_Harga_Ya;

}

if($Jarak_dari_pusat_kota == "Sedang"){$pos_Jarak_dari_pusat_kota = $p_Sedang_Ya;$neg_Jarak_dari_pusat_kota = $p_Sedang_Tidak;

}else{$pos_Jarak_dari_pusat_kota = $p_Sedang_Tidak;$neg_Jarak_dari_pusat_kota = $p_Sedang_Ya;

}

if($ada_angkutan_umum == "Ada"){$pos_ada_angkutan_umum = $p_Ada_Ya;$neg_ada_angkutan_umum = $p_Ada_Tidak;

}else{$pos_ada_angkutan_umum = $p_Ada_Tidak;$neg_ada_angkutan_umum = $p_Ada_Ya;

}

$Ya = ($pos_cuaca * $pos_temp * $pos_angin) * ($count['positive']/$count['all']);

$Tidak = ($neg_cuaca * $neg_temp * $neg_angin) * ($count['negative']/$count['all']);

echo "Ya : $Ya<br>";echo "Tidak : $Tidak<br><br>";

if($Ya > $Tidak)$answer = "<span style='color:blue;'>Ya</span>";

else$answer = "<span style='color:red'>Tidak</span>";

Page 14: Naive Bayesian and Bayesian Network

1919

echo "Jika Harga Tanah = <b>$Harga_Tanah</b>, Jarak dari pusat kota = <b>$Jarak_dari_pusat_kota</b>, dan kAda angkutan umum = <b>$ada_angkutan_umum</b>, maka dipilih untuk perumahan = <b>$answer</b>";

?></body></html>

Kemudian untuk yang terakhir buat file config.php sebagai penghubung database ke php,

<?phpmysql_connect("localhost","root","");mysql_select_db("tugas_bayesian");

?>

Kemudian sambungkan ke localhost server atau website, maka tampilannya seperti dibawah ini:

Kemudian pilihan diatas anda pilih sesuai masalah yang akan dicari, misalkan pilih cuaca=cerah, Temperatur=Normal, Kecepatan Angin=Pelan. Lalu Pilih “Temukan Jawaban”.

Page 15: Naive Bayesian and Bayesian Network

2020

Maka dapat disimpulkan bahwa jika cuaca cerah, temperature normal, dan keadaan angin pelan maka diperbolehkan melakukan olahraga.

Page 16: Naive Bayesian and Bayesian Network

2121

BAYESIAN NETWORK

Bayesian network adalah sebuah Dyrected acyclic graph ( DAG) dengan sebuah tabel probabilitas untuk setiap node. Node yang terdapat pada Bayesian network merupakan representasi variable proporsional dalam suatu domain dan garis menunjukkan hubungan ketergantungan diantara variable-variabel. Dalam hal kaitannya dengan basis data , pada network Bayesian node merupakan representasi dari atribut-atribut tabel yang ada pada basis data. Bayesian network dapat dikatakan sebagai salah satu penerapan metode klasifikasi pada fungsi prediktif pada teknologi data mining.

• Bayesian Network atau Belief Network atau Probabilistik Network adalah model grafik untuk merepresentasikan interaksi antar variabel.

• Bayesian Network digambarkan seperti graf ( gambar 1) yang terdiri dari simpul (node) dan busur (arc). Simpul menunjukkan variabel misal X beserta nilai probabilitasnya P(X) dan busur menunjukkan hubungan antar simpul.

• Jika ada hubungan dari simpul X ke simpul Y, ini mengindikasikan bahwa variabel X ada pengaruh terhadap variabel Y. Pengaruh ini dinyatakan dengan peluang bersyarat P(Y|X). X adalah Rain dan Y adalah Wet Grass

Disamping kondisi independen bersyarat yang dikenakan dengan topologi network, tiap node juga diasosiasikan dengan tabel peluang.

1. Jika node tidak memiliki orangtua, maka tabel hanya berisi peluang prior .2. jika node hanya memiliki satu orangtua, , maka tabel berisi peluang bersyarat .

3. jika node memiliki banyak orangtua , maka tabel berisi peluang bersyarat

.

Untuk penggunaan bayesian network digunakan rumus berikut

Ada dua unsur kunci Bayesian network :

1. Directed acyclic graph (dag) mengencode hubungan dependen antar set variabel.

2. Tabel peluang mengasosiasikan tiap node ke node parent selanjutnya.

Gambar 1

Struktur Bayesian Network

Page 17: Naive Bayesian and Bayesian Network

2222

Perhatikan tiga variabel acak, , , dan dengan dan variabel independen dan masing-masing memiliki pengaruh langsung pada variabel ketiga . Hubungan antar variabel dapat diringkas ke dalam directed acyclic graph yang ditunjukkan Tabel 2 (a). Tiap node pada grafik merepresentasikan sebuah variabel, dan tiap panah menyatakan hubungan dependen antara pasangan variabel. Jika arah panah dari a ke c, maka a adalah parent dari c dan c adalah anak dari a.

Page 18: Naive Bayesian and Bayesian Network

2323

Cara kerja Bayesian network

Asumsikan diberikan sebuah data biasa:Variable 1 : memiliki probabilitas 1.Variable 2 : memiliki probabilitas 2.

.

.

.Variabel n : memilki probabilitas n.

Untuk Data – data tersebut proses pengolahannya:a. Amati node dari tiap variable.b. Hubungkan tiap node – node tersebut berdasarkan hubungan sebab akibat jika terdapat

hubungan

Sebagai contoh misalkan ada struktur Bayesian Network seperti dibawah ini:

P(C|B) P(C|A)

P(C|B,A)

Maka dari graf diatas terlihat bahwa A dan B independen, sementara C terhubungkan oleh A dan juga B dan jika terhubung maka untuk mencari nilai peluangnya kita gunakan peluang bersyarat.

c. Ulangi proses b hingga semua node terhubungkan satu sama lain.d. Estimasi peluang dari masalah yang akan dicari solusinya dengan melihat nilai peluang dari

masing-masing node baik yang independen dan bersyarat dan biasanya untuk nilai peluang dari masing-masing node sudah ditentukan dari awal .

e. Hitung peluang dari masalah yang ingin dicari solusinya dengan melihat nilai peluang dari masing-masing node yang berhubungan dengan node yang ingin dicari solusinya dengan tetap menggunakan kaidah Bayes yang telah dijelaskan pada algoritma Naïve Bayesian sebelumnya dengan rumus

f. Bandingkan nilai dari hasil node yang telah diperoleh untuk dicari solusinyaMisalnya untuk graf C diatas , bandingkan jika nilai C=ya dan jika C= tidak

g. Tarik kesimpulan berdasarkan nilai peluang yang tertinggi dari proses f.

B A

C

Page 19: Naive Bayesian and Bayesian Network

2424

Contoh mengambil keputusan menggunakan Bayesian Network

Berdasarkan gambar struktur Bayesian network terdiri dari enam variable yang dipresentasikan dalam node-node yaitu : Exercise ( E), Diet (D), Heart Desease ( HD), Heartburn ( Hb), Blood Pressure (BP), Chest Pain (CP), dan terdapat 3 skenario diagnosis untuk menentukan seseorang akan mempunyai penyakit jantung (HD=Yes) atau tidak (HD=No).

Kasus 1 : tidak ada informasi terdahulu

Tanpa informasi sebelumnya, dapat ditentukan apakah sesorang memiliki heart disease dengan

menghitung peluang prior P(HD=Yes) dan P(HD=No). Untuk menyederhanakan notasi,

melambangkan nilai biner dari Exercise dan

melambangkan nilai biner dari Diet.

= 0.25 x 0.7 x 0.25 + 0.45 x 0.7 x 0.75 + 0.55 x 0.3 x 0.25 + 0.75 x 0.3 x 0.75

= 0.49

Karena P(HD=no) = 1 - P(HD=yes)=0.51, orang tersebut besar kemungkinan tidak terkena

penyakit tersebut.

Kasus 2 : tekanan darah tinggi

Page 20: Naive Bayesian and Bayesian Network

2525

Jika seseorang memiliki tekanan darah tinggi, dapat dilakukan diagnosa penyakit hati dengan

membandingkan peluang posterior P(HD = Yes|BP=High) dengan P(HD = No|BP=High). Untuk

melakukan ini, harus dihitung P(BP=High).

= 0.85 x 0.49 + 0.2 x 0.51 = 0.5185.

dengan . Oleh karena itu, peluang posterior seseorang memiliki penyakit hati adalah :

.

Dengan cara yang sama, P(HD = No|BP=High) = 1 – 0.8033 = 0.1967. Oleh karena itu, ketika

seseorang memiliki tekanan darah tinggi, maka resiko terkena penyakit hati akan meningkat.

Kasus 3 : tekanan darah tinggi, diet sehat dan olahraga teratur

Jika diberitahu bahwa orang tersebut melakukan olahraga teratur dan makan dengan pola diet

yang sehat. Bagaimana informasi baru mempengaruhi diagnosa? Dengan informasi baru tersebut,

peluang posterior bahwa seseorang terkena penyakit hati adalah :

= 0.5862

sedang peluang bahwa seseorang tidak terkena penyakit hati adalah :

P(HD=No|BP=High, D=Healthy, E=Yes) = 1 – 0.5862 = 0.4138.

Model tersebut selanjutnya menyatakan bahwa dengan pola makan sehat dan melakukan

olahraga teratur akan mengurangi resiko penyakit hati.

Page 21: Naive Bayesian and Bayesian Network

2626

Contoh networks bayesian dengan program Genie v2.0.

Misalkan ada kausal diagram, berikut probabilitasnya:

Untuk menjawab”Brapa probailitas terjadi hujan jika rumput dalam keadaan basah”?

Kita akan menggunakan software Genie untuk menjawab probailitas tersebut.

Pertama, buat 3 variabel dulu

Kemudian, buat iconnya dengan meklik icon warna kuning pada toolbar genie, kemudian

tarik ke kanvas.

Setelah terbuat, maka langsung diberi nama.

Page 22: Naive Bayesian and Bayesian Network

2727

Jika variabel telah anda buat, anda bisa klik 2 kali pada variable tersebut, dan diberi nama

“rain” atau hujan. Anda buat selanjutnya untuk 2 variabel yang lain dengan nama

“sprinkler” dan “grass wet”. Hasilnya adalah seperti dibawah ini:

Kedua, menentukan hubungan setiap variabel.

Hubungkan dengan tanda panah tiap node seperti dalam causal loopdiagram atau

diagram sebab akibat.

Anda bisa melihat pada gambar diatas, pilih icon bernama “arc”. Lalu klik, tinggal anda

arahkan pada gambar dengan klik pada asal panah ke tujuan panah. Maka, hasilnya

seperti dibawah ini.

Ketiga, mengisi probabilitasnya. Untuk mengisi probabilitasnya anda mulai dengan titik

keluar, atau variabel yang menyebabkan dulu. Dalam hal ini adalah tujuan yaitu “rain”.

Page 23: Naive Bayesian and Bayesian Network

2828

Maka jika anda mengklik 2 kali variabel “rain” akan keluar windows “node properties rain”,

tinggal anda cari tab definition kemudian isi dengan probabilitasnya.

Gambarnya seperti diatas jika anda mengklik 2 kali pada variable, kemudian anda isikan

sesuai soal pada studi kasus. Cara mengisinya adalah anda arahkan cursor anda pada

kolom yang disediakan. Untuk variabel srinklernya adalah sebagai berikut:

Baris pertama (rain, true, false) menunjukkan kolom untuk hujan, sedangkan baris ke-2

dan ke-3 menunjukkan sprinklernya. Untuk variabel terakhirnya hasilnya seperti dibawah

ini:

Keempat, adalah mengkondisikan sesuai soal pada studi kasus. Yaitu “berapa probabilitas

terjadi hujan jika rumput dalam keadaan basah?”. Sementara yang perlu anda perhatikan

dalam genie adalah “view as”, “set evidence” dan “update beliefs”.

Page 24: Naive Bayesian and Bayesian Network

2929

Untuk letak vies as:

Klik pada icon, kemudian pada menu node lalu view as lalu bar chart.

Untuk letak set evidence, yaitu sekarang yang anda lakukan adalah mengeset evidence

pada setiap variabel sesuai soalnya. Pada kasus ini yang perlu di set evidence-nya

adalah:

- Wet grass diset true.

- Rain dibiarkan saja.

- Sprinkler juga dibiarkan saja.

Cara mensetnya adalah dengan klik pada “tanda tanya” di pojok kiri setiap icon, jadi yang

perlu anda set adalah hanya wet grass, yaitu sebagai berikut:

Page 25: Naive Bayesian and Bayesian Network

3030

Pada gambar diatas, pilih set evidence lalu pilih true.

Untuk update beliefs, klik pada simbol “?” lalu pilih update beliefs. Kemudian otomatis

yang tidak di set evidence akan update berdasarkan yang di setn (wet grass)

Kesimpulannya, selain tanda centang adalah set evidence, dalam gambar diatas hanya

grass wet yang diset. Kemudian berdasarkan data yang telah di input terdapat nilai

0,413% yang menunjukkan probabilitas hujan jika rumput basah.

Page 26: Naive Bayesian and Bayesian Network

3131