Fråga:
I Naive Bayes, varför bry sig om Laplace-utjämning när vi har okända ord i testuppsättningen?
tumultous_rooster
2014-07-22 09:29:18 UTC
view on stackexchange narkive permalink

Jag läste över Naive Bayes-klassificeringen idag. Jag läste under rubriken Parameteruppskattning med lägg till 1 utjämning :

Låt $ c $ hänvisa till en klass (som Positiv eller Negativ) och låt $ w $ referera till en token eller ett ord.

Maximal sannolikhetsuppskattning för $ P (w | c) $ är $$ \ frac {count (w, c)} {count (c)} = \ frac {\ text {räknar w i klass c}} {\ text {antal ord i klass c}}. $$

Denna uppskattning av $ P (w | c) $ kan vara problematisk eftersom det skulle ge oss sannolikhet $ 0 $ för dokument med okända ord. Ett vanligt sätt att lösa detta problem är att använda Laplace-utjämning.

Låt V vara uppsättningen ord i träningsuppsättningen, lägg till ett nytt element $ UNK $ (för okänd) till uppsättningen ord.

Definiera $$ P (w | c) = \ frac {\ text {count} (w , c) +1} {\ text {count} (c) + | V | + 1}, $$

där $ V $ hänvisar till ordförrådet (orden i träningssatsen).

Speciellt kommer alla okända ord att ha sannolikhet $$ \ frac {1} {\ text {count} (c) + | V | + 1}. $$

Min fråga är denna: varför bryr vi oss alls om denna Laplace-utjämning? Om dessa okända ord som vi stöter på i testuppsättningen har en sannolikhet som uppenbarligen är noll, dvs. $ \ frac {1} {\ text {count} (c) + | V | + 1} $ , vad är poängen med att inkludera dem i modellen? Varför inte bara bortse från och ta bort dem?

Om du inte har något uttalande som du stöter på som innehåller ett tidigare osett ord kommer att ha $ p = 0 $.Detta innebär att en omöjlig händelse har inträffat.Vilket betyder att din modell passade otroligt dåligt.Även i en ordentlig Bayesian-modell kunde detta aldrig hända, eftersom det okända ordets sannolikhet skulle ha en täljare som gavs av föregående (möjligen inte 1).Så jag vet inte varför detta kräver det snygga namnet 'Laplace smoothing'.
Vad var texten som läsningen kom ifrån?
åtta svar:
RVC
2015-09-05 13:58:52 UTC
view on stackexchange narkive permalink

Låt oss säga att du har tränat din Naive Bayes Classifier på två klasser, "Ham" och "Spam" (dvs. det klassificerar e-postmeddelanden). För enkelhets skull antar vi att tidigare sannolikheter är 50/50.

Låt oss säga att du har ett e-postmeddelande $ (w_1, w_2, .. ., w_n) $ som din klassificering väldigt högt betraktar som "Skinka", säg $$ P (Skinka | w_1, w_2, ... w_n) = 0,90 $ $ och $$ P (Spam | w_1, w_2, .. w_n) = .10 $$

Hittills så bra .

Låt oss säga att du har en ny e-postadress $ (w_1, w_2, ..., w_n, w_ {n + 1}) $ är exakt samma som ovanstående e-postmeddelande förutom att det finns ett ord i det som inte ingår i ordförrådet. Eftersom detta ords antal är 0 är $$ P (Ham | w_ {n + 1}) = P (Spam | w_ {n + 1}) = 0 $$ span>

Plötsligt $$ P (Ham | w_1, w_2, ... w_n, w_ {n + 1}) = P (Ham | w_1, w_2, ... w_n) * P (Ham | w_ {n + 1}) = 0 $$ och $$ P (Spam | w_1, w_2, .. w_n, w_ {n + 1}) = P (skräppost | w_1, w_2, ... w_n) * P (skräppost | w_ {n + 1}) = 0 $$

