Klasifikasi (Season 1)Naive Bayes
Pengenalan Pola
Materi 3
Eko Prasetyo
Teknik Informatika
UPN “Veteran” Jawa Timur
2012
2
Konsep Klasifikasi Klasifikasi merupakan suatu pekerjaan yang melakukan
penilaian terhadap suatu obyek data untuk masuk dalam suatu kelas tertentu dari sejumlah kelas yang tersedia.
Ada dua pekerjaan utama:◦ Pembangunan model sebagai prototype untuk disimpan
sebagai memori◦ Menggunakan model tersebut untuk melakukan
pengenalan/klasifikasi/prediksi pada suatu obyek data lain masuk pada kelas mana
Contoh aplikasi:◦ Klasifikasi pengenalan jenis hewan spesies baru.◦ Diagnosis penyakir pasien◦ Pengenalan jenis bunga◦ Pemeriksaan kualitas bunga kamboja (bahan teh)◦ Absensi karyawan (dengan sidik jari, mata, wajah, tangan, dsb.)
3
Model Klasifikasi merupakan pekerjaan yang melakukan
pelatihan/pembelajaran terhadap fungsi target f yang memetakan setiap set atribut (fitur) x ke satu dari sejumlah label kelas y yang tersedia. ◦ Akan menghasilkan suatu model yang kemudian disimpan sebagai memori.
Model dalam klasifikasi sama artinya dengan black box◦ Ada suatu model yang menerima masukan kemudian mampu melakukan
pemikiran terhadap masukan dan memberikan jawaban sebagai keluaran dari hasil pemikirannya.
Pembangunan model selama proses pelatihan menggunakan algoritma pelatihan (learning algorithm)
Pembangunan Model
Masukan
Data Latih (x,y)
Penerapan ModelMasukan
Data Uji (x,?)
Keluaran
Data Uji (x,y)
Algoritma Pelatihan
4
Algoritma Klasifikasi Dibagi menjadi dua macam: eager learner dan lazy learner. Eager learner
◦ Didesain untuk melakukan pembacaan/ pelatihan/ pembelajaran pada data latih untuk dapat memetakan dengan benar setiap vektor masukan ke label kelas keluarannya.
◦ Model (berupa bobot / sejumlah nilai kuantitas tertentu) disimpan sebagai memori, sedangkan semua data latihnya dibuang.
◦ Prediksi dilakukan menggunakan model yang tersimpan, tidak melibat data uji sama sekali
Trade-off:◦ Proses prediksi berjalan dengan cepat ◦ Proses pelatihan lama
Contoh: Artificial Neural Network (ANN), Support Vector Machine (SVM), Decision Tree, Bayesian, dan sebagainya.
5
Algoritma KlasifikasiLazy learner◦ Hanya sedikit melakukan pelatihan (bahkan tidak sama
sekali)◦ Hanya menyimpan sebagian atau seluruh data latih,
kemudian menggunakan data latih tersebut ketika proses prediksi.
Trade-off◦ Proses prediksi menjadi lama karena model harus
membaca kembali semua data latihnya untuk dapat memberikan keluaran label kelas dengan benar pada data uji yang diberikan.
◦ Proses pelatihan berjalan dengan cepatContoh: K-Nearest Neighbor (K-NN), Fuzzy K-Nearest
Neighbor (FK-NN), Regresi Linear, dan sebagainya.
6
Pengukuran Kinerja Klasifikasi Kinerja prediksi suatu sistem tidak bisa bekerja 100% benar. Untuk sebuah sistem klasifikasi harus diukur kinerjanya.
◦ Menggunakan matrik confusion (confusion matrix). Matrik confusion: tabel yang mencatat hasil kerja klasifikasi Jumlah data dari masing-masing kelas yang diprediksi secara
benar adalah (f11 + f00), dan data yang diprediksi secara salah adalah (f10 + f01)
Pengukuran akhir: akurasi dan laju errorfij
Kelas hasil prediksi (j)
Kelas = 1 Kelas = 0
Kelas asli (i)
Kelas = 1 f11 f10Kelas = 0 f01 f00
00011011
0011
dilakukan yang prediksiJumlah
benar secara diprediksi yang dataJumlah Akurasi
ffff
ff
00011011
0110
dilakukan yang prediksiJumlah
salah secara diprediksi yang dataJumlah errorLaju
ffff
ff
C = confusionmat(group,grouphat)
7
Contoh
kelas_asli = [1 1 1 2 2 2 2 2];kelas_hasil = [1 2 1 1 2 2 2 1];jumlah_data_uji = size(kelas_asli,2);conmat = confusionmat(kelas_asli, kelas_hasil)hasil_benar = sum(conmat(logical(eye(2))))hasil_salah = jumlah_data_uji - hasil_benarakurasi = hasil_benar / jumlah_data_ujilajuerror = hasil_salah / jumlah_data_uji
8
Naive Bayes Classifier Teknik prediksi berbasis probabilistik sederhana yang berdasar pada
penerapan teorema Bayes ◦ Asumsi independensi (ketidaktergantungan) yang kuat (naif). ◦ Model yang digunakan adalah “model fitur independen”
Independensi yang kuat pada fitur adalah bahwa sebuah fitur pada sebuah data tidak ada kaitannya dengan adanya atau tidak adanya fitur yang lain dalam data yang sama.
Contoh: kasus klasifikasi hewan dengan fitur: penutup kulit, melahirkan, berat, dan menyusui◦ Dalam dunia nyata, hewan yang berkembang biak dengan cara melahirkan
dipastikan hewan tersebut menyusui juga, disini ada ketergantungan pada fitur menyusui karena hewan yang menyusui biasanya melahirkan, atau hewan yang bertelur biasanya tidak menyusui.
◦ Dalam Bayes, hal tersebut tidak dipandang, sehingga masing-masing fitur seolah tidak ada hubungan apa-apa.
Kasus lain: prediksi hujan◦ Hujan tergantung angin, cuaca kemarin, kelembaba udara (tidak ada kaitan satu
sama lain)◦ Tapi juga tidak boleh memasukkan fitur lain yang tidak ada hubungannya dengan
hujan, seperti: gempa bumi, kebakaran, dsb.
9
Teorema Bayes Ide dasar aturan Bayes: hasil dari hipotesis atau peristiwa (H) dapat
diperkirakan berdasarkan pada beberapa evidence (E) yang diamati. Hal penting dalam Bayes:
◦ Sebuah probabilitas awal/priori H atau P(H), adalah probabilitas dari suatu hipotesis sebelum bukti diamati.
◦ Sebuah probabilitas posterior H atau P(H|E), adalah probabilitas dari suatu hipotesis setelah bukti-bukti yang diamati ada.
P(H|E): Probabilitas posterior bersyarat (Conditional Probability) suatu hipotesis H terjadi jika diberikan evidence/bukti E terjadi
P(E|H): Probabilitas sebuah evidence E terjadi akan mempengaruhi hipotesis H
P(H): Probabilitas awal (priori) hipotesis H terjadi tanpa memandang evidence apapun
P(E):Probabilitas awal (priori) evidence E terjadi tanpa memandang hipotesi/evidence yang lain
)(
)()|()|(
EP
HPHEPEHP
10
Contoh Dalam suatu peramalan cuaca untuk memperkirakan terjadinya hujan, misal
ada faktor yang mempengaruhi terjadinya hujan yaitu mendung. Jika diterapkan dalam Naïve Bayes maka probabilitas terjadinya hujan jika
bukti mendung sudah diamati:
◦ P(Hujan|Mendung) adalah nilai probabilitas hipotesis hujan terjadi jika bukti mendung sudah diamati
◦ P(Mendung|Hujan) adalah probabilitas bahwa mendung yang diamati akan mempengaruhi terjadinya hujan
◦ P(Hujan) adalah probabilitas awal hujan tanpa memandang bukti apapun◦ P(Mendung) adalah probabilitas terjadinya mendung
Teorema Bayes juga bisa menangani beberapa evidence, misalnya ada E1, E2, dan E3, maka probabilitas posterior untuk hipotesis hujan:
Bentuk diatas dapat diubah menjadi:
Untuk contoh diatas, jika ditambahkan evidence suhu udara dan angin
)(
)()|()|(
MendungP
HujanPHujanMendungPMendungHujanP
),,(
)()|,,(),,|(
321
321321 EEEP
HPHEEEPEEEHP
),,(
)()|()|()|(),,|(
321
321321 EEEP
HPHEPHEPHEPEEEHP
),,(
)()|()|()|(
),,|(
AnginSuhuMendungP
HujanPHujanAnginPHujanSuhuPHujanMendungP
AnginSuhuMendungHujanP
11
Naïve Bayes untuk Klasifikasi Korelasi hipotesis dan evidence Bayes dengan klasifikasi
◦ Hipotesis merupakan label kelas yang menjadi target pemetaan dalam klasifikasi,
◦ Evidence merupakan fitur-fitur yang menjadi masukan dalam model klasifikasi.
Jika X adalah vektor masukan yang berisi fitur, dan Y adalah label kelas, maka Naïve Bayes dituliskan dengan P(Y|X) ◦ P(Y|X) adalah probabilitas label kelas Y didapatkan setelah fitur-fitur X
diamati, disebut juga probabilitas akhir (posterior probability) untuk Y. ◦ P(Y) disebut probabilitas awal (prior probability) Y
Pembelajaran probabilitas akhir (P(Y|X) pada model untuk setiap kombinasi X dan Y berdasarkan informasi yang didapat dari data latih.
Dengan membangun model tersebut, maka untuk suatu data uji X’ dapat diklasifikasikan dengan mencari nilai Y’ dengan memilih nilai P(Y’|X’) maksimal yang didapat
12
Naïve Bayes untuk Klasifikasi Formulasi Naïve Bayes untuk klasifikasi
◦ P(Y|X) adalah probabilitas data dengan vektor X pada kelas Y,
◦ P(Y) adalah probabilitas awal kelas Y, adalah probabilitas independen kelas Y dari semua fitur dalam vektor X.
P(X) selalu tetap, sehingga dalam perhitungan prediksi nantinya cukup hanya dengan menghitung bagian pembilang (atas) dengan memilih yang terbesar sebagai kelas yang dipilih sebagai hasil prediksi.
probabilitas independen
merupakan pengaruh semua fitur dari data terhadap setiap sebuah kelas Y, dinotasikan:
Dimana setiap set fitur X = {X1, X2, X3, …, Xq} yang terdiri dari q atribut (q dimensi)
)(
)|()()|( 1
XP
YXPYPXYP
qi i
qi i YXP1 )|(
qi i yYXPyYXP 1 )|()|(
qi i YXP1 )|(
13
Perlakukan Naïve Bayes untuk tipe data fitur Umumnya Bayes mudah dihitung untuk fitur bertipe kategorikal
◦ Seperti fitur ‘penutup kulit’ {bulu, rambut, cangkang}
◦ Fitur ‘jenis kelamin’ dengan nilai {pria, wanita}
Fitur dengan tipe numerik (kontinyu) ada perlakuan khusus sebelum dimasukkan dalam Naïve Bayes.
Dua cara: diskretisasi, asumsi distribusi Diskretisasi: pada setiap fitur kontinyu dan mengganti nilai fitur kontinyu
tersebut dengan nilai interval diskrit. ◦ Dilakukan dengan mentransformasi fitur kontinyu kedalam fitur ordinal.
Mengasumsikan bentuk tertentu dari distribusi probabilitas untuk fitur kontinyu dan memperkirakan parameter distribusi menggunakan data training. ◦ Distribusi Gaussian biasanya dipilih untuk merepresentasikan conditional probability
fitur kontinyu pada sebuah kelas P(Xi|Y).
◦ Distrubusi Gaussian dikarakteristikkan dengan dua parameter: mean, , dan varian, 2, x adalah nilai fitur pada data yang akan diprediksi.
2
2
2
)(
exp2
1)|( ij
ijix
ijjii yYxXP
14
Contoh Data latih klasifikasi hewan. Jika ada sebuah data uji berupa hewan musang dengan nilai fitur:
penutup kulit = rambut, melahirkan = ya, berat = 15, masuk kelas manakah untuk hewan musang tersebut ?
Nama hewan
Penutup kulit
Melahirkan Berat Kelas
Ular Sisik Ya 10 ReptilTikus Bulu Ya 0.8 MamaliaKambing Rambut Ya 21 MamaliaSapi Rambut Ya 120 MamaliaKadal Sisik Tidak 0.4 ReptilKucing Rambut Ya 1.5 MamaliaBekicot Cangkang Tidak 0.3 ReptilHarimau Rambut Ya 43 MamaliaRusa Rambut Ya 45 MamaliaKura-kura Cangkang Tidak 7 Reptil
15
ContohPenutup kulit Melahirkan
Mamalia Reptil Mamalia Reptil
Sisik = 0Bulu = 1Rambut = 5Cangkang = 0
Sisik = 2Bulu = 0Rambut = 0Cangkang = 2
Ya = 6Tidak = 0
Ya = 1Tidak = 3
P(Kulit = Sisik | Mamalia) = 0P(Kulit = Bulu | Mamalia) = 1/6P(Kulit = Rambut | Mamalia) = 5/6P(Kulit = Cangkang | Mamalia) = 0
P(Kulit = Sisik | Reptil) = 0.5P(Kulit = Bulu | Reptil) = 0P(Kulit = Rambut | Reptil) = 0P(Kulit = Cangkang | Reptil) = 0.5
P(Lahir = Ya | Mamalia) = 1P(Lahir = Tidak | Mamalia) = 0
P(Lahir = Ya | Reptil) = 0.25P(Lahir = Tidak | Reptil) = 0.75
Berat Kelas
Mamalia Reptil Mamalia Reptil
Mamalia = 6P(Mamalia) = 6/10 = 0.6
Reptil = 4P(Reptil) = 4/10 = 0.4
55.38mamaliax255.19602 mamalias
275.44mamalias
425.4reptilx6425.232 reptils
8624.4reptils
16
Contoh Hitung nilai probabilitas untuk fitur dengan tipe numerik yaitu berat.
Hitung probabilitas akhir untuk setiap kelas:P(X | Mamalia) = P(Kulit = Rambut | Mamalia) x P(Lahir = Ya | Mamalia) x P(Berat = 15 |
Mamalia) = 5/6 x 1 x 0.0104 = 0.0087P(X | Reptil) = P(Kulit = Rambut | Reptil) x P(Lahir = Ya | Reptil) x P(Berat = 15 | Reptil) = 0 x 0.25 x 0.8733 = 0
Nilai tersebut dimasukkan untuk mendapatkan probabilitas akhir:◦ P(Mamalia | X) = x 0.6 x 0.0087 = 0.0052◦ P(Reptil | X) = x 0 x 0.4 = 0
= 1/P(X) pasti nilainya konstan sehingga tidak perlu diketahui karena terbesar dari dua kelas tersebut tidak dapat dipengaruhi P(X).
Karena nilai probabilitas akhir (posterior probability) terbesar ada di kelas mamalia, maka data uji musang diprediksi sebagai kelas mamalia.
0104.0exp275.442
1Mamalia)|15P(Berat 255.19602
)55.3815( 2
8733.0exp8624.42
1Reptil)|15P(Berat 6425.232
)425.415( 2
17
Implementasi Matlab Fungsi untuk membuat obyek dalam matlab untuk melakukan
klasifikasi dengan Naïve Bayes yaitu fit() dan predict(). Sintaks yang digunakan:
◦ nb = NaiveBayes.fit(training, class)◦ cpre = nb.predict(nb,test)
Fungsi fit() untuk membangun model, predict() untuk melakukan prediksi
Parameter Keterangantraining Matrik MxN untuk data latih. M menyatakan jumlah data
latih, N menyatakan jumlah fitur (bertipe numerik).class Matrik Mx1 untuk kelas dari data latih. Nilainya bisa berupa
string atau numerik. Jumlah baris matrik class harus sama dengan jumlah baris matrik training.
test Matrik yang menyatakan data uji. Jumlah kolom matrik test harus sama dengan matrik training.
cpre Matrik satu kolom yang menyatakan kelas hasil prediksi. Jumlah barisnya sama dengan matrik test.
18
Contoh di matlabdata = [1 1 20 12 1 0.8 23 1 21 23 1 120 21 2 0.4 13 1 1.5 24 2 0.3 13 1 43 23 1 45 24 2 7 1];data_uji = [3 1 15];data_latih = data(:,1:3);kelas_latih = data(:,4);model = NaiveBayes.fit(data_latih, kelas_latih)kelas_uji_hasil = model.predict(data_uji)
Nilai fitur di kelas 2 nilai variannya 0.Error di perintah training !
19
ANY QUESTION ?To Be Continued … Klasifikasi (Season 2)