Wygładzanie w modelu Naive Bayes

13

Naiwny predyktor Bayesa dokonuje swoich przewidywań, używając tej formuły:

P.(Y=y|X=x)=αP.(Y=y)jaP.(Xja=xja|Y=y)

gdzie jest czynnikiem normalizującym. Wymaga to oszacowania parametrów P ( X i = x i | Y = y ) na podstawie danych. Jeśli zrobimy to za pomocą wygładzania K , otrzymamy oszacowanieαP.(Xja=xja|Y=y)k

P.^(Xja=xja|Y=y)=#{Xja=xja,Y=y}+k#{Y=y}+njak

tam, gdzie to możliwe wartości X ı . Nic mi nie jest. Jednak dla wcześniejszych mamynjaXja

P.^(Y=y)=#{Y=y}N.

gdzie w zestawie danych znajduje się przykładów. Dlaczego nie wygładzimy również wcześniejszego? Albo raczej, nie możemy wygładzić przeora? Jeśli tak, jaki parametr wygładzania wybieramy? Wybieranie k również wydaje się głupie , ponieważ wykonujemy inne obliczenia. Czy istnieje konsensus? Czy to nie ma większego znaczenia?N.k

Chris Taylor
źródło

Odpowiedzi:

5

Typowym powodem wygładzania jest przede wszystkim obsługa przypadków, w których . Gdyby tego nie zrobiono, zawsze otrzymywalibyśmy P ( Y = y | X = x ) = 0, ilekroć tak było.#{Xja=xja|Y=y}=0P.(Y=y|X=x)=0

Dzieje się tak, gdy na przykład podczas klasyfikowania dokumentów tekstowych napotykasz słowo, które nie było w danych treningowych lub po prostu nie pojawiło się na niektórych zajęciach.

Z drugiej strony, w przypadku wcześniejszego prawdopodobieństwa klasy taka sytuacja nie powinna wystąpić. Jeśli tak, oznaczałoby to, że próbujesz przypisać obiekty do klas, które nawet nie pojawiły się w danych treningowych.P.(Y=y)

Poza tym nigdy nie spotkałem się z terminem -smoothing. Wygładzanie Laplace'a lub dodatku jest znacznie bardziej powszechne.k

alt
źródło
1
Generalnie powodem wygładzania jest unikanie przeładowania danych. Przypadek, w którym liczebność niektórych klas wynosi zero, jest tylko szczególnym przypadkiem przeregulowania (który okazuje się być szczególnie zły). Nadal możesz wygładzić prawdopodobieństwa, gdy zaobserwujesz każdą klasę. Przypuszczam, że niepokoi mnie pozorna asymetria - wygładzanie Laplace'a odpowiada założeniu, że w twoim zestawie danych są dodatkowe obserwacje. Dlaczego miałbyś ignorować te obserwacje, dopasowując wcześniejsze?
Chris Taylor,
P.(Y=y)P.(Xja=xja|Y=y)
„taka sytuacja nie powinna wystąpić. Jeśli tak się stanie, oznacza to, że próbujesz przypisać obiekty do klas, które nawet nie pojawiły się w danych szkoleniowych”. Uhh ... w jaki sposób klasyfikator przypisałby obiekt do klasy, której nigdy wcześniej nie widział (tj. Nie ma go w danych treningowych)?
Jemenake
@Jemenake Problem jest zwykle określany jako uczenie się od zera, na przykład patrz uczenie się od zera za pomocą semantycznych kodów wyjściowych
alt
kiedy trenujemy model przy użyciu zestawu danych treningowych, moglibyśmy zbudować słownictwo przy użyciu słów występujących w zestawie danych treningowych, więc dlaczego po prostu nie usunąć nowych słów, które nie są w słownictwie, kiedy przewidujemy zestaw testowy?
awokado