Trots att det första e-postmeddelandet är starkt klassificerat i en klass kan det här andra e-postmeddelandet klassificeras annorlunda på grund av att det sista ordet har en sannolikhet på noll.

Laplace-utjämning löser detta genom att ge det sista ordet en liten icke-noll sannolikhet för båda klasserna, så att de bakre sannolikheterna inte plötsligt sjunker till noll.

varför skulle vi behålla ett ord som inte alls finns i ordförrådet?varför inte bara ta bort det?
om din klassificerare klassificerar ett e-postmeddelande som troligtvis skinka, är p (skinka | w1, ..., wn) 0,9, inte p (w1, ..., wn | skinka)
Sid
2014-07-22 10:21:31 UTC
view on stackexchange narkive permalink

Du behöver alltid denna "felsäker" sannolikhet.

För att se varför överväga det värsta fallet när inget av orden i träningsprovet visas i testmeningen. I det här fallet, enligt din modell, skulle vi dra slutsatsen att meningen är omöjlig men att den uppenbarligen skapar en motsägelse.

Ett annat extremt exempel är testmeningen "Alex mötte Steve." där "met" visas flera gånger i träningsprovet men "Alex" och "Steve" inte. Din modell skulle dra slutsatsen att detta uttalande är mycket troligt vilket inte är sant.

Jag hatar att låta som en fullständig idiot, men har du något emot att utarbeta? Hur ändrar borttagning av "Alex" och "Steve" sannolikheten för att uttalandet inträffar?
Om vi ​​antar orden P (Alex) P (Steve) P (met) oberoende << P (met)
vi skulle kunna bygga ett ordförråd när vi tränade modellen på träningsdatamängden, så varför inte bara ta bort alla nya ord som inte förekommer i ordförrådet när vi förutsäger testdata?
jpmuc
2014-07-22 13:33:43 UTC
view on stackexchange narkive permalink

Att bortse från dessa ord är ett annat sätt att hantera det. Det motsvarar genomsnittet (integrera ut) över alla saknade variabler. Så resultatet blir annorlunda. Hur?

Förutsatt att notationen används här: $$ P (C ^ {*} | d) = \ arg \ max_ {C} \ frac {\ prod_ {i} p (t_ {i} | C) P (C)} {P (d)} \ propto \ arg \ max_ {C} \ prod_ {i} p (t_ {i} | C) P (C) $$ där $ t_ {i} $ är symbolerna i ordförrådet och $ d $ är ett dokument.

Låt oss säga symbolen $ t_ {k} $ visas inte. Istället för att använda en Laplace-utjämning (som kommer från att införa en Dirichlet före den multinomiala Bayes) summerar du $ t_ {k} $ som motsvarar att säga: Jag tar en vägd röstning över alla möjligheter för de okända tokens (att ha dem eller inte).

$$ P (C ^ {*} | d) \ propto \ arg \ max_ {C} \ sum_ {t_ {k}} \ prod_ {i} p (t_ {i} | C) P (C) = \ arg \ max_ {C} P (C) \ prod_ {i \ neq k} p (t_ {i} | C) \ sum_ {t_ {k}} p (t_ {k} | C) = \ arg \ max_ {C} P (C) \ prod_ {i \ neq k} p (t_ {i} | C) $$

Men i praktiken föredrar man utjämningsmetoden. Istället för att ignorera dessa tokens tilldelar du dem en låg sannolikhet som är att tänka: om jag har okända tokens är det mer osannolikt att det är den typ av dokument som jag annars skulle tro att det är.

Response777
2016-07-24 22:09:30 UTC
view on stackexchange narkive permalink

Den här frågan är ganska enkel om du är bekant med Bayes-uppskattare, eftersom det är den direkta slutsatsen av Bayes-uppskattaren.

I Bayesian-metoden anses parametrar vara en kvantitet vars variation kan beskrivas genom en sannolikhetsfördelning (eller tidigare distribution).

Så om vi ser proceduren för att plocka upp som multinomial distribution kan vi lösa frågan i några steg.

Först, definiera

$$ m = | V |, n = \ sum n_i $$

