Bayesian Classification (Klasifikasi Naive Bayes) merupakan salah satu metode klasifikasi dalam data mining yang menggunakan perhitungan probabilitas dan statistik. Metode ini dikenalkan oleh ilmuwan Inggris Thomas Bayes. Fungsinya yakni memprediksi probabilitas di masa depan berdasarkan pengalaman di masa sebelumnya.
Baca Juga: Algoritma Classification dalam Data Mining: Decision Tree
Table of Contents
Mengapa Menggunakan Klasifikasi Naive Bayes?
- Penggolong statistik: melakukan prediksi probabilitas, misalnya: Memprediksi probabilitas keanggotaan kelas
- Foundation: Berdasarkan pada Teorema Bayes
- Kinerja: Penggolong Bayesian sederhana, penggolong Bayesian naif, memiliki kinerja yang sebanding dengan pohon keputusan dan pengklasifikasi jaringan saraf terpilih
- Tambahan: Setiap contoh pelatihan dapat secara bertahap meningkatkan / menurunkan probabilitas bahwa suatu hipotesis benar – pengetahuan sebelumnya dapat dikombinasikan dengan data yang diamati
- Standar: Sekalipun metode Bayesian tidak dapat dilakukan secara komputasional, mereka dapat memberikan standar pengambilan keputusan yang optimal yang dapat diukur dengan metode lain.
Dasar Teorema Bayes
Teorema Total probabilitas:

Teorema Bayes:

- Misalkan X menjadi sampel data (“bukti”): label kelas tidak diketahui
- Misalkan H menjadi hipotesis bahwa X termasuk kelas C
- Klasifikasi adalah untuk menentukan P (H | X), (yakni: Probabilitas posteriori): probabilitas yang dimiliki hipotesis yang diberikan dengan data sampel yang diamati X
- P (H) (probabilitas sebelumnya): probabilitas awal
- E.g., X akan membeli komputer, tanpa memandang usia, penghasilan, …
- P (X): probabilitas bahwa data sampel diamati
- P (X | H) (kemungkinan): probabilitas untuk mengamati sampel X, mengingat hipotesis itu berlaku
- E.g., Mengingat X akan membeli komputer, masalahnya. bahwa X adalah 31..40, penghasilan menengah
Prediksi Berdasarkan Teorema Bayes
- Dengan data training X, probabilitas posteriori dari hipotesis H, P (H | X), mengikuti teorema Bayes

- Secara informal, ini dapat dilihat sebagai
- posteriori = kemungkinan x sebelum / bukti
- Prediksi X adalah milik Ci jika probabilitas P (Ci | X) adalah yang tertinggi di antara semua P (Ck | X) untuk semua kelas k
- Kesulitan praktis: Ini membutuhkan pengetahuan awal tentang banyak probabilitas, yang melibatkan biaya komputasi yang signifikan
Klasifikasi adalah untuk Memperoleh Posteriori Maksimum
- Misalkan D menjadi kumpulan pelatihan tupel dan label kelas terkait, dan setiap tupel diwakili oleh vektor atribut n-D X = (x1, x2, …, xn)
- Misalkan ada kelas m C1, C2, …, Cm.
- Klasifikasi adalah untuk memperoleh posteriori maksimum, misalnya Maksimal P (Ci | X)
- Ini yang diperoleh dari teorema Bayes
- Karena P (X) konstan untuk semua kelas, hanya perlu dimaksimalkan
Klasifikasi Naive Bayes
- Asumsi yang disederhanakan: atribut independen secara kondisional (mis., Tidak ada hubungan ketergantungan antara atribut):
- Ini sangat mengurangi biaya perhitungan: Hanya menghitung distribusi kelas
- Jika Ak adalah kategorikal, P (xk | Ci) adalah # dari tuple di Ci yang memiliki nilai xk untuk Ak dibagi dengan | Ci, D | (# dari tuple Ci di dalam D)
- Jika Ak continous-valued, P (xk | Ci) biasanya dihitung berdasarkan distribusi Gaussian dengan rata-rata μ dan standar deviasi σ dan P (xk | Ci) adalah
Training Dataset

- Class: C1 :buys_computer = ‘yes’ C2 :buys_computer = ‘no’
- Data Diklasifikasikan: X = (age <=30, income = medium, student = yes, credit_rating = fair)
- Apakah X → buy computer?
Kalkulasi
- P(Ci ):
- P(buys_computer = “yes”) = 9/14 = 0.643
- P(buys_computer = “no”) = 5/14= 0.357
- Hitung P(X|Ci ) Untuk tiap kelas
- P(age = “<=30” | buys_computer = “yes”) = 2/9 = 0.222
- P(age = “<= 30” | buys_computer = “no”) = 3/5 = 0.6
- P(income = “medium” | buys_computer = “yes”) = 4/9 = 0.444
- P(income = “medium” | buys_computer = “no”) = 2/5 = 0.4
- P(student = “yes” | buys_computer = “yes) = 6/9 = 0.667
- P(student = “yes” | buys_computer = “no”) = 1/5 = 0.2
- P(credit_rating = “fair” | buys_computer = “yes”) = 6/9 = 0.667
- P(credit_rating = “fair” | buys_computer = “no”) = 2/5 = 0.4
- X = (age <= 30 , income = medium, student = yes, credit_rating = fair)
- P(X|Ci ) :
- P(X|buys_computer = “yes”) = 0.222 x 0.444 x 0.667 x 0.667 = 0.044
- P(X|buys_computer = “no”) = 0.6 x 0.4 x 0.2 x 0.4 = 0.019
- P(X|Ci )*P(Ci ) :
- P(X|buys_computer = “yes”) * P(buys_computer = “yes”) = 0.028
- P(X|buys_computer = “no”) * P(buys_computer = “no”) = 0.007
- P(X|Ci ) :
- Oleh karena itu, X milik kelas (“buys_computer = yes”)
Tahapan Algoritma Naive Bayes
- Baca Data Training
- Hitung jumlah class
- Hitung jumlah kasus yang sama dengan class yang sama
- Kalikan semua nilai hasil sesuai dengan data X yang dicari class-nya
Baca Data Training

