Anda di halaman 1dari 67

Klasifikasi Naive Bayes

max
Probabilitas Bersyarat

S
P( X  Y )
X
XY
P (Y | X ) 
Y P( X )

P (Y  X )
P( X | Y ) 
P (Y )
Contoh :

● Sebuah kotak berisi 3 buah bola berwarna kuning, 4


buah bola berwarna merah dan 5 buah bola berwarna
biru, yang sama ukurannya.
3K
4M
5B

● Peluang terambil bola K = P(K) = 3/12, peluang terambil


bola M = P(M) = 4/12 dan peluang terambil bola B = P(B)
= 5/12
● Jika diambil dua buah bola berurutan, maka peluang
terambil pertama bola merah dan ke dua bola biru
adalah :
4/12 x 5/11 = 0,15

• Disini peluang terambil bola biru 5/11 karena bola


pertama sudah terambil sehingga jumlah bola
keseluruhan tinggal 11
P(M ∩ B) = P(M). P(B|M)
= 4/12 x 5/11 = 0,15
Probabilitas Bersyarat Dalam Data
# Cuaca Temperatur Kecepatan Angin Berolah-raga
1 Cerah Normal Pelan Ya
2 Cerah Normal Pelan Ya
3 Hujan Tinggi Pelan Tidak
4 Cerah Normal Kencang Ya
5 Hujan Tinggi Kencang Tidak
6 Hujan Normal Pelan Ya
Banyaknya data berolah-raga=ya adalah 4 dari 6 data maka dituliskan
P(Olahraga=Ya) = 4/6
Banyaknya data cuaca=cerah dan berolah-raga=ya adalah 3 dari 6
data maka dituliskan
P(cuaca=cerah dan Olahraga=Ya) = 3/6
3/ 6
P (cuaca  cerah | olahraga  ya)   0,75
4/6
Probabilitas Bersyarat Dalam Data
# Cuaca Temperatur Berolahraga
1 cerah normal ya
2 cerah tinggi ya
3 hujan tinggi tidak
4 cerah tinggi tidak
5 hujan normal tidak
6 cerah normal ya
Banyaknya data berolah-raga=ya adalah 3 dari 6 data maka dituliskan
P(Olahraga=Ya) = 3/6
Banyaknya data cuaca=cerah, temperatur=normal dan berolah-
raga=ya adalah 2 dari 6 data maka dituliskan
P(cuaca=cerah, temperatur=normal, Olahraga=Ya) = 2/6
2/6 2
P(cuaca  cerah, temperatur  normal | olahraga  ya)  
3/ 6 3
Metode Bayes

… P ( X k ).P (Y | X k )
X1 X2 Xn P ( X k | Y ) 
. P (Y )

P ( X k ).P (Y | X k )
P( X k | Y ) 
Y
 P( X i ).P(Y | X i )
i

Keadaan Posteriror (Probabilitas Xk di dalam Y) dapat dihitung dari


keadaan prior (Probabilitas Y di dalam Xk) dibagi dengan jumlah dari
semua probabilitas Y di dalam semua Xi)
Contoh :

Tiga orang telah dicalonkan sebagai manajer sebuah


perusahaan. Peluang A terpilih adalah 0,3, peluang B terpilih
adalah 0,5, dan peluang C terpilih adalah 0,2. Jika A terpilih,
peluang terjadinya kenaikan gaji karyawan adalah 0,8. Jika B
atau C terpilih, peluang kenaikan gaji karyawan masing-masing
adalah 0,1 dan 0,4.
1. Berapa peluang terjadi kenaikan gaji?
2. Jika terjadi kenaikan gaji, maka berapa peluang C terpilih?
Penyelesaian

B1 = A terpilih, B2 = B terpilih, dan B3 = C terpilih G = kejadian gaji naik


P(B1) = 0.3, P(B2) = 0.5, P(B3) = 0.2
P(G│B1) = 0.8, P(G│B2) = 0.1, P(G│B3) = 0.4

Peluang terjadi kenaikan gaji karyawan adalah