Om vi ​​antar tidigare distribution för $ p_i $ är enhetlig fördelning, vi kan beräkna den villkorliga sannolikhetsfördelningen som

$$ p (p_1, p_2, ..., p_m | n_1, n_2, ..., n_m) = \ frac {\ Gamma (n + m)} {\ prod \ limits_ {i = 1} ^ {m} \ Gamma ( n_i + 1)} \ prod \ limits_ {i = 1} ^ {m} p_i ^ {n_i} $$

vi kan hitta att det i själva verket är dirichlet-distribution och förväntan på $ p_i $ är

$$ E [p_i] = \ frac {n_i + 1} {n + m} $$

En naturlig uppskattning för $ p_i $ är medelvärdet för den bakre fördelningen. Så vi kan ge Bayes-uppskattaren av $ p_i $ :

$$ \ hat p_i = E [p_i] $$

Du kan se att vi bara drar samma slutsats som Laplace Smoothing.

Aiaioo Labs
2016-01-29 15:46:49 UTC
view on stackexchange narkive permalink

Du vill veta varför vi bryr oss med att utjämna överhuvudtaget i en Naive Bayes-klassificering (när vi istället kan kasta bort de okända funktionerna).

Svaret på din fråga är: inte alla ord måste vara okänd i alla klasser.

Anta att det finns två klasser M och N med funktioner A stark>, B och C , enligt följande:

M: A = 3, B = 1, C = 0 stark >

(I klassen M visas A tre gånger och B bara en gång)

N: A = 0, B = 1, C = 3

(I klassen N visas C Tre gånger och B bara en gång)

Låt oss se vad som händer när du slänger funktioner som visas noll gånger.

A) Kasta bort funktioner som visas noll gånger i vilken klass som helst

Om du slänger funktioner A och C eftersom de visas noll str ong> gånger i någon av klasserna, har du bara kvar funktionen B att klassificera dokument med.

Och förlora den informationen är en dålig sak som du kommer att se nedan!

Om du får ett testdokument enligt följande:

B = 1, C = 3

(Den innehåller B en gång och C tre gånger)

Nu, eftersom du har kasserat funktionerna A och B kommer du inte att kunna berätta om ovanstående dokument tillhör klass M eller klass N

Så förlorar du funktionsinformation är en dålig sak!

B) Kasta bort funktioner som visas noll gånger i alla klasser

Är det möjligt att komma runt detta problem genom att kasta bara de funktioner som visas noll gånger i alla klasserna?

Nej, eftersom det skulle skapa sina egna problem!

Följande testdokument illustrerar vad som skulle hända om vi gjorde det:

A = 3, B = 1, C = 1

Sannolikheten av M och N skulle båda bli noll (eftersom vi inte slängde noll sannolikheten för A i klassen N och noll sannolikheten för C i klass M)).

C) Kasta inte något Borta - Använd utjämning istället

Med utjämning kan du klassificera båda ovanstående dokument korrekt eftersom:

  1. Du tappar inte räkningsinformation i klasser där sådan information finns tillgängligt och
  2. Du behöver inte kämpa med nollräkningar.

Naive Bayes-klassificeringar i praktiken

Naive Bayes-klassificerare i NLTK brukade kasta bort funktioner som hade nollantal i någon av klasserna.

Detta brukade få det att fungera dåligt när man tränade med en hård EM-procedur (där klassificeringen är bootstr från mycket lite träningsdata).