Teorema Bayes

- X → Data dengan class yang belum diketahui
- H → Hipotesis data X yang merupakan suatu class yang lebih spesifik
- P (H|X) → Probabilitas hipotesis H berdasarkan kondisi X (posteriori probability)
- P (H) → Probabilitas hipotesis H (prior probability)
- P (X|H) → Probabilitas X berdasarkan kondisi pada hipotesis H
- P (X) → Probabilitas X
Hitung jumlah class/label
Terdapat 2 class dari data training tersebut, yaitu:
- C1 (Class 1) →Play = yes → 9 record
- C2 (Class 2) →Play = no → 5 record
- Total = 14 record
Maka:
- P (C1) = 9/14 = 0.642857143
- P (C2) = 5/14 = 0.357142857
Pertanyaan:
- Data X = (outlook=rainy, temperature=cool, humidity=high, windy=true)
- Main golf atau tidak?
Hitung jumlah kasus yang sama dengan class yang sama
- Untuk P(Ci) yaitu P(C1) dan P(C2) sudah diketahui hasilnya di langkah sebelumnya.
- Selanjutnya Hitung P(X|Ci) untuk i = 1 dan 2
- P(outlook=“sunny”|play=“yes”)=2/9=0.222222222
- P(outlook=“sunny”|play=“no”)=3/5=0.6
- P(outlook=“overcast”|play=“yes”)=4/9=0.444444444
- P(outlook=“overcast”|play=“no”)=0/5=0
- P(outlook=“rainy”|play=“yes”)=3/9=0.333333333
- P(outlook=“rainy”|play=“no”)=2/5=0.4
Jika semua atribut dihitung, maka didapat hasil akhirnya seperti berikut ini:
Atribute | Parameter | No | Yes |
Outlook | value=sunny | 0.6 | 0.2222222222222222 |
Outlook | value=cloudy | 0.0 | 0.4444444444444444 |
Outlook | value=rainy | 0.4 | 0.3333333333333333 |
Temperature | value=hot | 0.4 | 0.2222222222222222 |
Temperature | value=mild | 0.4 | 0.4444444444444444 |
Temperature | value=cool | 0.2 | 0.3333333333333333 |
Humidity | value=high | 0.8 | 0.3333333333333333 |
Humidity | value=normal | 0.2 | 0.6666666666666666 |
Windy | value=false | 0.4 | 0.6666666666666666 |
Windy | value=true | 0.6 | 0.3333333333333333 |
Kalikan semua nilai hasil sesuai dengan data X yang dicari class-nya
- Pertanyaan:
- • Data X = (outlook=rainy, temperature=cool, humidity=high, windy=true)
- • Main Golf atau tidak?
- Kalikan semua nilai hasil dari data X
- P(X|play=“yes”) = 0.333333333 * 0.333333333 * 0.333333333 * 0.333333333 = 0.012345679
- P(X|play=“no”) = 0.40.20.80.6 = 0.0384
- P(X|play=“yes”) * P(C1) = 0.012345679 * 0.642857143 = 0.007936508
- P(X|play=“no”) * P(C2) = 0.0384 * 0.357142857 = 0.013714286
- Nilai “no” lebih besar dari nilai “yes” maka class dari data X tersebut adalah “No”
Baca Juga: Algoritma Clustering dalam Data Mining: Metode Partisi
Menghindari Masalah Zero-Probability
- Prediksi Naïve Bayesian mensyaratkan setiap Probabilitas bersyarat menjadi nol. Jika tidak, Probabilitas yang diprediksi akan menjadi nol
- Misalkan dataset dengan 1000 tupel, pendapatan = rendah (0), penghasilan = sedang (990), dan pendapatan = tinggi (10)
- Gunakan koreksi Laplacian (atau estimator Laplacian)
- Menambahkan 1 ke setiap kasing
- Prob (penghasilan = rendah) = 1/1003
- Prob (penghasilan = sedang) = 991/1003
- Prob (penghasilan = tinggi) = 11/1003
- Masalah “terkoreksi”. Perkiraan dekat dengan rekan-rekan mereka “tidak dikoreksi”
- Menambahkan 1 ke setiap kasing
Kelebihan dan Kekurangan Klasifikasi Naive Bayes
- Keuntungan
- Mudah diimplementasikan
- Hasil yang baik diperoleh di sebagian besar kasus
- Kekurangan
- Asumsi: independensi kondisional kelas, oleh karena itu kehilangan keakuratan
- Secara praktis, ketergantungan ada di antara variabel, mis .: .:
- Profil Pasien Rumah Sakit: usia, riwayat keluarga, dll.
- Gejala: demam, batuk dll.,
- Penyakit: kanker paru-paru, diabetes, dll.
- Ketergantungan di antara ini tidak dapat dimodelkan oleh Naïve Bayes Classifier
- Bagaimana cara mengatasi ketergantungan ini? Bayesian Belief Networks