Spørgsmål:
I Naive Bayes, hvorfor gider du med Laplace-udjævning, når vi har ukendte ord i testsættet?
tumultous_rooster
2014-07-22 09:29:18 UTC
view on stackexchange narkive permalink

Jeg læste i løbet af Naive Bayes-klassifikationen i dag. Jeg læste under overskriften Parameterestimering med tilføj 1 udjævning :

Lad $ c $ henvise til en klasse (såsom positiv eller negativ), og lad $ w $ henvise til et token eller ord.

Den maksimale sandsynlighedsestimator for $ P (w | c) $ er $$ \ frac {count (w, c)} {count (c)} = \ frac {\ text {tæller w i klasse c}} {\ text {tæller ord i klasse c}}. $$

Dette skøn over $ P (w | c) $ kan være problematisk, da det giver os sandsynlighed $ 0 $ for dokumenter med ukendte ord. En almindelig måde at løse dette problem på er at bruge Laplace-udjævning.

Lad V være ordsættet i træningssættet, tilføj et nyt element $ UNK $ (for ukendt) til sæt af ord.

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

hvor $ V $ refererer til ordforrådet (ordene i træningssættet).

Især vil ethvert ukendt ord have sandsynlighed $$ \ frac {1} {\ text {count} (c) + | V | + 1}. $$

Mit spørgsmål er dette: hvorfor generer vi overhovedet denne Laplace-udjævning? Hvis disse ukendte ord, som vi støder på i testsættet, har en sandsynlighed, som åbenbart er næsten nul, dvs. $ \ frac {1} {\ text {count} (c) + | V | + 1} $ , hvad er meningen med at inkludere dem i modellen? Hvorfor ikke bare se bort fra og slette dem?

Hvis du ikke gør det, vil enhver sætning, du støder på, og som indeholder et tidligere uset ord, have $ p = 0 $.Dette betyder, at en umulig begivenhed er sket.Hvilket betyder, at din model passede utroligt dårligt.Også i en ordentlig Bayesian-model kunne dette aldrig ske, da det ukendte ordsandsynlighed ville have en tæller givet af den foregående (muligvis ikke 1).Så jeg ved ikke, hvorfor dette kræver det smarte navn 'Laplace smoothing'.
Hvad var teksten, som læsningen kom fra?
Otte svar:
RVC
2015-09-05 13:58:52 UTC
view on stackexchange narkive permalink

Lad os sige, at du har trænet din Naive Bayes Classifier i 2 klasser "Ham" og "Spam" (dvs. det klassificerer e-mails). For enkelheds skyld antager vi, at tidligere sandsynligheder er 50/50.

Lad os sige, at du har en e-mail $ (w_1, w_2, .. ., w_n) $ som din klassifikator bedømmer meget højt som "skinke", sig $$ P (skinke | w_1, w_2, ... w_n) = 0,90 $ $ og $$ P (Spam | w_1, w_2, .. w_n) = .10 $$

Indtil videre .

Lad os sige, at du har en anden mail $ (w_1, w_2, ..., w_n, w_ {n + 1}) $ er nøjagtig det samme som ovenstående e-mail bortset fra at der er et ord i det, der ikke er inkluderet i ordforrådet. Da dette ords antal er 0, er $$ P (Ham | w_ {n + 1}) = P (Spam | w_ {n + 1}) = 0 $$ span>

Pludselig $$ 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 $$ og $$ P (Spam | w_1, w_2, .. w_n, w_ {n + 1}) = P (Spam | w_1, w_2, ... w_n) * P (Spam | w_ {n + 1}) = 0 $$

På trods af at den første e-mail er stærkt klassificeret i en klasse, kan denne 2. e-mail klassificeres forskelligt på grund af det sidste ord, der har sandsynligheden for nul.

Laplace-udjævning løser dette ved at give det sidste ord en lille sandsynlighed for ikke-nul for begge klasser, så de bageste sandsynligheder ikke pludselig falder til nul.

hvorfor skulle vi holde et ord, der overhovedet ikke findes i ordforrådet?hvorfor ikke bare fjerne det?
hvis din klassifikator vurderer en e-mail som sandsynlig at være skinke, så er p (skinke | w1, ..., wn) 0,9, ikke p (w1, ..., wn | skinke)
Sid
2014-07-22 10:21:31 UTC
view on stackexchange narkive permalink

Du har altid brug for denne 'fejlsikre' sandsynlighed.

For at se hvorfor overveje det værste tilfælde, hvor ingen af ​​ordene i træningsprøven vises i testsætningen. I dette tilfælde vil vi under din model konkludere, at sætningen er umulig, men at den klart eksisterer, hvilket skaber en modsigelse.

