NAIVE BAYES. Artinya Peluang kejadian X bersyarat Y ditentukan dari peluang Y terhadap X, peluang X, dan peluang Y. Posterior Evidence

dokumen-dokumen yang mirip
MODEL DATA MINING CAPAIAN PEMBELAJARAN. N. Tri Suswanto Saptadi. Definisi Kategori Model Naïve Bayesian k-nearest Neighbor Clustering 12/4/2015

Algoritma Bayesian Network Untuk Simulasi Prediksi Pemenang PILKADA Menggunakan MSBNx

( ) ( ) (3) II-1 ( ) ( )

Akurasi Data Mining Untuk Menghasilkan Pola Kelulusan Mahasiswa

BAB II TINJAUAN PUSTAKA. sekumpulan besar data yang tersimspan dalam penyimpanan dengan

Lisensi Dokumen: Uraian Kasus :

PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI

SISTEM UNTUK DETEKSI KERUSAKAN MESIN DIESEL MOBIL PANTHER DENGAN METODE NAÏVE BAYES

IMPLEMENTASI METODE BAYESIAN NETWORK UNTUK DECISION SUPPORT SYSTEM PADA MINI DETECTOR EARTHQUAKE

BAB III ANALISIS DAN PERANCANGAN

KLASIFIKASI KARAKTERISTIK MAHASISWA UNIVERSITAS COKROAMINOTO PALOPO MENGGUNAKAN METODE NAÏVE BAYES DAN DECISION TREE. Yuli Hastuti

MODUL 12 Model Prediktif

Teknik Pengklasifikasi : Bayesian, JST (ANN) Bertalya Universitas Gunadarma 2009

Alfa Saleh. Teknik Informatika Universitas Potensi Utama Jl K.L. Yos Sudarso KM 6.5 No.3-A, Tanjung Mulia, Medan

BAB II TINJAUAN PUSTAKA

Create Read Update Delete using PHP MySql

BAB III ANALISIS DAN DESAIN SISTEM

BAB II TINJAUAN PUSTAKA

Modul Pemrograman Web Teori + Praktik PHP, XML, Jquery, Ajax, Yii

BAB III METODOLOGI PENELITIAN

BAB I PENDAHULUAN. Peminatan atau bidang peminatan adalah sebuah jurusan yang harus di

BAB X AKSES DAN MANIPULASI DATA

BAB III METODE PENELITIAN

PEMILIHAN TEMPAT KKN (KULIAH KERJA NYATA) DI KABUPATEN TULUNGAGUNG DENGAN METODE NAIVE BAYES SKRIPSI. Diajukan Guna Memenuhi Salah Satu Syarat

Langkah Cara Membuat Form Login Menggunakan PHP dan MySQL Langkah 1: Membuat Tabel MySQL User/Pengguna

IMPLEMENTASI DATA MINING MENGGUNAKAN ALGORITMA NAÏVE BAYES DALAM MENENTUKAN PENGUNDURAN DIRI CALON MAHASISWA PADA UNIVERSITAS DIAN NUSWANTORO SEMARANG

IMPLEMENTASI DAN PENGUJIAN

PENERAPAN DATA MINING DALAM MENENTUKAN JURUSAN SISWA

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA) LEARNING BAYESIAN NETWORK PADA GAME SPORT PINGPONG

Menampilkan user online seperti di obrolan step by step

IMPLEMENTASI DATA MINING UNTUK MEMPREDIKSI DATA NASABAH BANK DALAM PENAWARAN DEPOSITO BERJANGKA DENGAN MENGGUNAKAN ALGORITMA KLASIFIKASI NAIVE BAYES

BAB 3 ALGORITMA C4.5. Algoritma C4.5 merupakan algoritma yang digunakan untuk membentuk pohon keputusan.

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. Dalam tinjauan pustaka dibawah ini terdapat 6 referensi sebagai berikut : - Algoritma Naïve Bayes Classifier

Struktur Bayesian Network untuk Penentuan Class Karakteristik Siswa pada Sistem Tutor Cerdas

Langkah 1 Struktur Folder. Langkah 2 Database. Detil Tutorial

Materi 10: Create Read Update Delete

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