P(G) = P(B1) P(G│B1) + P(B2) P(G│B2) + P(B3) P(G│B3)
= (0.3)(0.8) + (0.5)(0.1) + (0.2)(0.4)
= 0.37
Jadi peluang kenaikan gaji sebesar 0,37
HMAP (Naïve Bayes)
HMAP (Hypothesis Maximum Appriori Probability) menyatakan hipotesa yang diambil
berdasarkan nilai probabilitas berdasarkan kondisi prior yang diketahui.

argmax P( Y | X ) P(X)
P( X | Y ) =
xX P(Y )
argmax
= P( Y | X ) P(X)
xX

HMAP adalah model penyederhanaan dari metode bayes yang disebut dengan Naive
Bayes. HMAP inilah yang digunakan di dalam machine learning sebagai metode untuk
mendapatkan hipotesis untuk suatu keputusan.
HMAP (Naïve Bayes) Dari Data Training
# Cuaca Temperatur Kecepatan Angin Berolah-raga
1 Cerah Normal Pelan Ya
2 Cerah Normal Pelan Ya
3 Hujan Tinggi Pelan Tidak
4 Cerah Normal Kencang Ya
5 Hujan Tinggi Kencang Tidak
6 Cerah Normal Pelan Ya

Asumsi:
Y = berolahraga,
X1 = cuaca,
X2 = temperatur,
X3 = kecepatan angin.
Fakta menunjukkan:
P(Y=ya) = 4/6  P(Y=tidak) = 2/6
HMAP (Naïve Bayes) Dari Data Training
# Cuaca Temperatur Kecepatan Angin Berolah-raga
1 Cerah Normal Pelan Ya Apakah bila cuaca
2 Cerah Normal Pelan Ya cerah dan
3 Hujan Tinggi Pelan Tidak kecepatan angin
4 Cerah Normal Kencang Ya kencang, orang
5 Hujan Tinggi Kencang Tidak akan berolahraga?
6 Cerah Normal Pelan Ya

Fakta: P(X1=cerah|Y=ya) = 1, P(X1=cerah|Y=tidak) = 0


P(X3=kencang|Y=ya) = 1/4 , P(X3=kencang|Y=tidak) = 1/2

HMAP dari keadaan ini dapat dihitung dengan:


P(Y=ya | X1=cerah,X3=kencang)
= { P(X1=cerah|Y=ya).P(X3=kencang|Y=ya) } . P(Y=ya)
= { (1) . (1/4) } . (4/6) = 1/6
P(Y=tidak | X1=cerah,X3=kencang)
= { P(X1=cerah|Y=tidak).P(X3=kencang|Y=tidak) } . P(Y=tidak)
= { (0) . (1/2) } . (2/6) = 0

KEPUTUSAN ADALAH BEROLAHRAGA = YA


Color Shape Size Category
red • big +
blue small +
red small +
red big -
blue • small
-
red small ?

Asumsi Naïve: anggapan bahwa satu fitur tidak


ada hubungannya dengan fitur yang lain
 P(+|test) = P(red|+)*P( |+)*P(small|+)*P(+)
P(test)
 P(-|test) = P(red|-)*P( |-)*P(small|-)*P(-)
P(test)

 For the new example (red, , small)


P(+|test) = P(red|+)*P( |+)*P(small|+)*P(+)
= 2/3 * 1/3 * 2/3 * 3/5 = 0,088889

P(-|test) = P(red| )*P( | )*P(small| )*P( )


= 1/2 * 1/2 * 1/2 * 2/5 = 0,05
Outlook Temperature Humidity Windy Play
1 sunny hot high FALSE no
2 sunny hot high TRUE no
3 overcast hot high FALSE yes
4 rainy mild high FALSE yes
5 rainy cool normal FALSE yes
6 rainy cool normal TRUE no
7 overcast cool normal TRUE yes
8 sunny mild high FALSE no
9 sunny cool normal FALSE yes
10 rainy mild normal FALSE yes
11 sunny mild normal TRUE yes
12 overcast mild high TRUE yes
13 overcast hot normal FALSE yes
14 rainy mild high TRUE no