Et andet ekstremt eksempel er testsætningen "Alex mødte Steve." hvor "met" vises flere gange i træningsprøven, men "Alex" og "Steve" ikke. Din model vil konkludere, at dette udsagn er meget sandsynligt, hvilket ikke er sandt.

Jeg hader at lyde som en fuldstændig dæmon, men har du noget imod at uddybe det? Hvordan ændrer fjernelsen af ​​"Alex" og "Steve" sandsynligheden for, at udsagnet opstår?
Hvis vi antager uafhængigheden af ​​ordene P (Alex) P (Steve) P (met) << P (met)
vi kunne opbygge et ordforråd, når vi træner modellen på træningsdatasættet, så hvorfor ikke bare fjerne alle nye ord, der ikke forekommer i ordforrådet, når vi forudsiger testdatasættet?
jpmuc
2014-07-22 13:33:43 UTC
view on stackexchange narkive permalink

At ignorere disse ord er en anden måde at håndtere det på. Det svarer til gennemsnit (integrer ud) over alle manglende variabler. Så resultatet er anderledes. Hvordan?

Under forudsætning af den anvendte betegnelse her: $$ 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) $$ hvor $ t_ {i} $ er tokens i ordforrådet, og $ d $ er et dokument.

Lad os sige token $ t_ {k} $ vises ikke. I stedet for at bruge en Laplace-udjævning (som kommer fra at pålægge en Dirichlet forud for de multinomiale Bayes), opsummerer du $ t_ {k} $, hvilket svarer til at sige: Jeg tager en vægtet afstemning over alle muligheder for de ukendte tokens (at have dem eller ikke).

$$ 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 praksis foretrækker man udjævningstilgangen. I stedet for at ignorere disse tokens, tildeler du dem en lav sandsynlighed, som er som at tænke: hvis jeg har ukendte tokens, er det mere usandsynligt, at det er den slags dokument, som jeg ellers ville tro, det er.

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

Dette spørgsmål er ret simpelt, hvis du er fortrolig med Bayes estimatorer, da det er den direkte konklusion af Bayes estimator.

I Bayesian tilgang betragtes parametre for at være en størrelse, hvis variation kan beskrives ved en sandsynlighedsfordeling (eller forudgående distribution).

Så hvis vi ser proceduren for afhentning som multinomial distribution, så kan vi løse spørgsmålet i få trin.

Først, definer

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

Hvis vi antager den forudgående distribution af $ p_i $ er ensartet fordeling, vi kan beregne den betingede sandsynlighedsfordeling 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 finde, at det faktisk er Dirichlet-fordeling og forventning om $ p_i $ er

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

Et naturligt skøn for $ p_i $ er middelværdien af ​​den bageste fordeling. Så vi kan give Bayes-estimatoren for $ p_i $ :

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

Du kan se, at vi bare drager den samme konklusion som Laplace-udjævning.

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

Du vil vide, hvorfor vi overhovedet gider at udjævne i en Naive Bayes-klassificering (når vi i stedet kan smide de ukendte funktioner).

Svaret på dit spørgsmål er: ikke alle ord skal være ukendt i alle klasser.

Sig, at der er to klasser M og N med funktioner A stærk>, B og C som følger:

M: A = 3, B = 1, C = 0 stærk >

(I klassen M vises A tre gange og B kun en gang)

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

(I klassen N vises C 3 gange og B kun én gang)

Lad os se, hvad der sker, når du smider funktioner, der vises nul gange.

A) Smid funktioner ud, der vises nul gange i enhver klasse

Hvis du smider funktioner A og C , fordi de vises nul str ong> gange i hvilken som helst af klasser, så er du kun tilbage med funktionen B at klassificere dokumenter med.

Og miste disse oplysninger er en dårlig ting, som du vil se nedenfor!

Hvis du får et testdokument som følger:

B = 1, C = 3

(Den indeholder B én gang og C tre gange)

Nu, da du har kasseret funktionerne A og B vil du ikke være i stand til at fortælle, om ovennævnte dokument tilhører klasse M eller klasse N

Så taber du noget funktionsoplysninger er en dårlig ting!

B) Smid funktioner væk, der vises nul gange i alle klasser

Er det muligt at omgå dette problem ved at kassere kun de funktioner, der vises nul gange i alle klasserne?

Nej, fordi det ville skabe sine egne problemer!

Følgende testdokument illustrerer, hvad der ville ske, hvis vi gjorde det:

A = 3, B = 1, C = 1

Sandsynligheden af M og N blev begge nul (fordi vi ikke kastede nul sandsynligheden for A i klassen N og nul sandsynligheden for C i klasse M ).

C) Kast ikke noget Væk - Brug i stedet udjævning

Udjævning giver dig mulighed for at klassificere begge ovennævnte dokumenter korrekt, fordi:

  1. Du mister ikke antallet af oplysninger i klasser, hvor sådan information er tilgængelig og
  2. Du behøver ikke at kæmpe med nul tællinger.

