EXPLORE INFORMATION : AI, BITCOIN, TECHNOLOGY. Enjoy!

NAIVE BAYES ALGORITHM

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

  • Mengklasifikasikan dokumen teks
  • Predeksi Kelulusan Mahasiswa
  • Penyaringan spam e-mail
  • 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


0 Comment: