NAIVE BAYES

- Naive Bayes Classifier merupakan salah satu pengklasifikasi statistik, dimana pengklasifikasi ini dapat memprediksi probabilitas keanggotaan kelas suatu data yang akan masuk ke dalam kelas tertentu, sesuai dengan perhitungan probabilitas.
- Naive Bayes bertujuan untuk melakukan klasifikasi data pada kelas tertentu, kemudian pola tersebut dapat digunakan untuk memperkirakan nasabah yang bergabung, sehingga perusahaan bisa mengambil keputusan menerima atau menolak calon nasabah tersebut.
- 6 Model untuk mengklasifikasi sebuah dataset
- Naive Bayes (NB). Pada model ini terkait dengan probabilitas (kemunculan suatu kelas dari data yang ada)
- K Nears Neighbords (KNN), intinya adalah melihat tetangga terdekat dari data yang ada.
- Decision Tree (DT), intinya adalah melihat percabangan pohon terakhirnya menuju ke kelas yang mana.
- Support Vector Machine (SVM), kerjanya yaitu kita coba membuat sebuah pemisah (bisa berupa garis yang biasa disebut plane atau bidang yang biasa disebut hyperplane). Kunci dari model ini adalah bagaimana kita membuat plane atau pemisah hyperplane yang terbaik untuk kelas-kelas tersebut (dilihat dari titik-titik yang ada disekitar pemisah itu).
- Neural Network (NN), kuncinya adalah kita mencari bobot.
- Ensemble Learning (EL) berarti menggabungkan beberapa model menjadi 1 model yang baru. Biasanya memakai voting (pemilihan suara terbanyak) dari model-model yang digunakan.
- Rumus Naive Bayes

B : Data dengan class yang belum diketahui
A : Hipotesis data merupakan suatu class spesifik
P(A|B) : Probabilitas hipotesis berdasar kondisi (posterior probability)
P(A) : Probabilitas hipotesis (prior probability)
P(B|A) : Probabilitas berdasarkan kondisi pada hipotesis
P(B) : Probabilitas A
MACAM TAHAPAN ALGORITMA :
1. Baca data training
2. Hitung Class
3. Hitung kasus dan class yang sama
4. Kalikan semuanya sesuai dengan yang dicari class nya
Contoh dari tahapan algoritma Naive Bayes
1. Membaca Dataset
Dari data tersebut berisi 5 informasi yaitu
OUTLOOK
TEMPERATURE
HUMADITY
WINDY, dan
PLAY GOLF.
Data tersebut merupakan tipe data kategorikal. Untuk informasi outlook, terdapat 3 kondisi yaitu
RAINY
SUNNY, dan
OVERCAST.
Terdapat 3 informasi kondisi yang ada pada temperature, yaitu
MILD,
COOL, dan
HOT.
Pada humadity, terdapat 2 informasi kondisi yaitu
HIGH dan NORMAL.
Untuk informasi windy, terdapat 2 kondisi yaitu TRUE dan FALSE.
Pada play golf, terdapat 2 informasi kondisi yaitu YES dan NO.
Dari dataset tersebut terdapat 14 data. Jika seseorang ingin memutuskan bermain golf atau tidak, kita bisa lihat berdasarkan 4 parameter atau variabel di atas yaitu outlook, temperature, humadity dan windy. Pada kasus di atas, kelas yang akan kita cari atau keputusan atau outputnya adalah play golf, dimana ada 2 kelas (binary class) didalamnya yaitu yes & no. Dari data di atas kita dapat cek berapa kelas yes dan berapa kelas no, karena belum tentu nilainya seimbang. Balance adalah jumlah kelasnya sama, inbalance adalah jumlahnya berbeda (ada yang lebih besar). Dari data tersebut diperoleh hasil sebagai berikut:
2. Hitung Jumlah Class/Label
Terdapat 2 class dari data training tersebut, yaitu:
Maka:
- P (C1) = 9/14 = 0.64285
- P (C2) = 5/14 = 0.35714
Pertanyaan:
- Data X = (outlook = rainy, temperature = cool, humadity = high, windy = true)
- Main golf atau tidak?
Berikut tahapan penyelesaiannya:
3. 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, antara lain sebagai berikut:
- P(outlook="sunny" | play="yes") = 2/9 = 0.22222
- P(outlook="sunny" | play="no") = 3/5 = 0.6
- P(outlook="overcast" | play="yes") = 4/9 = 0.44444
- P(outlook="overcast" | play="no") = 0/5 = 0
- P(outlook="rainy" | play="yes") = 3/9 = 0.33333
- P(outlook="rainy" | play="no") = 2/5 = 0.4
Jika semua atribut dihitung, maka didapat hasil akhirnya seperti berikut ini:
4. Kalikan Semua Nilai Hasil Sesuai dengan Data X yang Dicari Class-nya
Pertanyaan:
- Data X = (outlook = rainy, temperature = cool, humadity = high, windy = true)
- Main golf atau tidak?
Kalikan semua nilai hasil dari data X
- P(X | play="yes") = 0.33333*0.33333*0.33333*0.33333 = 0.01234
- P(X | play="no") = 0.4*0.2*0.8*0.6 = 0,0384
- P(X | play="yes")*P(C1) = 0.01234*0.64285 = 0.00793
- P(X | play="yes")*P(C1) = 0,0384*0.35714 = 0.01371
Nilai "no" lebih besar dari nilai "yes" maka class dari data X tersebut adalah "No".
Tidak ada komentar:
Posting Komentar