Metode Bayes. Tim Machine Learning

BAB II TINJAUAN PUSTAKA

Script PHP dan MySQL J A M K E E M P A T

APLIKASI SPAM FILTER PADA MICROSOFT OUTLOOK DENGAN METODE BAYESIAN

b) Membuat database tiket. Siapkan databasenya dengan membuat database tiket Sampai langkah ini database tiket sudah siap digunakan

BAB 2 LANDASAN TEORI

APLIKASI DATA MINING UNTUK MENGHASILKAN POLA KELULUSAN SISWA DENGAN METODE NAÏVE BAYES

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

IMPLEMENTASI METODE BAYESIAN DALAM PENJURUSAN DI SMA BRUDERAN PURWOREJO STUDI KASUS: SMA BRUDERAN PURWOREJO

Ruang Kerja DREAMWEAVER MX 2004 :

BAB III ANALISIS DAN DESAIN SISTEM

PENERAPAN ALGORITMA NAÏVE BAYES UNTUK DETEKSI BAKTERI E-COLI

BAB III ANALISA DAN PERANCANGAN SISTEM. Pada bab ini akan dibahas mengenai analisa dan perancangan dari sistem.

BAB I PENDAHULUAN. 1.1 Latar Belakang

Advantages. Keunggulan :

Membuat Database mysql dengan PhpMyAdmin

Penerapan Data Mining Untuk Menampilkan Informasi Pertumbuhan Berat Badan Ideal Balita dengan Menggunakan Metode Naive Bayes Classifier

Kecerdasan Buatan/ Artificial Intelligence

Implementasi Metode Klasifikasi Naïve Bayes Dalam Memprediksi Besarnya Penggunaan Listrik Rumah Tangga

Berdasarkan sistem yang sedang berjalan, tahapan-tahapan proses. deteksi adanya viskositas darah dalam tubuh adalah sebagai berikut :

Membuat Toko Buku dengan PHP - MySQL

Pengenalan Pola. Klasifikasi Naïve Bayes

LAMPIRAN. Lampiran 1 Wawancara dengan Bapak Thoriq Rachmat selaku Manager IT di PT. 1. Apakah perusahaan saat ini membutuhkan sistem server yang baru?

BAB I PENDAHULUAN. dilakukan secara sadar dengan cara menganalisa kemungkinan - kemungkinan

PEMBANGUNAN SPAM FILTERING SYSTEM DENGAN METODE NAIVE BAYESIAN

Simak baik-baik komentar-komentar dalam setiap skrip. Komentar diawali dengan tanda #, //, atau /* dan */

Membuat Login Dengan PHP dan MYSQL

Membangun koneksi dari PHP ke MySQL adalah dengan fungsi mysql_connect();

TIB18 - PEMROGRAMAN WEB. Pemrograman Web Pertemuan & 21-22

Pemrograman Web Lanjut 2017

PENERAPAN METODE NAIVE BAYES UNTUK KLASIFIKASI JAGUNG PRODUKTIF DI GORONTALO

Checkbox dengan Foreach dan MYSQL

Mengenal PHP dan Web Server

BAB IV IMPLEMENTASI SISTEM DAN PENGUJIAN. meliputi pembahasan mengenai proses perekaman gambar berdasarkan interval

BAB I PENDAHULUAN. tindakan di antara beberapa alternatif yang tersedia. Setiap proses pengambilan. mencapai tujuan melalui pelaksanaan atau tindakan.

E-trik Ajax. Database MySQL. Dedi Alnas

KLASIFIKASI CALON PENDONOR DARAH MENGGUNAKAN METODE NAÏVE BAYES CLASSIFIER (Studi Kasus : Calon Pendonor Darah di Kota Semarang)

SKRIPSI. Diajukan Untuk Memenuhi Sebagian Syarat Guna Memperoleh Gelar Sarjana Komputer (S.Kom) Pada Program Studi Teknik Informatika OLEH :

PENGENALAN HTML - 2. Anda bisa menambahkan beberapa cell (kolom) untuk membuat satu baris cell (kolom).

Konektivitas PHP - MySQL

BAB I PENDAHULUAN. dilakukan secara sadar dengan cara menganalisa kemungkinan - kemungkinan

