Selasa, 22 Januari 2013

NAIVE BAYES ALGORITHM



NAVIE BAYES

Definisi

Naïve Bayes merupakan pengklasifikasian dengan metode probabilitas dan statistic (memprediksi peluang di masa depan berdasarkan pengalaman di masa sebelumnya).

Tahapan Algoritma


}  Pada sebuah dataset, setiap baris/dokumen  diasumsikan sebagai vector dari nilai-nilai atribut <x1,x2,...,x3> dimana tiap nilai-nilai menjadi peninjauan atribut Xi (iЄ[1,n]))
}  Setiap baris mempunyai label kelas ci Є {c1,c2,…,ck} sebagai nilai variabel kelas C, sehingga untuk melakukan klasifikasi dapat dihitung nilai probabilitas p(C=ci|X=xj)
}  dikarenakan pada Naïve Bayes diasumsikan setiap atribut saling bebas, maka persamaan yang didapat adalah sebagai berikut :
       Peluang p(C=ci|X=xj) menunjukkan peluang bersyarat atribut Xi dengan nilai xi diberikan kelas c
}  Dikarenakan pada Naïve Bayes diasumsikan setiap atribut saling bebas, maka persamaan yang didapat adalah sebagai berikut :
       Peluang p(C=ci|X=xj) menunjukkan peluang bersyarat atribut Xi dengan nilai xi diberikan kelas c
       Kelas C bertipe kualitatif sedangkan atribut Xi dapat bertipe kualitatif ataupun kuantitatif.

Penerapan Algortima untuk Studi Kasus


  1. Mengklasifikasikan dokumen teks
  2. Predeksi Kelulusan Mahasiswa
  3. Penyaringan spam e-mail
  4. Hybrid Recommender System
Contoh Implementasi ke Kode VB





Dim ProbiYes, ProbiNo As Double
Dim Y_Tepat, Y_Terlambat As Integer

Dim CounDtSet As Integer
Dim Klm_Tepat, Klm_Terlambat As Integer
Dim Mhs_Tepat, Mhs_Terlambat As Integer
Dim Nk_Tepat, Nk_Terlambat As Integer
Dim Ipk_Tepat, Ipk_Terlambat As Integer

'total data terning
Rst.Open "select count(*) as Hsl from Tb_Trening", Conn, adOpenKeyset, adLockOptimistic
CounDtSet = Rst!hsl
Rst.Close
'total data trening dengan keterangan TEPAT
Rst.Open "select count(*) as Hasil from Tb_Trening where KETERANGAN ='TEPAT'", Conn, adOpenKeyset
Y_Tepat = Rst!Hasil
Rst.Close
'total data trening dengan keterangan TERLAMBAT
Rst.Open "select count(*) as Hasil from Tb_Trening where KETERANGAN='TERLAMBAT'", Conn, adOpenKeyset
Y_Terlambat = Rst!Hasil
Rst.Close


'**************  JENIS KELAMIN  **********************
Rst.Open "select count(*) as Hsl from Tb_Trening where KELAMIN = '" & CboKelamin.Text & "' and KETERANGAN ='TEPAT'", Conn, adOpenKeyset
Klm_Tepat = (Rst!hsl+1) ' 'menampung nilai ke variabel
Rst.Close
Rst.Open "select count(*) as Hsl from Tb_Trening where KELAMIN = '" & CboKelamin.Text & "' and KETERANGAN ='TERLAMBAT'", Conn, adOpenKeyset
Klm_Terlambat =( Rst!hsl +1)'menampung nilai ke variabel
Rst.Close

'**************  STATUS MAHASISWA  **********************
Rst.Open "select count(*) as Hsl from Tb_Trening where STATUS_MHS = '" & CboStatus.Text & "' and KETERANGAN ='TEPAT'", Conn, adOpenKeyset
Mhs_Tepat = Rst!hsl ' 'menampung nilai ke variabel
Rst.Close
Rst.Open "select count(*) as Hsl from Tb_Trening where STATUS_MHS = '" & CboStatus.Text & "' and KETERANGAN ='TERLAMBAT'", Conn, adOpenKeyset
Mhs_Terlambat = Rst!hsl 'menampung nilai ke variabel
Rst.Close

'**************  STATUS PERNIKAHAN  **********************
Rst.Open "select count(*) as Hsl from Tb_Trening where ST_PRENIKAHAN = '" & CboNikah.Text & "' and KETERANGAN ='TEPAT'", Conn, adOpenKeyset
Nk_Tepat = Rst!hsl ' 'menampung nilai ke variabel
Rst.Close
Rst.Open "select count(*) as Hsl from Tb_Trening where ST_PRENIKAHAN = '" & CboNikah.Text & "' and KETERANGAN ='TERLAMBAT'", Conn, adOpenKeyset
Nk_Terlambat =( Rst!hsl+1) 'menampung nilai ke variabel
Rst.Close

'**************  IPK SEMSTER 1 s/d 6  **********************
Rst.Open "select count(*) as Hsl from Tb_Trening where IPK = '" & MaskEdBox1.Text & "' and KETERANGAN ='TEPAT'", Conn, adOpenKeyset
Ipk_Tepat = (Rst!hsl + 1) 'menampung nilai ke variabel
Rst.Close
Rst.Open "select count(*) as Hsl from Tb_Trening where IPK = '" & MaskEdBox1.Text & "' and KETERANGAN ='TERLAMBAT'", Conn, adOpenKeyset
Ipk_Terlambat = ( Rst!hsl+ 1) 'menampung nilai ke variabel
Rst.Close

'MENJUMLAHKAN NILAI PROBALITAS
ProbiYes = (Klm_Tepat / Y_Tepat) * (Mhs_Tepat / Y_Tepat) * (Nk_Tepat / Y_Tepat) * (Ipk_Tepat/ Y_Tepat) * (Y_Tepat / CounDtSet)
ProbiNo = (Klm_Terlambat / Y_Terlambat) * (Mhs_Terlambat / Y_Terlambat) * (Nk_Terlambat / Y_Terlambat) * (Ipk_Terlambat / Y_Terlambat) * (Y_Terlambat / CounDtSet)

'MEMBANDINGKAN HASIL
If ProbiYes > ProbiNo Then
TxtHasil.Text = "LULUS TEPAT WAKTU"
Else
TxtHasil.Text = "LULUS TERLAMBAT"
End If


Artikel Terkaint:


Perhitungan sederhana Algoritma Naive Bayes untuk Klasifikasi Predeksi Keluluan


4 komentar:

  1. makasih artiklenya, saya telah mencoba algoritma ini, demo program : http://arfianhidayat.com/algoritma-naive-bayes
    semoga membantu

    BalasHapus
  2. Kalau coding untuk di matlab ny ada gk ka

    BalasHapus
  3. Kalau coding untuk di matlab ny ada gk ka

    BalasHapus
  4. ini ada contoh programnya nggak kak?

    BalasHapus