Di Naif Bayes, mengapa repot-repot dengan Laplace smoothing ketika kita memiliki kata-kata yang tidak diketahui dalam set tes?

28

Saya membaca Klasifikasi Naif Bayes hari ini. Saya membaca, di bawah judul Estimasi Parameter dengan menambahkan 1 smoothing :

Mari c merujuk ke kelas (seperti positif atau negatif), dan membiarkan w mengacu pada tanda atau kata.

Estimasi kemungkinan maksimum untuk P(w|c) adalah

cHaikamunt(w,c)cHaikamunt(c)=jumlah w di kelas cjumlah kata di kelas c.

Estimasi P(w|c) bisa bermasalah karena akan memberi kita probabilitas 0 untuk dokumen dengan kata-kata yang tidak dikenal. Cara umum untuk menyelesaikan masalah ini adalah dengan menggunakan penghalusan Laplace.

Biarkan V menjadi himpunan kata dalam himpunan pelatihan, tambahkan elemen baru UNK (untuk tidak diketahui) ke himpunan kata.

Tentukan

P(w|c)=menghitung(w,c)+1menghitung(c)+|V|+1,

di mana V mengacu pada kosakata (kata-kata dalam set pelatihan).

Secara khusus, setiap kata yang tidak dikenal akan memiliki probabilitas

1menghitung(c)+|V|+1.

Pertanyaan saya adalah ini: mengapa kita repot-repot dengan smoothing Laplace ini sama sekali? Jika kata-kata tidak dikenal yang kita temui dalam set pengujian memiliki probabilitas yang jelas hampir nol, yaitu 1menghitung(c)+|V|+1 , apa gunanya termasuk dalam model? Mengapa tidak mengabaikan saja dan menghapusnya?

Matt O'Brien
sumber
3
Jika Anda tidak maka pernyataan yang Anda temui mengandung kata yang sebelumnya tidak terlihat akan memiliki . Ini berarti bahwa suatu peristiwa yang mustahil telah terjadi. Yang berarti model Anda sangat cocok. Juga dalam model Bayesian yang tepat ini tidak pernah bisa terjadi, karena probabilitas kata yang tidak diketahui akan memiliki pembilang yang diberikan oleh sebelumnya (mungkin bukan 1). Jadi saya tidak tahu mengapa ini membutuhkan nama mewah 'Laplace smoothing'. hal=0
dugaan
1
Dari mana teks bacaan itu berasal?
kata

Jawaban:

17

Anda selalu membutuhkan probabilitas 'gagal-aman' ini.

Untuk melihat mengapa mempertimbangkan kasus terburuk di mana tidak ada kata-kata dalam sampel pelatihan muncul dalam kalimat tes. Dalam hal ini, di bawah model Anda, kami akan menyimpulkan bahwa kalimat itu tidak mungkin tetapi jelas ada menciptakan kontradiksi.

Contoh ekstrem lainnya adalah kalimat ujian "Alex bertemu Steve." di mana "bertemu" muncul beberapa kali dalam sampel pelatihan tetapi "Alex" dan "Steve" tidak. Model Anda akan menyimpulkan pernyataan ini sangat mungkin yang tidak benar.

Sid
sumber
Saya benci terdengar seperti orang tolol, tetapi apakah Anda keberatan menguraikan? Bagaimana cara menghapus "Alex" dan "Steve" mengubah kemungkinan pernyataan itu terjadi?
Matt O'Brien
2
Jika kita mengasumsikan kemandirian kata P (Alex) P (Steve) P (bertemu) << P (bertemu)
Sid
1
kita bisa membangun kosakata saat melatih model pada kumpulan data pelatihan, jadi mengapa tidak hanya menghapus semua kata baru yang tidak muncul dalam kosakata saat membuat prediksi pada kumpulan data uji?
alpukat
15

Katakanlah Anda telah melatih Naive Bayes Classifier Anda pada 2 kelas, "Ham" dan "Spam" (yaitu, itu mengklasifikasikan email). Demi kesederhanaan, kami akan menganggap probabilitas sebelumnya menjadi 50/50.

Sekarang katakanlah Anda memiliki email (w1,w2,...,wn) yang tingkat classifier Anda sangat tinggi sebagai "Ham", mengatakan

P(HSebuahm|w1,w2,...wn)=.90
dan
P(ShalSebuahm|w1,w2,..wn)=.10

Sejauh ini baik.

Sekarang katakanlah Anda memiliki email lain (w1,w2,...,wn,wn+1) yang persis sama dengan email di atas kecuali bahwa ada satu kata di dalamnya yang tidak termasuk dalam kosa kata . Oleh karena itu, karena jumlah kata ini adalah 0,

P(HSebuahm|wn+1)=P(ShalSebuahm|wn+1)=0

Tiba-tiba,

P(HSebuahm|w1,w2,...wn,wn+1)=P(HSebuahm|w1,w2,...wn)P(HSebuahm|wn+1)=0
dan
P(ShalSebuahm|w1,w2,..wn,wn+1)=P(ShalSebuahm|w1,w2,...wn)P(ShalSebuahm|wn+1)=0

