Naive Bayes Sınıflandırıcısı hesaplamasında sıfır faktörü nasıl ele alınır?


14

Bir eğitim veri setim varsa ve üzerinde bir Naive Bayes Sınıflandırıcısı eğitirsem ve olasılık sıfır olan bir özellik değerine sahipsem. Daha sonra yeni verilerdeki sınıflandırmayı tahmin etmek istersem bunu nasıl halledebilirim? Sorun şu ki, hesaplamada sıfır varsa, başka bir çözüm bulabilecek başka ne kadar değer aldığım önemli değil, tüm ürün sıfır olur.

Misal:

P(x|spam=yes)=P(TimeZone=US|spam=yes)P(GeoLocation=EU|spam=yes) ... =0.004

P(x|spam=no)=P(TimeZone=US|spam=no)P(GeoLocation=EU|spam=no) ... =0

Tüm ürün olur çünkü eğitim verilerinde TimeZone US özelliği her zaman küçük egzersiz veri setimizde Evet olur. Bunu nasıl halledebilirim? Daha büyük bir eğitim verisi seti kullanmalı mıyım yoksa bu sorunun üstesinden gelmek için başka bir olasılık var mı?0


Ayrık bir öznitelik değeri elde ederseniz, tanımı gereği sıfır olamaz.
Paul

neden 1'inde 0 frekans problemi ekliyoruz bunun ardındaki mantık neden başka bir sayı eklemiyoruz.
Aftab Hussaiin

Yanıtlar:


13

Bayes ortamında bu 'sıfır frekans sorununun' üstesinden gelmek için bir yaklaşım, her sınıf değeri ile bir öznitelik değeri oluşmadığında her öznitelik değeri-sınıfı kombinasyonu için sayıya bir tane eklemektir. Örneğin, eğitim verilerinizin şöyle göründüğünü varsayalım:

Spam=yesSpam=noTimeZone=US105TimeZone=EU00

P(TimeZone=US|Spam=yes)=1010=1

P(TimeZone=EU|Spam=yes)=010=0

O zaman olasılıkları hesaplamak için kullanırken bu tablodaki her değere bir tane eklemelisiniz:

Spam=yesSpam=noTimeZone=US116TimeZone=EU11

P(TimeZone=US|Spam=yes)=1112

P(TimeZone=EU|Spam=yes)=112


4
Aslında. Bazen bir tanesinden başka değerler ekleyebileceğinizi unutmayın. Ayrıntılar için bkz en.wikipedia.org/wiki/Additive_smoothing
Dal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.