Site Overlay

Naive Bayes Forklart

Naive Bayes er en probabilistisk algoritme som vanligvis brukes i klassifisering problemer. Naive Bayes er enkelt, intuitivt, og ennå utfører overraskende godt i mange tilfeller. For eksempel, spam-filtre E-post-appen bruker er bygget på Naive Bayes. I denne artikkelen, vil jeg forklare rasjonale bak Naive Bayes og bygge et spam-filter i Python.,y, I’ll focus on binary classification problems)

Thomas Bayes, the ‘betting man’, from BBC

Before we get started, please memorize the notations used in this article:

Basic Idea

To make classifications, we need to use X to predict Y., Med andre ord, gitt en data punktet X=(x1,x2,…,xn), hva oddsen for Y blir y. Dette kan være omskrevet som følgende ligning:

Dette er den grunnleggende ideen Naive Bayes, resten av algoritmen er egentlig mer fokus på hvordan å beregne betinget sannsynlighet over.

Bayes Teorem

Så langt Mr. Bayes har ingen bidrag til algoritmen. Nå er hans tid til å skinne., I henhold til Bayes Teorem:

Bayes Teorem

Dette er en ganske enkel transformasjon, men det bygger bro mellom det vi ønsker å gjøre og hva vi kan gjøre. Vi kan ikke få P(Y|X) direkte, men vi kan få P(X|Y) og P(Y) fra treningen data., Here’s an example:

Weather dataset, from the University of Edinburgh

In this case, X =(Outlook, Temperature, Humidity, Windy), and Y=Play., P(X|Y) og P(Y) kan beregnes:

Eksempel på å finne P(Y) og P(X|Y)

Naive Bayes Antagelse, og Hvorfor

Teoretisk, det er ikke vanskelig å finne P(X|Y). Men, det er mye vanskeligere i virkeligheten som antall funksjoner vokser.,

7 parameters are needed for a 2-feature binary dataset

Estimate Join Distribution requires more data

Having this amount of parameters in the model is impractical., For å løse dette problemet, en naiv forutsetningen er gjort. Vi later alle funksjoner er uavhengige. Hva betyr dette?,div>

Naive Bayes Classifier

Naive Bayes need fewer parameters (4 in this case)

This is a big deal., Vi har endret antallet parametre fra eksponentiell å lineær. Dette betyr at Naive Bayes håndterer høy-dimensjonale data godt.

Kategoriske Og Kontinuerlige Funksjoner

Kategoriske Data

For kategoriske funksjoner, estimering av P(Xi|Y) er enkel.,

Beregne sannsynligheten for kategoriske funksjoner

Imidlertid ett problem er at hvis noen har verdier vis aldri (kanskje mangel på data), deres sannsynlighet vil være null, noe som gjør hele posterior sannsynligheten er null., En enkel måte å fikse dette problemet kalles Laplace-Estimator: legg imaginære prøver (vanligvis) for hver kategori

Laplace-Estimator

Kontinuerlig Data

For kontinuerlige funksjoner, det er i hovedsak to valg: discretization og kontinuerlig Naive Bayes.

Discretization virker ved å bryte dataene i kategoriske verdier., Den enkleste discretization er ensartet gruppering, som skaper hyllene med faste utvalg. Det er, selvfølgelig, smartere og mer kompliserte måter, for eksempel Rekursiv minimal entropi partisjonere eller SOM er basert partisjonering.

Discretizing Kontinuerlig Funksjon for Naive Bayes

Det andre alternativet er å utnytte kjente distribusjoner.,

Det er selvfølgelig andre distribusjoner:

Naive Bayes, fra Scikit-Lær

Selv om disse metodene varierer i form, hovedideen bak er den samme: forutsatt at funksjonen tilfredsstiller en viss distribusjon, estimering av parametrene i fordelingen, og deretter komme ut sannsynlighetstetthetsfunksjonen.,

Styrke og Svakhet

  1. Selv om den naive forutsetningen er sjelden sann, algoritmen utfører overraskende bra i mange tilfeller
  2. Håndterer høye dimensjonale data godt. Lett å parallelize og håndterer store datamengder godt
  3. Presterer bedre enn mer kompliserte modeller når datasettet er liten

Svakhet

  1. Den estimerte sannsynligheten er ofte unøyaktig på grunn av den naive forutsetning., Ikke ideelt for regresjon bruk eller sannsynlighet for estimering
  2. Når data er rikelig, andre mer kompliserte modeller har en tendens til å utkonkurrere Naive Bayes

Oppsummering

Naive Bayes benytter de mest grunnleggende sannsynlighet kunnskap og gjør en naiv forutsetning for at alle funksjoner er uavhengige. Til tross for enkelhet (noen vil kanskje si at overforenkling), Naive Bayes gir en anstendig ytelse i mange applikasjoner.

Nå kan du forstå hvor Naive Bayes fungerer, er det på tide å prøve det i det virkelige prosjekter!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *