Saya menerapkan algoritma Naive Bayes untuk kategorisasi teks dengan penghalusan Laplacian. Masalah yang saya miliki adalah bahwa probabilitas mendekati nol karena saya mengalikan banyak fraksi kecil. Oleh karena itu, probabilitas akhirnya menghasilkan nol. Ini karena ada beberapa kata dalam dokumen dan set pelatihan.
Karena itu, saya tidak dapat mengkategorikan teks. Apakah ada cara saya bisa mengatasi masalah ini? Apakah saya melakukan sesuatu yang salah dalam implementasi saya?
Jawaban:
Trik yang biasa untuk menghindari underflow ini adalah dengan menghitung dengan logaritma, menggunakan identitas Artinya, alih-alih menggunakan probabilitas, Anda menggunakan logaritma mereka. Alih-alih mengalikannya, Anda menambahkannya.
Pendekatan lain, yang tidak begitu umum, adalah menormalkan produk secara manual. Alih-alih hanya menyimpan satu angka floating point , Anda menyimpan nomor floating point (katakanlah) dan eksponen negatif sedemikian rupa sehingga . Setelah setiap operasi Anda menormalkan angka yang dihasilkan.hal hal0∈ [ 1 , 2 ) x p = p02x
sumber