Transcript Document

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.)
2
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)
Masukan
Data Latih (x,y)
Algoritma
Pelatihan
Pembangunan
Model
Masukan
Data Uji (x,?)
Penerapan Model
Keluaran
Data Uji (x,y)
3
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.
4
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 KNearest Neighbor (FK-NN), Regresi Linear, dan
sebagainya.
5
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
Kelas hasil prediksi (j)
Kelas = 1
Kelas = 0
Kelas = 1
f11
f10
Kelas = 0
f01
f00
fij
Kelas
asli (i)
Akurasi

Jumlah
data yang diprediksi
Jumlah
Laju error 
Jumlah
prediksi
prediksi

yang dilakukan
data yang diprediksi
Jumlah
secara benar
C = confusionmat(group,grouphat)
secara salah
yang dilakukan

f 11  f 00
f 11  f 10  f 01  f 00
f 10  f 01
f 11  f 10  f 01  f 00
6
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
7
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.
8
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 ) 
P(E | H )  P(H )
P(E )
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

9
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 ) 
P ( Mendung
| Hujan )  P ( Hujan )
P ( Mendung )
◦
◦
◦
◦

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:
P ( H | E1 , E 2 , E 3 ) 

Bentuk diatas dapat diubah menjadi:
P ( H | E1 , E 2 , E 3 ) 

P ( E1 , E 2 , E 3 | H )  P ( H )
P ( E1 , E 2 , E 3 )
P ( E1 | H )  P ( E 2 | H )  P ( E 3 | H )  P ( H )
P ( E1 , E 2 , E 3 )
Untuk contoh diatas, jika ditambahkan evidence suhu udara dan angin
P ( Hujan | Mendung , Suhu , Angin ) 
P ( Mendung
| Hujan )  P ( Suhu | Hujan )  P ( Angin | Hujan )  P ( Hujan )
P ( Mendung , Suhu , Angin )
10
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 fiturfitur 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
11
Naïve Bayes untuk Klasifikasi

Formulasi Naïve Bayes untuk klasifikasi
P (Y | X ) 
P (Y )  iq1 P ( X i | Y )
P( X )
◦ P(Y|X) adalah probabilitas data dengan vektor X pada kelas Y,
q
◦ P(Y) adalah probabilitas awal kelas Y,  i 1 P ( X i | 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.
q
 probabilitas independen  i 1 P ( X i | Y )


merupakan pengaruh semua fitur dari data terhadap setiap sebuah
kelas Y, dinotasikan:
P ( X | Y  y )   iq1 P ( X i | Y  y )

Dimana setiap set fitur X = {X1, X2, X3, …, Xq} yang terdiri dari q
atribut (q dimensi)
12
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
P ( X i  xi | Y  y j ) 
1
2   ij

exp
( x i   ij )
2
2  ij
13
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
Ular
Tikus
Kambing
Sapi
Kadal
Kucing
Bekicot
Harimau
Rusa
Kura-kura
Penutup
kulit
Sisik
Bulu
Rambut
Rambut
Sisik
Rambut
Cangkang
Rambut
Rambut
Cangkang
Melahirkan
Berat
Kelas
Ya
Ya
Ya
Ya
Tidak
Ya
Tidak
Ya
Ya
Tidak
10
0.8
21
120
0.4
1.5
0.3
43
45
7
Reptil
Mamalia
Mamalia
Mamalia
Reptil
Mamalia
Reptil
Mamalia
Mamalia
Reptil
14
Contoh
Penutup kulit
Mamalia
Sisik = 0
Bulu = 1
Rambut = 5
Cangkang = 0
Reptil
Sisik = 2
Bulu = 0
Rambut = 0
Cangkang = 2
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
Berat
Mamalia
Reptil
x mamalia  38 . 55
x reptil  4 . 425
s mamalia  1960 . 255
s mamalia  44 . 275
s reptil  23 . 6425
2
2
s reptil  4 . 8624
Melahirkan
Mamalia
Ya = 6
Tidak = 0
Reptil
Ya = 1
Tidak = 3
P(Lahir = Ya |
Mamalia) = 1
P(Lahir = Tidak |
Mamalia) = 0
P(Lahir = Ya | Reptil)
= 0.25
P(Lahir = Tidak |
Reptil) = 0.75
Kelas
Mamalia
Reptil
Mamalia = 6
Reptil = 4
P(Mamalia) = 6/10 = P(Reptil) = 4/10 = 0.4
0.6
15
Contoh

Hitung nilai probabilitas untuk fitur dengan tipe numerik yaitu berat.
P(Berat
P(Berat

 15 | Mamalia)
 15 | Reptil)



1
2  44 . 275
1
2  4 . 8624
exp

exp
(15  38 . 55 )
2
2 1960 . 255
(15  4 . 425 )
 0 . 0104
2
2  23 . 6425
 0 . 8733
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.
16
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.
17
Contoh di matlab
data = [
Nilai fitur di kelas 2 nilai
1
1
20
1
2
1
0.8
2
variannya 0.
3
1
21
2
Error di perintah
3
1
120
2
training !
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)
18
To Be Continued … Klasifikasi (Season 2)
ANY QUESTION ?
19