Meskipun email ke-1 sangat terklasifikasi dalam satu kelas, email ke-2 ini dapat diklasifikasikan secara berbeda karena kata terakhir yang memiliki kemungkinan nol.

Laplace smoothing menyelesaikan ini dengan memberikan kata terakhir probabilitas kecil yang tidak nol untuk kedua kelas, sehingga probabilitas posterior tidak tiba-tiba turun ke nol.

RVC
sumber
mengapa kita menyimpan kata yang tidak ada dalam kosakata sama sekali? mengapa tidak menghapusnya saja?
alpukat
4
jika pengklasifikasi Anda memberi peringkat pada email sebagai ham, maka p (ham | w1, ..., wn) adalah 0,9, bukan p (w1, ..., wn | ham)
braaterAfrikaaner
5

Pertanyaan ini agak sederhana jika Anda terbiasa dengan estimator Bayes, karena ini adalah kesimpulan langsung dari estimator Bayes.

Dalam pendekatan Bayesian, parameter dianggap kuantitas yang variasinya dapat digambarkan oleh distribusi probabilitas (atau distribusi sebelumnya).

Jadi, jika kita melihat prosedur pengambilan sebagai distribusi multinomial, maka kita dapat menyelesaikan pertanyaan dalam beberapa langkah.

Pertama, definisikan

m=|V|,n=nsaya

halsaya

hal(hal1,hal2,...,halm|n1,n2,...,nm)=Γ(n+m)saya=1mΓ(nsaya+1)saya=1mhalsayansaya

halsaya

E[halsaya]=nsaya+1n+m

halsayahalsaya

hal^saya=E[halsaya]

Anda dapat melihat kami hanya menarik kesimpulan yang sama dengan Laplace Smoothing.

Response777
sumber
4

Mengabaikan kata-kata itu adalah cara lain untuk menanganinya. Ini sesuai dengan rata-rata (mengintegrasikan) untuk semua variabel yang hilang. Jadi hasilnya berbeda. Bagaimana?

P(C|d)=argmaksCsayahal(tsaya|C)P(C)P(d)argmaksCsayahal(tsaya|C)P(C)
tsayad

tktk

P(C|d)argmaksCtksayahal(tsaya|C)P(C)=argmaksCP(C)sayakhal(tsaya|C)tkhal(tk|C)=argmaksCP(C)sayakhal(tsaya|C)

Namun dalam praktiknya orang lebih memilih pendekatan smoothing. Alih-alih mengabaikan token-token itu, Anda memberi mereka probabilitas rendah yang seperti berpikir: jika saya memiliki token yang tidak diketahui, itu lebih tidak mungkin adalah jenis dokumen yang seharusnya saya pikirkan.

jpmuc
sumber
2

Anda ingin tahu mengapa kami repot-repot melicinkan sama sekali dalam classifier Naive Bayes (ketika kami dapat membuang fitur yang tidak diketahui sebagai gantinya).

Jawaban untuk pertanyaan Anda adalah: tidak semua kata harus tidak dikenal di semua kelas.

Katakanlah ada dua kelas M dan N dengan fitur A , B dan C , sebagai berikut:

M: A = 3, B = 1, C = 0

(Di kelas M , A muncul 3 kali dan B hanya sekali)

N: A = 0, B = 1, C = 3

(Di kelas N , C muncul 3 kali dan B hanya sekali)

Mari kita lihat apa yang terjadi ketika Anda membuang fitur yang muncul nol kali.

A) Membuang Fitur-Fitur Yang Tampil Nol Kali Di Kelas Apa Saja

Jika Anda membuang fitur A dan C karena mereka muncul nol kali di salah satu kelas, maka Anda hanya memiliki fitur B untuk mengklasifikasikan dokumen.

Dan kehilangan informasi itu adalah hal yang buruk seperti yang akan Anda lihat di bawah!

Jika Anda diberikan dokumen uji sebagai berikut:

B = 1, C = 3

(Ini mengandung B sekali dan C tiga kali)

Sekarang, karena Anda sudah dibuang fitur A dan B , Anda tidak akan dapat mengatakan apakah dokumen di atas milik kelas M atau kelas N .

Jadi, kehilangan semua informasi fitur adalah hal yang buruk!

B) Membuang Fitur-Fitur Yang Tampak Nol Kali Di Semua Kelas

Apakah mungkin untuk mengatasi masalah ini dengan hanya membuang fitur-fitur yang muncul nol kali di semua kelas?

Tidak, karena itu akan menciptakan masalah sendiri!

Dokumen uji berikut menggambarkan apa yang akan terjadi jika kami melakukan itu:

A = 3, B = 1, C = 1

Probabilitas M dan N akan menjadi nol (karena kami tidak membuang probabilitas nol A di kelas N dan probabilitas nol C di kelas M ).

C) Jangan Membuang Apa Pun - Gunakan Penghalus

Smoothing memungkinkan Anda untuk mengklasifikasikan kedua dokumen di atas dengan benar karena:

  1. Anda tidak kehilangan informasi penghitungan di kelas di mana informasi tersebut tersedia dan
  2. Anda tidak harus bersaing dengan jumlah nol.