A new day
outlook temperature humidity windy play
sunny cool high true ?
The weather data, with counts and probabilities
outlook temperature humidity windy play
yes no yes no yes no yes no yes no

sunny 2 3 hot 2 2 high 3 4 false 6 2 9 5


overcast 4 0 mild 4 2 normal 6 1 true 3 3
rainy 3 2 cool 3 1
sunny 2/9 3/5 hot 2/9 2/5 high 3/9 4/5 false 6/9 2/5 9/14 5/14
overcast 4/9 0/5 mild 4/9 2/5 normal 6/9 1/5 true 3/9 3/5
rainy 3/9 2/5 cool 3/9 1/5

A new day
outlook temperature humidity windy play
sunny cool high true ?
 Likelihood
of yes
2 3 3 3 9
      0.0053
9 9 9 9 14
 Likelihoodof no
3 1 4 3 5
      0.0206
5 5 5 5 14
 Therefore, the prediction is No
Beberapa Contoh Klasifikasi TEXT

22
SMS Spam atau Not Spam

● Beli 6 Gratis 6 Donut dari DUNKIN DONUTS BORMA SETIABUDHI. Tukarkan SMS
ini segera. Hanya berlaku untuk hari ini. Selama persediaan masih ada. Promo
*606#
● 5 HARI LAGI ! EKSTRA Pulsa 50rb dg beli paket internet bulanan di
MyTelkomsel utk pembelian pertama sjk 25Aug-25Sept. Cek detail promo di
tsel.me/mytsel1
● Maaf, pulsa Anda tidak cukup untuk melakukan pembelian paket Flash yang
dipilih. Silahkan isi ulang pulsa Anda.
● Dptkn Free member card Larissa Aesthetic Center, disc 15% high treatment &
asuransi jiwa, tiap isi ulang pulsa Rp 100rb di Galeri Indosat Jateng DIY s.d 31Des
13
23
Penulis Pria atau Wanita
1. By 1925 present-day Vietnam was divided into three parts under French
colonial rule. The southern region embracing Saigon and the Mekong delta
was the colony of Cochin-China; the central area with its imperial capital at
Hue was the protectorate of Annam…
2. Clara never failed to be astonished by the extraordinary felicity of her own
name. She found it hard to trust herself to the mercy of fate, which had
managed over the years to convert her greatest shame into one of her
greatest assets…

S. Argamon, M. Koppel, J. Fine, A. R. Shimoni, 2003. “Gender, Genre, and Writing Style in Formal Written Texts,” Text, volume 23, number 3, pp.
24
321–346
Gender di Tweet
Lima fitur yang paling penting
untuk memisahkan gender:

● kata partikel
● kata asing / daerah
● kata emosi
● kata ganti orang ke-dua
● kata_kerja_khusus.

Wibisono, Yudi, and Naufal Faruqi. "Penentuan gender otomatis berdasarkan isi microblog memanfaatkan
fitur sosiolinguistik." Jurnal Cybermatika 1.1 (2013).
25
Sentimen positif atau negatif

● unbelievably disappointing
● Full of zany characters and richly applied satire,
and some great plot twists
● this is the greatest screwball comedy ever filmed
● It was pathetic. The worst part about it was the
boxing scenes.

26
Sentimen Positif dan Negatif
● Ujan2 gini dsruh lari2 kklinik haha malesin..Org2 bpjs itu ngapa jg gak
drtd dtg nya, nyusahin aja sih
● Org2 mengeluh buruknya layanan BPJS. Kami sangat trbantu ketika ibu
kami didiagnosa menderita kanker stadium 4..
● @astrimeina @mrshananto kalo yg itu gak tau deh. yg pasti udah bbrp
orang yg gw kenal tmsk gw, sepupu n ipar cesar pake BPJS puji Tuhan
Aman
● website BPJS ini aneh. abis registrasi diminta verifikasi email, tapi dicek
gak ada email masuk. bloon.

Implementasi Naïve Bayes Classifier Pada Sistem Analisis Sentimen Twitter, Rachman, Wibisono 2015 27
Berita →
topik apa?

