Probabilitas fitur Naif Bayes: haruskah saya menghitung kata?

12

Saya membuat purwarupa model tas naif Bayes saya sendiri, dan saya punya pertanyaan tentang menghitung probabilitas fitur.

Katakanlah saya punya dua kelas, saya hanya akan menggunakan spam dan bukan-spam karena itulah yang digunakan semua orang. Dan mari kita ambil kata "viagra" sebagai contoh. Saya memiliki 10 email di set pelatihan saya, 5 spam dan 5 non-spam. "viagra" muncul di semua 5 dokumen spam. Dalam salah satu dokumen pelatihan itu muncul 3 kali (ini adalah pertanyaan saya tentang), jadi itu 7 penampilan dalam total spam. Di set pelatihan non-spam, itu muncul 1 kali.

Jika saya ingin memperkirakan p (viagra | spam) apakah itu sederhana:

p (viagra | spam) = 5 dokumen spam berisi viagra / 5 total dokumen spam = 1

Dengan kata lain, apakah fakta bahwa satu dokumen menyebutkan viagra 3 kali alih-alih sekali tidak masalah?


Sunting: Berikut adalah posting blog tempat penulis menggunakan pendekatan yang baru saja saya buat: http://ebiquity.umbc.edu/blogger/2010/12/07/naive-bayes-classifier-in-50-lines/

Dan di sini adalah posting blog di mana penulis mengatakan: p (viagra | spam) = 7 spam viagra menyebutkan / 8 total menyebutkan http://www.nils-haldenwang.de/computer-science/machine-learning/how-to-apply -naive-bayes-classifiers-to-dokumen-klasifikasi-masalah

Dan kemudian salah satu jawaban di bawah mengatakan itu seharusnya: p (viagra | spam) = 7 viagra menyebutkan dalam spam / jumlah total istilah dalam spam

Adakah yang bisa menautkan ke sumber yang memberikan pendapat tentang ini?

pengguna24885
sumber

Jawaban:

4

Dengan kata lain, apakah fakta bahwa satu dokumen menyebutkan viagra 3 kali alih-alih sekali tidak masalah?

Bermasalah. Model Multinomial Naive Bayes memperhitungkan setiap kemunculan token, sedangkan model Bernoulli Naive Bayes tidak (yaitu untuk model yang terakhir, 3 kemunculan "viagra" sama dengan 1 kemunculan "viagra").

Berikut adalah dua ilustrasi serta tabel perbandingan dari {1}:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

{1} dengan rapi memperkenalkan Naive Bayes untuk klasifikasi teks, serta model Multinomial Naive Bayes dan model Bernoulli Naive Bayes.


Referensi:

Franck Dernoncourt
sumber
1

Itu tergantung pada model naif spesifik yang Anda terapkan. Secara umum, untuk Klasifikasi Teks, Anda ingin mempertimbangkan pengulangan istilah, jadi jawabannya adalah ya.

Poin lainnya adalah Anda mempertimbangkan probabilitas berdasarkan ruang acara dokumen. Anda juga dapat melakukannya berdasarkan ruang istilah:

p (viagra | spam) = 5 kali istilah spam dalam spam kelas / 50 istilah dalam kelas

Anda memiliki banyak informasi dalam [makalah] ini ( http://echo.edres.org:8080/betsy/mccallum1.pdf )

miguelmalvarez
sumber
0

Saya pikir itu tergantung pada apa yang Anda maksud dengan p (viagra | spam) dan bagaimana Anda memodelkan data.

Seperti yang tertulis, saya akan menafsirkan makna Anda sebagai 'probabilitas kata viagra disebutkan setidaknya sekali dalam sebuah pesan, mengingat pesan ini adalah spam'. Dalam hal itu, ya, fakta bahwa satu dokumen menyebutkan viagra tiga kali tidak berpengaruh. Anda telah menetapkan model yang tidak memperhatikan fakta seperti itu.

Tentu saja, Anda bisa memiliki model yang berbeda. Misalnya, alih-alih viagra direpresentasikan oleh variabel biner (sekarang / tidak ada), itu bisa mewakili hitungan berapa kali kata itu muncul dalam pesan. Dalam hal itu, dari data mentah Anda, Anda akan memperkirakan frekuensi empiris dari sesuatu seperti

p (viagra = 0 | spam) = 0

p (viagra = 1 | spam) = 4/5

p (viagra = 2 | spam) = 0

p (viagra = 3 | spam) = 1/5

dll.

Saya tidak mengatakan itu cara yang lebih baik untuk melakukannya. Saya hanya menggambarkan situasi alternatif di mana intuisi Anda yang melihat viagra yang disebutkan tiga kali relevan.

Contoh yang lebih praktis mungkin adalah 'Frekuensi Istilah - Frekuensi Dokumen Balik', yang merupakan metode yang banyak memperhatikan frekuensi kata dalam dokumen.

Menepuk
sumber