Metoda Naïve Bayes Classifier dan Penggunaannya pada Klasifikasi Dokumen

PRAKTIKUM SISTEM INFORMASI MANAJEMEN

Spesifikasi: Ukuran: 14x21 cm Tebal: 68 hlm Harga: Rp Terbit pertama: Februari 2005 Sinopsis singkat:

BAB IV HASIL DAN UJI COBA

APLIKASI PENENTUAN ANGGOTA KELAS UNGGULAN DENGAN METODE NAÏVE BAYES

BAB IV HASIL DAN UJI COBA

Kata kunci : metode pencarian, perpustakaan, Naïve Bayes Classifier.

Data ini berisi 13 atribut, yaitu. Dengan tipe atribut, yaitu

Aplikasi Inferensi Bayes pada Data Mining terutama Pattern Recognition

Sistem Pakar Untuk Mendiagnosa Penyakit Mata Dengan Metode Bayesian Network

Panduan Web Desain Menggunakan Editor Macromedia Dreamweaver 8

IMPLEMENTASI METODE NAIVE BAYES CLASSIFICATION DALAM KLASIFIKASI KELAYAKAN CALON PENDONOR DARAH (STUDI KASUS PMI KAB. DEMAK)

Langkah 1. Asep Tatang S.

Metode klasifikasi Naïve Bayes. Team teaching

P - 12 Bab 9 : PHP & MySQL

2. inputkk.php. 3. tampilkk.php

BAB III ANALISIS DAN PERANCANGAN

TUTORIAL PHP MYSQL Langkah Tepat menjadi Web Developer Handal, menguasai PHP dan MySQL, jalan terbaik membuat website dan aplikasi berbasis web

LAMPIRAN. 1. Listing Program pada website sekolah. index.php

KLASIFIKASI SPAM MENGGUNAKAN NAÏVE BAYES

Pemrograman Web Lanjut 2017

Transkripsi:

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: P Y X P X Y xpy P X 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: P( C X) P( X C) P( C) P( X) Likelihood Prior Posterior Evidence Dimana : P(X) evidence atau bukti PX 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(x 1,,x k C) = P(x 1 C) x x P(x k C) Jika atribut ke-i bersifat diskret, maka P(x i C) diestimasi sebagai frekuensi relatif dari sampel yang memiliki nilai x i sebagai atribut ke i dalam kelas C. 1

Namun jika atribut ke-i bersifat kontinu, maka P(x i C) diestimasi dengan fungsi densitas Gauss. 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 X dan Y terhadap Z dapat ditulis sebagai berikut : P X, Y Z P X, Y, Z P X Z Z Z PZ P, Y, P Y, x P Y, Z X Y Z xpy Z P, P X Z xpy Z Dan untuk independensi bersyarat X terhadap Y dan Z dapat ditulis sebagai berikut P X Y, Z PX Z 2

Cara kerja Naïve Bayesian Misalkan di berikan sebuah data sebagai berikut untuk diklasifikasi X 1 X 2... X n C............ Ya............ Tidak............ Ya............ Ya Maka dari data tersebut diketahui bahwa X 1, X 2,..., X n 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 berikut 1. Estimasi peluang dari target C Hitung peluang jika C=ya dan jika C= tidak 2. Estimasi peluang bersyarat X i terhadap C P d X C max PC i X P( X ) Hitung peluang bersyarat masing-masing atribut X terhadap C, misalnya P C X1, PC X 2 PC Xn 3. Estimasi peluang bersyarat PX C yang ingin dicari Hitung PXi C Ya dan PXi C Tidak 4. Bandingkan nilai antara PXi C Ya dan PXi C Tidak Jika nilai PXi C Ya > PXi C Tidak maka keputusan akhir adalah Ya Jika nilai PXi C Ya < PXi C Tidak maka keputusan akhir adalah Tidak i1 sampai 3

4. 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) c. Probabilitas kemunculan setiap nilai untuk atribut Ada Angkutan Umum (C3) 4