Dalam Praktek Penari Naif Bayes

Klasifikasi Naive Bayes di NLTK digunakan untuk membuang fitur yang tidak memiliki hitungan di salah satu kelas.

Ini digunakan untuk membuatnya berkinerja buruk ketika dilatih menggunakan prosedur EM keras (di mana classifier di-bootstrap dari data pelatihan yang sangat sedikit).

Aiaioo Labs
sumber
2
@ Aiaioo Labs Anda gagal menyadari bahwa dia merujuk pada kata-kata yang tidak muncul di set pelatihan sama sekali, misalnya, dia merujuk untuk mengatakan jika D muncul, masalahnya bukan dengan laplace smoothing pada perhitungan dari set pelatihan dan bukan set tes. Menggunakan laplace smoothing pada kata-kata yang tidak dikenal dari set TEST menyebabkan kemungkinan untuk condong ke kelas mana yang memiliki jumlah token paling sedikit karena 0 + 1/2 + 3 lebih besar dari 0 + 1/3 + 3 (jika salah satu kelas memiliki 3 token dan yang lainnya punya 2). ...
2
Ini benar-benar dapat mengubah klasifikasi yang benar menjadi klasifikasi yang salah jika kata-kata yang tidak dikenal cukup dihaluskan ke dalam persamaan. Laplace smoothing tidak masalah untuk perhitungan set Pelatihan, tetapi merugikan untuk menguji analisis set. Juga bayangkan Anda memiliki set tes dengan semua kata-kata yang tidak dikenal, itu harus segera diklasifikasikan ke kelas dengan probabilitas tertinggi, tetapi sebenarnya itu dapat dan biasanya, tidak akan diklasifikasikan seperti itu, dan biasanya diklasifikasikan sebagai kelas dengan jumlah terendah token.
@DrakeThatcher, sangat setuju dengan Anda, ya jika kami tidak menghapus kata-kata yang tidak ada dalam kosakata, maka kemungkinan proba akan condong ke kelas dengan jumlah kata yang paling sedikit.
alpukat
1

Saya juga menemukan masalah yang sama saat mempelajari Naif Bayes.

Menurut saya, setiap kali kita menemukan contoh uji yang tidak kita temui selama pelatihan, maka probabilitas Posterior akan menjadi 0.

Jadi menambahkan 1, bahkan jika kita tidak pernah melatih pada fitur / kelas tertentu, probabilitas Posterior tidak akan pernah menjadi 0.

Sarthak Khanna
sumber
1

Matt Anda benar, Anda menaikkan poin yang sangat bagus - ya Laplace Smoothing sebenarnya tidak masuk akal! Hanya dengan membuang fitur-fitur itu bisa menjadi pendekatan yang valid, terutama ketika penyebutnya juga sedikit - tidak ada cukup bukti untuk mendukung estimasi probabilitas.

Saya memiliki keengganan yang kuat untuk memecahkan masalah apa pun melalui penggunaan beberapa penyesuaian sewenang-wenang. Masalahnya di sini adalah nol, "solusi" adalah dengan hanya "menambahkan beberapa nilai kecil ke nol sehingga tidak nol lagi - MAGIC masalahnya tidak ada lagi". Tentu saja itu sepenuhnya sewenang-wenang.

Saran Anda untuk memilih fitur yang lebih baik untuk memulai adalah pendekatan yang tidak terlalu sembarangan dan IME meningkatkan kinerja. Lebih lanjut Laplace Smoothing bersama dengan naive Bayes sebagai model dalam pengalaman saya memperburuk masalah granularity - yaitu masalah di mana skor skor cenderung mendekati 1,0 atau 0,0 (jika jumlah fitur tidak terbatas maka setiap skor akan menjadi 1,0 atau 0,0 - ini adalah konsekuensi dari asumsi independensi).

Sekarang teknik alternatif untuk estimasi probabilitas ada (selain kemungkinan maksimum + Laplace smoothing), tetapi secara masif didokumentasikan. Bahkan ada seluruh bidang yang disebut Logika Induktif dan Proses Inferensi yang menggunakan banyak alat dari Teori Informasi.

Apa yang kami gunakan dalam praktik adalah Pembaruan Entropi Silang Minimum yang merupakan perpanjangan dari Pembaruan Jeffrey di mana kami mendefinisikan wilayah cembung ruang probabilitas yang konsisten dengan bukti sebagai wilayah sedemikian sehingga suatu titik di dalamnya berarti estimasi Kemungkinan Maksimum berada di dalam Diharapkan Penyimpangan Absolut dari titik tersebut.

Ini memiliki properti yang bagus karena jumlah titik data mengurangi estimasi secara damai mendekati sebelumnya - dan karena itu pengaruhnya dalam perhitungan Bayesian adalah nol. Laplace smoothing di sisi lain membuat setiap pendekatan mendekati titik Entropy Maksimum yang mungkin bukan yang sebelumnya dan karena itu efek dalam perhitungan tidak nol dan hanya akan menambah noise.

samthebest
sumber