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

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.