@ Aiaioo Labs Du misslyckades med att inse att han hänvisade till ord som inte alls visades i träningssatsen, till exempel hänvisade han till att säga om D dök upp, är frågan inte med utjämning av snörning på beräkningarna frånträningsuppsättning snarare testuppsättningen.Användning av laplace-utjämning på okända ord från TEST-uppsättningen gör att sannolikheten snedställs mot vilken klass som hade minst antal tokens på grund av att 0 + 1/2 + 3 var större än 0 + 1/3 + 3 (om en av klasserna hade3 tokens och den andra hade 2)....
Detta kan faktiskt göra en korrekt klassificering till en felaktig klassificering om tillräckligt många okända ord slätas ut i ekvationen.Laplace-utjämning är ok för träningsuppsättningsberäkningar, men skadligt för testuppsättningsanalys. Tänk dig också att du har en testuppsättning med alla okända ord, den ska klassificeras omedelbart till klassen med högsta sannolikhet, men i själva verket kan och kommer den vanligtvis inte att klassificeras som sådan, och klassificeras vanligtvis som den klass med lägst beloppav tokens.
@DrakeThatcher, är mycket överens med dig, ja om vi inte tar bort ord som inte finns i ordförråd, kommer förutsagd proba att ske skeppande till klass med minst antal ord.
samthebest
2014-07-23 14:50:10 UTC
view on stackexchange narkive permalink

Matt du har rätt du höjer en mycket bra poäng - ja Laplace Smoothing är helt uppriktigt nonsens! Att bara kasta bort dessa funktioner kan vara ett giltigt tillvägagångssätt, särskilt när nämnaren också är ett litet antal - det finns helt enkelt inte tillräckligt med bevis för att stödja sannolikhetsuppskattningen.

Jag har en stark motvilja mot att lösa alla problem via användning av viss godtycklig justering. Problemet här är nollor, "lösningen" är att bara "lägga till ett litet värde till noll så att det inte är noll längre - MAGIC problemet är inte mer". Naturligtvis är det helt godtyckligt.

Ditt förslag om bättre funktionsval till att börja med är ett mindre godtyckligt tillvägagångssätt och IME ökar prestanda. Vidare förvärrar Laplace Smoothing i kombination med naiva Bayes som modellen har min erfarenhet granularitetsproblemet - dvs problemet där poängutgångar tenderar att vara nära 1.0 eller 0.0 (om antalet funktioner är oändligt då blir varje poäng 1,0 eller 0,0 - detta är en konsekvens av antagandet om oberoende).

Nu finns alternativa tekniker för sannolikhetsuppskattning (förutom max sannolikhet + Laplace-utjämning), men är massivt under dokumenterade. Faktum är att det finns ett helt fält som kallas induktiva logik- och inferensprocesser som använder många verktyg från informationsteori.

Vad vi använder i praktiken är att minimera Cross Entropy Updating vilket är en förlängning av Jeffreys uppdatering där vi definiera det konvexa området för sannolikhetsutrymmet som överensstämmer med bevisen för att vara regionen så att en punkt i den skulle innebära att maximal sannolikhetsuppskattning ligger inom den förväntade absoluta avvikelsen från punkten.

Detta har en trevlig egenskap som när antalet datapunkter minskar uppskattningarna fredsmässigt närmar sig den tidigare - och därför är deras effekt i Bayesian-beräkningen noll. Laplace-utjämning å andra sidan gör att varje uppskattning närmar sig punkten för maximal entropi som kanske inte är tidigare och därför är effekten i beräkningen inte noll och kommer bara att lägga till brus.

Sarthak Khanna
2016-09-15 11:48:49 UTC
view on stackexchange narkive permalink

Jag stötte också på samma problem när jag studerade Naive Bayes.

Enligt mig, när vi stöter på ett testexempel som vi inte hade stött på under träning, blir Posterior sannolikhet 0.

Så att lägga till 1, även om vi aldrig tränar på en viss funktion / klass, kommer sannolikheten för Posterior aldrig att vara 0.

Lerner Zhang
2020-04-08 04:52:48 UTC
view on stackexchange narkive permalink

Du kanske inte har tillräckligt med data för uppgiften och därför skulle uppskattningen inte vara korrekt eller modellen skulle överträffa träningsdata, till exempel kan det hända att vi får ett svart svanproblem.Det finns ingen svart svan i våra träningsexempel men det betyder inte att det inte finns någon svart svan i världen.Vi kan bara lägga till en före vår modell och vi kan också kalla den "pseudocount".



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...