28
Topik Makalah

29
Klasifikasi Teks

● Pemberian label kategori, topik, atau genre


● Spam detection
● Authorship identification
● Age/gender identification
● Sentiment analysis
Tidak hanya www tapi perusahaan juga memiliki
banyak dokumen teks! 30
Definisi Klasifikasi Teks

• Input:
• dokumen d (bisa juga tweet, sms dsb)
• kelas C = {c1, c2,…, cJ}

• Output: prediksi kelas c ∈ C

31
Metode Klasifikasi: Hand-coded rules

● Rule berdasarkan kombinasi kata atau fitur


○ spam: ada URL, kata “promo”, “gratis”, “uang”

● Akurasi bisa tinggi, tapi membangun dan memelihara


rule mahal (perlu domain expert)

32
Classification:
Supervised Machine Learning

• Input:
• dokumen d
• kelas C = {c1, c2,…, cJ}
• training set m dokumen hand-labeled (d1,c1),....,(dm,cm)
• Output:
• classifier γ:d → c

33
Classification:
Supervised Machine Learning

Jenis classifier
• Naïve Bayes
• Logistic regression
• Support-vector machines
• k-Nearest Neighbors
• Neural Network
• ...
34
Klasifikasi Naive Bayes Untuk Dokumen
• Simple (“naïve”) classification berdasarkan Bayes rule
• Menggunakan representasi paling sederhana dari
dokumen
• Bag of words (BoW)

35
Representasi Bag of Words

36
Some Term Weighting Schemes
1. Term Frequency (TF)
2. Term Frequency-Inverse Document Frequency (TF-IDF)
3. TF-CHI (TF-Chi Square)
4. TF-RF (TF-Relevance Frequency)
5. TF-Prob
6. TF-ICF (TF-Inverse Corpus Frequency)
7. Term Frequency-Inverse Document Frequency- Inverse Class Space Density
Frequency (TF-IDF-ICSDF)
8. Term Frequency-Inverse Gravity Moment (TF-IGM)
9. TF-IGM (Term Frequency - Inverse Gravity Moment)
10. RTF-IGM (Root Term Frequency - Inverse Gravity Moment)

37
Bayes untuk dokumen (lanj)

• dokumen d dan kelas c

38
Bayes untuk dokumen (lanj)
MAP: “maximum a
posteriori” = kelas yang
paling mungkin

Bayes Rule

denominator
dibuang karena
sama untuk semua
kelas 39
Bayes untuk dokumen (lanj)

Document d direpsentasikan
dalam seq. kata x1..xn

40
Masalah

O(|X|n•|C|) parameters

Kombinasinya sangat besar,


perlu data training yang
besar
41
Naive

● Bag of words: posisi tidak penting


● Asumsikan P(xi|cj) independen untuk kelas c.

42
43
Cara Pertama

doccount(C=cj): jumlah
dokumen kelas cj

Dibagi jumlah
semua kata
dalam class cj
44
Masalah

Di dokumen training kata fantastic pada kelas sentimen positif


tidak ada.

nol
45
Laplace (add-1) smoothing for Naïve Bayes

46
Example train and test data

Terms

t1 t2 Label
Training Doc D1 3 2 +
D2 7 10 -
D3 8 8 -
D4 1 3 +
D5 4 2 +
Testing Doc D6 5 8 ?
Contoh lain

Chinese Beijing Shanghai Macao Tokyo Japan Class


Training
data D1 2 1 0 0 0 0 c
D2 2 0 1 0 0 0 c
D3 1 0 0 1 0 0 c
D4 1 0 0 0 1 1 j
Test data D5 3 0 0 0 1 1 ?
Doc Words Class
Contoh lain Training 1 Chinese Beijing Chinese c
2 Chinese Chinese Shanghai c
3 Chinese Macao c
4 Tokyo Japan Chinese j
Test 5 Chinese Chinese Chinese Tokyo Japan ?
Chinese Beijing Shanghai Macao Tokyo Japan Class
Priors: Training
data D1 2 1 0 0 0 0 c
P(c)= 3 D2 2 0 1 0 0 0 c
4 1
P(j)= 4 D3 1 0 0 1 0 0 c
D4 1 0 0 0 1 1 j