Naive Bayes-klassifikatorer i praksis

Naive Bayes-klassifikator i NLTK plejede at smide funktioner, der havde nulværdier i nogen af ​​klasserne.

Dette plejede at få det til at fungere dårligt, når det blev trænet ved hjælp af en hård EM-procedure (hvor klassifikatoren er bootstr fra meget få træningsdata).

@ Aiaioo Labs Du kunne ikke indse, at han henviste til ord, der overhovedet ikke blev vist i træningssættet. For eksempel henviste han til at sige, at hvis D dukkede op, er problemet ikke med laplace udjævning på beregningerne fratræningssæt snarere testsættet.Brug af laplace-udjævning på ukendte ord fra TEST-sættet medfører, at sandsynligheden for at blive skæv mod den klasse, der havde mindst antal tokens på grund af at 0 + 1/2 / 3 var større end 0 + 1/3 + 3 (hvis en af klasserne havde3 poletter og den anden havde 2)....
Dette kan faktisk gøre en korrekt klassificering til en forkert klassificering, hvis nok ukendte ord udjævnes i ligningen.Udjævning af Laplace er ok til beregning af træningssæt, men er skadelig for testsætanalyse. Forestil dig også, at du har et testsæt med alle ukendte ord, det skal klassificeres straks til klassen med størst sandsynlighed, men faktisk kan og vil det normalt ikke klassificeres som sådan og klassificeres normalt som klassen med det laveste beløbaf tokens.
@DrakeThatcher, er meget enig med dig, ja, hvis vi ikke fjerner ord, der ikke er i ordforråd, vil den forudsagte proba blive skæv til klasse med mindst mulig ord.
samthebest
2014-07-23 14:50:10 UTC
view on stackexchange narkive permalink

Matt, du har ret, du hæver et meget godt punkt - ja Laplace Glatning er helt ærligt tull! Bare at smide disse funktioner kan være en gyldig tilgang, især når nævneren også er et lille tal - der er simpelthen ikke nok bevis til at understøtte sandsynlighedsestimatet.

Jeg har en stærk modvilje mod at løse ethvert problem via brug af en vilkårlig justering. Problemet her er nuller, "løsningen" er bare "at tilføje en lille værdi til nul, så det ikke længere er nul - MAGIC problemet er ikke mere". Naturligvis er det helt vilkårligt.

Dit forslag til bedre valg af funktioner til at begynde med er en mindre vilkårlig tilgang, og IME øger ydeevnen. Desuden forværrer Laplace Smoothing i forbindelse med naive Bayes, som modellen efter min erfaring, granularitetsproblemet - dvs. problemet, hvor scores output tendens til at være tæt på 1.0 eller 0.0 (hvis antallet af funktioner er uendeligt, vil hver score være 1.0 eller 0.0 - dette er en konsekvens af uafhængighedsantagelsen).

Nu findes alternative teknikker til sandsynlighedsestimering (bortset fra maksimal sandsynlighed + Laplace-udjævning), men er massivt underdokumenteret. Faktisk er der et helt felt kaldet induktiv logik og inferensprocesser, der bruger mange værktøjer fra informationsteori.

Hvad vi bruger i praksis er Minimum Cross Entropy Updating, som er en udvidelse af Jeffreys opdatering, hvor vi definere det konvekse område af sandsynlighedsrummet i overensstemmelse med beviset for at være regionen således, at et punkt i det ville betyde, at maksimal sandsynlighedsestimering er inden for den forventede absolutte afvigelse fra punktet.

Dette har en dejlig egenskab, at når antallet af datapunkter falder, skønnes fredsmæssigt problemfrit at nærme sig det foregående - og derfor er deres virkning i Bayesian-beregningen nul. Laplace-udjævning på den anden side gør, at hver estimering nærmer sig det punkt af maksimal entropi, der muligvis ikke er den forudgående, og derfor er effekten i beregningen ikke nul og vil bare tilføje støj.

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

Jeg stødte også på det samme problem, mens jeg studerede Naive Bayes.

Ifølge mig, når vi støder på et testeksempel, som vi ikke var stødt på under træning, bliver Posterior sandsynlighed 0.

Så ved at tilføje 1, selvom vi aldrig træner på en bestemt funktion / klasse, vil sandsynligheden for posterior aldrig være 0.

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

Du har muligvis ikke nok data til opgaven, og derfor ville estimatet ikke være nøjagtigt, eller modellen ville overdrive træningsdata, for eksempel kan vi ende med et sort svane problem.Der er ingen sort svane i vores træningseksempler, men det betyder ikke, at der ikke findes nogen sort svane i verden.Vi kan bare tilføje en forud for vores model, og vi kan også kalde det "pseudocount".



Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...