Klasifikasi (Season 1) Naive Bayes Pengenalan Pola Materi 3 Eko Prasetyo Teknik Informatika UPN “Veteran” Jawa Timur 2012
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.)
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)
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.
Algoritma Klasifikasi Lazy 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 cepat Contoh: K-Nearest Neighbor (K-NN), Fuzzy K- Nearest Neighbor (FK-NN), Regresi Linear, dan sebagainya.
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 error fij Kelas hasil prediksi (j) Kelas = 1 Kelas = 0 Kelas asli (i) f11 f10 f01 f00 C = confusionmat(group,grouphat)
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_benar akurasi = hasil_benar / jumlah_data_uji lajuerror = hasil_salah / jumlah_data_uji
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.
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
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
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
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)
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.
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 Reptil Tikus Bulu 0.8 Mamalia Kambing Rambut 21 Sapi 120 Kadal Tidak 0.4 Kucing 1.5 Bekicot Cangkang 0.3 Harimau 43 Rusa 45 Kura-kura 7
Contoh Penutup kulit Melahirkan Mamalia Reptil Sisik = 0 Bulu = 1 Rambut = 5 Cangkang = 0 Sisik = 2 Bulu = 0 Rambut = 0 Cangkang = 2 Ya = 6 Tidak = 0 Ya = 1 Tidak = 3 P(Kulit = Sisik | Mamalia) = 0 P(Kulit = Bulu | Mamalia) = 1/6 P(Kulit = Rambut | Mamalia) = 5/6 P(Kulit = Cangkang | Mamalia) = 0 P(Kulit = Sisik | Reptil) = 0.5 P(Kulit = Bulu | Reptil) = 0 P(Kulit = Rambut | Reptil) = 0 P(Kulit = Cangkang | Reptil) = 0.5 P(Lahir = Ya | Mamalia) = 1 P(Lahir = Tidak | Mamalia) = 0 P(Lahir = Ya | Reptil) = 0.25 P(Lahir = Tidak | Reptil) = 0.75 Berat Kelas Mamalia = 6 P(Mamalia) = 6/10 = 0.6 Reptil = 4 P(Reptil) = 4/10 = 0.4
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.0087 P(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.
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 Keterangan training 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.
Contoh di matlab Nilai fitur di kelas 2 nilai variannya 0. data = [ 1 1 20 1 2 1 0.8 2 3 1 21 2 3 1 120 2 1 2 0.4 1 3 1 1.5 2 4 2 0.3 1 3 1 43 2 3 1 45 2 4 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 !
To Be Continued … Klasifikasi (Season 2) ANY QUESTION ?