Conditional Probabilities: Test data D5 3 0 0 0 1 1 ?

P(Chinese|c) = (5+1) / (8+6) = 6/14 = 3/7 Memilih kelas:


P(Tokyo|c) = (0+1) / (8+6) = 1/14 P(c|d5) 3/4 * (3/7)3 * 1/14 * 1/14
P(Japan|c) = (0+1) / (8+6) = 1/14 ≈ 0.0003
P(Chinese|j) = (1+1) / (3+6) = 2/9
P(j|d5) 1/4 * (2/9)3 * 2/9 * 2/9
P(Tokyo|j) = (1+1) / (3+6) = 2/9 ≈ 0.0001
P(Japan|j) = (1+1) / (3+6) = 2/9 49
Rangkuman Naive Bayes
• Sangat cepat, perlu space kecil
• Robust terhadap fitur yang tidak relevan
• Optimal jika asumsi independence terpenuhi.
• Cocok untuk menjadi baseline klasifikasi teks.

50
Jumlah data >>
algoritma

Brill and Banko on spelling correction 51


Pencegahan Underflow: log
• perkalian banyak nilai prob yang kecil dapat menyebabkan floating-point
underflow.
• log(xy) = log(x) + log(y)
• Lebih baik menjumlahkan log prob daripada perkalian
• penjumlahan juga lebih cepat daripada perkalian

52
Analisis Google Product Search
Sentimen

53
Bing Shopping

54
Opini tentang Telkomsel di Twitter

55
Nama lain Analisis Sentimen
• Opinion extraction
• Opinion mining
• Sentiment mining
• Subjectivity analysis

56
Mengapa Analisis Sentimen?

• Film: review positif atau negatif?


• Produk: apa yang orang pikirkan tentang iPhone baru?
• Public sentiment: consumer confidence?
• Politik: apa yang orang pikirkan tentang kandidat atau
isu?
• Prediksi: prediksi hasil pemilu atau nilai pasar saham.

57
Analisis Sentimen: detection of attitudes
“enduring, affectively colored beliefs, dispositions towards
objects or persons”
1. Sumber attitude
2. Target atau aspek attitude
3. Tipe attitude
• Like, love, hate, value, desire, etc.
• simple weighted polarity: positif, negatif, netral
4. Text yang mengandung attitude
• kalimat atau dokumen

58
Analisis Sentimen

• Paling sederhana:
• Apakah attitude pada teks positif atau neg?
• Agak kompleks:
• Beri peringkat attitude dari 1 sd 5 (bintang)
• Kompleks:
• Identifikasi target, source, complex attitude type
59
Baseline Algorithm
• Preprocessing (Tokenisasi, dll)
• Ekstraksi Fitur
• Klasifikasi
• Naïve Bayes
• MaxEnt
• SVM

60
Tokenisasi

• HTML, XML dan JavaScript


• Twitter mark-up (@, hashtags)
• Kapitalisasi (ini bagaimana vs INI BAGAIMANA)
• Nomor telepon, angka, tanggal
• Emoticon, Emoji.

61
Ekstraksi Fitur

● Kalimat negatif
○ Saya tidak suka film ini
○ Saya suka film ini, tapi
○ Saya suka film ini.. dalam mimpi hehe

● Kata yang digunakan?


○ Semua kata vs kata sifat saja.

62
Masalah pada Analisis Sentimen

• Tidak eksplisit
• Ambiguitas

63
Evaluation

Confusion Matrix

Actual
Yes No Precision
Predicted Yes TP FP

No FN TN
Recall
Evaluation
Evaluation

Actual
Sport Economy Politic Health Precision
Predicted Sport 5 2 1 5/8
Economy 3 7 2 3/12
Politic 3 3 1 3/7
Health 4 1 1 8 8/14
Recall 5/12 3/4 3/13 8/12

Anda mungkin juga menyukai