Fix Bayes Network and Naive fix

download Fix Bayes Network and Naive fix

of 27

Transcript of Fix Bayes Network and Naive fix

  • 7/30/2019 Fix Bayes Network and Naive fix

    1/27

    Tugas kelompok

    SISTEM BASIS DATA

    NAVE BAYESIAN DAN BAYESIAN NETWORK

    OLEH:

    KELOMPOK 9

    AHMAD JAMIL H12110290

    TRY KHAIRUL I AMTSAL H12110264

    RIFAATUL MAHMUDA H12110101

    UMIYI CALSUM H12110261

    JURUSAN MATEMATIKA

    FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

    UNIVERSITAS HASANUDDIN

    2013

  • 7/30/2019 Fix Bayes Network and Naive fix

    2/27

    1

    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:

    XP

    YxPYXPXYP

    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 XP P(C) merupakan peluangprior P(C)

    P(X|C) peluang bersyarat yang diketahui disebut sebagai likelihood

    P(C|X) peluang bersyarat yang akan dicari atau peluang posterior

    Masalahmenghitung 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 xP(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.

    )(

    )()()(

    X

    XX

    P

    CPC|P|CP

    Evidence

    PriorLikelihoodPosterior

  • 7/30/2019 Fix Bayes Network and Naive fix

    3/27

    2

    Namun jika atribut ke-i bersifat kontinu, maka P(xi|C) diestimasi dengan fungsi densitas Gauss.

    f(x)

    1

    2

    x 2

    e 22

    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 :

    ZYXP ,

    ZPZYXP ,,

    ZPZYP

    xZYP

    ZYXP ,

    ,

    ,,

    ZYxPZYXP ,

    ZYxPZXP

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

    ZXPZYXP ,

  • 7/30/2019 Fix Bayes Network and Naive fix

    4/27

    3

    Cara kerja Nave 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

    )(max1

    XPXCPCXPd

    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 Xi terhadap C

    Hitung peluang bersyarat masing-masing atribut X terhadap C, misalnya 1XCP , 2XCP sampai XnCP

    3. Estimasi peluang bersyarat CXP yang ingin dicari

    Hitung YaCXiP dan TidakCXiP 4. Bandingkan nilai antara YaCXiP dan TidakCXiP

    Jika nilai YaCXiP > TidakCXiP maka keputusan akhir adalah Ya

    Jika nilai YaCXiP < TidakCXiP maka keputusan akhir adalah Tidak

  • 7/30/2019 Fix Bayes Network and Naive fix

    5/27

    4

    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)

  • 7/30/2019 Fix Bayes Network and Naive fix

    6/27

    5

  • 7/30/2019 Fix Bayes Network and Naive fix

    7/27

    10

    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, jarakdari 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 tersebutsehingga 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)

  • 7/30/2019 Fix Bayes Network and Naive fix

    8/27

    11

    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)

    300212 2

    e2(168,8787) 0,0021.

    f (C1 300 | tidak)

    1

    2 (261.9637)

    300435 2

    e2(261.9637) 0,0013.

    f(C2 17 | ya)

    1

    2 (3.9623)

    174,8 2

    e 2(3.9623) 0,0009.

    f(C2 17 | tidak)

    1

    2 (6,3008)

    1717,22

    e2(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 sehinggajumlah nilai yang diperoleh = 1

    Probabilitas Ya =

    Probabilitas Tidak =

    0,000000756

    0,000000756 0,000016458

    0,000016458

    0,0439.

    0,9561.

    Klasifikasi : TIDAK

    0,000000756 0,000016458

  • 7/30/2019 Fix Bayes Network and Naive fix

    9/27

    12

    Keuntungan Nave 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 Nave Bayes,

    1. Diantaranya karena diasumsikan bahwa Nave 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.

  • 7/30/2019 Fix Bayes Network and Naive fix

    10/27

    13

    ImplementasinaveBayesian 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

    Naive Bayesian Example

    *{font-family:Tahoma;

    }

    body{

  • 7/30/2019 Fix Bayes Network and Naive fix

    11/27

    14

    font-size:12px;

    }

    Data Learning

    Harga Tanah

    Jarak dari pusat kota

    Ada angkutan umum

    Dipilih untuk perumahan?

    Question

    Harga Tanah

    Murah

    Sedang

    Mahal

    Jarak dari pusat kota

    Dekat

    Sedang

    Jauh

    Kecepatan Angin

  • 7/30/2019 Fix Bayes Network and Naive fix

    12/27

    15

    Ada

    Tidak

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

    Naive Bayesian Example

    *{

    font-family:Tahoma;

    }

    body{

    font-size:12px;

    }

    Jawaban

  • 7/30/2019 Fix Bayes Network and Naive fix

    13/27

    16

    $count['Murah_Tidak'] = mysql_num_rows($q['Murah_Tidak']);

    echo "MURAH YA : $count[Murah_Ya]/$count[positive]
    ";

    echo "MURAH TIDAK : $count[Murah_Tidak]/$count[negative]

    ";

    //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]
    ";

    echo "SEDANG TIDAK : $count[Sedang_Tidak]/$count[negative]

    ";

    //HITUNG MAHAL

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

    sample_dipilih_untuk_perumahan WHERE Harga_Tanah='Sedang' ANDdipilih_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]
    ";

    echo "MAHAL TIDAK : $count[Mahal_Tidak]/$count[negative]

    ";

    //HITUNG JARAK DEKAT

    $q['Dekat_Ya'] = mysql_query("SELECT * FROMsample_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]
    ";

    echo "DEKAT TIDAK : $count[Dekat_Tidak]/$count[negative]

    ";

    //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]
    ";

    echo "SEDANG TIDAK : $count[Sedang_Tidak]/$count[negative]

    ";

    //HITUNG JARAK JAUH

  • 7/30/2019 Fix Bayes Network and Naive fix

    14/27

    17

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

    echo "JAUH TIDAK : $count[Jauh_Tidak]/$count[negative]

    ";

    //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]
    ";echo "ADA TIDAK : $count[Ada_Tidak]/$count[negative]

    ";

    //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]
    ";

    echo "TIDAK TIDAK : $count[Tidak_Tidak]/$count[negative]

    ";

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    15/27

    18

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

    echo "P(Jarak_dari_pusat_kota = Sedang, dipilih_untuk_perumahan = Ya) =

    $p_Sedang_Ya
    ";

    echo "P(ada_angkutan_umum = Ada, dipilih_untuk_perumahan = Ya) =

    $p_Ada_Ya

    ";

    echo "P(Harga_Tanah = Mahal, dipilih_untuk_perumahan = Tidak) =

    $p_Mahal_Tidak
    ";

    echo "P(Jarak_dari_pusat_kota = Sedang, dipilih_untuk_perumahan = Tidak)

    = $p_Sedang_Tidak
    ";

    echo "P(ada_angkutan_umum = Ada, dipilih_untuk_perumahan = Tidak) =

    $p_Ada_Tidak

    ";

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

    echo "Tidak : $Tidak

    ";

    if($Ya > $Tidak)$answer = "Ya";

    else

    $answer = "Tidak";

  • 7/30/2019 Fix Bayes Network and Naive fix

    16/27

    19

    echo "Jika Harga Tanah = $Harga_Tanah, Jarak dari pusat kota =

    $Jarak_dari_pusat_kota, dan kAda angkutan umum =

    $ada_angkutan_umum, maka dipilih untuk perumahan = $answer";

    ?>

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

    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.

  • 7/30/2019 Fix Bayes Network and Naive fix

    17/27

    20

    Maka dapat disimpulkan bahwa jika cuaca cerah, temperature normal, dan keadaan angin pelan maka

    diperbolehkan melakukan olahraga.

  • 7/30/2019 Fix Bayes Network and Naive fix

    18/27

    21

    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 nodejuga

    diasosiasikan dengan tabel peluang.

    1. Jika node X tidak memiliki orangtua, maka tabel hanya berisi peluang prior XP .

    2. jika node X hanya memiliki satu orangtua, Y , maka tabel berisi peluang bersyarat YXP .3. jika node X memiliki banyak orangtua kYYY ,,, 21 , maka tabel berisi peluang bersyarat

    kYYYXP ,,, 21 .

    ``

    Untuk penggunaan bayesian network digunakan rumus berikut

    Ada d`ua unsur kunci Bayesiannetwork :

    1. D`irectedacyclicgraph (dag) mengencode hubungan dependen antar set variabel.

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

    Gambar 1

    Struktur Bayesian Network

    n

    i

    iiinnXParentsxXPxXxXP

    1

    11 ))(|(),...,(

  • 7/30/2019 Fix Bayes Network and Naive fix

    19/27

    22

    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

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    20/27

    23

    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 BayesianNetwork 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 Adan 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 Nave Bayesian

    sebelumnya dengan rumus

    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.

    B A

    C

    n

    i

    iiinn XParentsxXPxXxXP1

    11))(|(),...,(

  • 7/30/2019 Fix Bayes Network and Naive fix

    21/27

    24

    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, NoYes, melambangkan

    nilai biner dari Exercise dan UnhealthyHealthy, melambangkan nilai biner dari Diet.

    DEPDEYesHDPYesHDP ,,

    DPEPDEYesHDP ,

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    22/27

    25

    HDPHDHighBPPHighBPP

    = 0.85 x 0.49 + 0.2 x 0.51 = 0.5185.

    dengan NoYes, . Oleh karena itu, peluang posteriorseseorang memiliki penyakit hati adalah :

    HighBPP

    YesHDPYesHDHighBPPHighBPYesHDP

    8033.05185.0

    49.085.0

    x.

    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 :

    YesEHealthyDHighBPYesHDP ,,

    YesEHealthyDHighBPP

    YesEHealthyDYesHDHighBPP

    ,

    ,,

    YesEHealthyDYesHDxP ,

    YesEHealthyDHDPHDHighBPP

    YesEHealthyDYesHDPYesHDHighBPP

    ,

    ,

    75.02.025.085.0

    25.085.0

    xx

    x

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    23/27

    26

    Contoh networks bayesian dengan program Genie v2.0.

    Misalkan ada kausal diagram, berikut probabilitasnya:

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    24/27

    27

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    25/27

    28

    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:

  • 7/30/2019 Fix Bayes Network and Naive fix

    26/27

    29

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

  • 7/30/2019 Fix Bayes Network and Naive fix

    27/27

    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.