5

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 TIDAK =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 = 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 0,008 Probabilitas Ya = 0,182. 0,008 0,036 Klasifikasi : TIDAK 0,036 0,818. Probabilitas Tidak = 0,008 0,036 Untuk jenis data harga tanah dan jarak pusat kota yang kontinue, misalnya : Probabilitas kemunculan setiap nilai untuk atribut Harga Tanah (C1) 10 10

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: 1 f (C1 300 ya) 2 (168,8787) f (C1 300 tidak) f (C2 17 ya) f (C2 17 tidak) 1 2 (261.9637) 1 2 (3.9623) 1 2 (6,3008) 300212 2 2 e 2(168,8787) 0,0021. 300435 2 2 e 2(261.9637) 0,0013. 174,8 2 2 e 2(3.9623) 0,0009. 1717,2 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,000000756 0,000000756 0,000016458 0,0439. 0,000016458 0,9561. 0,000000756 0,000016458 Klasifikasi : TIDAK 11 11

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

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{ 13 13

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> <?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> 14 14

name="kecepatan_angin"> </td> <select style="padding:3px;" <option value="ada">ada</option> <option value="tidak">tidak</option> </select> </tr> <tr> <td align="right"> </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';"); 15 15

$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 16 16

$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']; if($p_ada_ya == 0) 17 17

$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>"; 18 18

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, <?php?> mysql_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. 19 19

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

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 variablevariabel. 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 Gambar 1 Struktur Bayesian Network Disamping kondisi independen bersyarat yang dikenakan dengan topologi network, tiap node juga diasosiasikan dengan tabel peluang. 1. Jika node X tidak memiliki orangtua, maka tabel hanya berisi peluang prior P X. 2. jika node X hanya memiliki satu orangtua, Y, maka tabel berisi peluang bersyarat P X Y. 3. jika node X memiliki banyak orangtua Y, Y, 2, P X Y1, Y2,, Y k. `` Untuk penggunaan bayesian network digunakan rumus berikut Ada d`ua unsur kunci Bayesian network : Y k 1, maka tabel berisi peluang bersyarat 1. D`irected acyclic graph (dag) mengencode hubungan dependen antar set variabel. 2. Tabel peluang mengasosiasikan tiap node ke node parent selanjutnya. n P( X1 x1,..., X n xn) P( X i xi Parents( X i )) i1 21 21

Perhatikan tiga variabel acak, A, B, dan C dengan A dan B variabel independen dan masing-masing memiliki pengaruh langsung pada variabel ketiga C. 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. 22 22

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) B A P(C A) C 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 n P( X1 x1,..., X n xn) P( X i xi Parents( X i )) i1 f. Bandingkan nilai dari hasil node yang telah diperoleh untuk dicari solusinya Misalnya untuk graf C diatas, bandingkan jika nilai C=ya dan jika C= tidak g. Tarik kesimpulan berdasarkan nilai peluang yang tertinggi dari proses f. 23 23

Contoh mengambil keputusan menggunakan Bayesian Network Berdasarkan gambar struktur Bayesian network terdiri dari enam variable yang dipresentasikan dalam nodenode 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, Yes, No nilai biner dari Exercise dan Healthy,Unhealthy HD Yes PHD Yes E, D PE D P, HD Yes E D PE PD P, melambangkan nilai biner dari Diet. melambangkan = 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 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). 24 24

dengan Yes, No P BP High PBP High HD PHD = 0.85 x 0.49 + 0.2 x 0.51 = 0.5185.. Oleh karena itu, peluang posterior seseorang memiliki penyakit hati adalah : P HD Yes BP High P BP High HD YesPHD Yes P BP High 0.85x0.49 0.8033. 0.5185 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 : P HD Yes BP High, D Healthy, E Yes P BP P High HD Yes, D Healthy, E Yes BP High D Healthy, E Yes xp HD Yes D Healthy, E Yes PBP High HD YesPHD Yes D Healthy, E Yes PBP High HD PHD D Healthy, E Yes 0.85x0.25 0.85x0.25 0.2x0.75 = 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. 25 25

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

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

Ketiga, mengisi probabilitasnya. Untuk mengisi probabilitasnya anda mulai dengan titik keluar, atau variabel yang menyebabkan dulu. Dalam hal ini adalah tujuan yaitu rain. 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: 28 28

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. 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 29 berikut: 29

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

31 31