Naiv Bayes-algoritme i maskinlæring

Naiv Bayes klassifiseringsalgoritme

Naiv Bayes klassifiseringsalgoritme

Classifier er en maskinlæringsalgoritme som kategoriserer data i en eller flere av et sett med "klasser". E-postklassifiserer er ett eksempel på en klassifisering som skanner e-poster for å filtrere dem etter klasseetikett: Spam eller Ikke Spam.

Naive Bayes Classifier i maskinlæring er en overvåket maskinlæring for klassifiseringsoppgaver.

Naiv Bayes klassifiseringsalgoritme

Naive Bayes brukes til å løse klassifiseringsproblemer. Den forutsier på grunnlag av sannsynligheten for et objekt. Naive Bayes er basert på Bayes-teorem og brukes for det meste til tekstklassifisering. Naive Bayes er en sannsynlighetsklassifiseringsalgoritme som er enkel å implementere og rask å trene.

Siden den naive Bayes-klassifisereren er basert på Bayes-teorem, er den kjent som en sannsynlighetsklassifiser. Den forutsier basert på sannsynligheten for en vare.

Grunn til å bli kalt naive Bayes?

Naiv Bayes klassifiserer har to ord: Naiv og Bayes. Hvorfor Navie? Denne algoritmen behandler alle ordsetninger som det samme. For eksempel er "Du er" og "Er du" det samme for denne algoritmen. Det er ikke avhengig av funksjoner eller forekomst av funksjoner. Hvis du vil identifisere frukten Eple trenger du farge rød, form sfærisk, smak søt å gjenkjenne som et eple. Det betyr at disse funksjonene er uavhengige av hverandre.

  • Naiv Bayes klassifiserer antar at funksjonene er uavhengige av hverandre. Siden dette sjelden er mulig i virkelige data, så kalles klassifikatoren naiv.
  • Denne klassifiseringsalgoritmen er basert på Bayes teorem så kjent som Naive Bayes Classifier.

Naiv Bayes' teorem

Bayes teorem brukes til å finne sannsynligheten for en hypotese med betingede sannsynligheter avhengig av forkunnskaper. Denne teoremet er oppkalt etter Thomas Bayes. Naiv Bayes klassifiserer fungerer på prinsippet om betinget sannsynlighet, gitt av Bayes teorem.

For å forstå Bayes' teorem, la oss se på et enkelt naivt Bayes-klassifiseringseksempel på å kaste to mynter. Vi kan få disse prøveplassene ved å kaste to mynter: {HH, HT, TH, TT}. Så sannsynlighetene for disse hendelsene vil være:

  • Å få to hoder = 1/4
  • Minst en hale = 3/4
  • Den andre mynten er hode gitt den første mynten er hale = 1/2
  • Å få to hoder gitt den første mynten er et hode = 1/2

Bayes' teorem beregner sannsynligheten for at en hendelse skal skje basert på sannsynligheten for en annen hendelse som allerede har funnet sted. Formelen for Bayes teorem er gitt som:

P(A|B) = (P(B|A) * P(A)) / P(B)

P(A|B) Sannsynlighet for partall A når partall B allerede har oppstått. Sannsynligheten P(B) skal ikke være null.

  • Du må finne sannsynligheten for hendelse A, som er gitt når hendelse B (bevis) er sann.
  • P(A) er a priori (a priori, dvs. sannsynligheten for en observert hendelse før bevis) av A. Her er hendelse B verdien av en ukjent instans.
  • P(A|B) er den bakre sannsynligheten for hendelse B, dvs. sannsynligheten for hendelsen etter å ha sett på bevisene.

Arbeidseksempel på Naive Bayes' Classifier

La oss ta et eksempel på shopping for å forstå hvordan Bayes Naive Classifier fungerer. I dette datasettet er det et lite eksempeldatasett på 30 rader for dette eksemplet.

datasett

Arbeidseksempel på Naive Bayes' klassifikatoren

Problemet er å forutsi om en person vil kjøpe et produkt på en spesifikk kombinasjon av dag, rabatt og gratis levering ved å bruke Naive Bayes-teorem.

Arbeidseksempel på Naive Bayes' klassifikatoren

Trinn 1) Vi vil lage frekvenstabeller for hvert attributt ved å bruke inputtypene nevnt i datasettet, for eksempel dager, rabatt og gratis levering.

Arbeidseksempel på Naive Bayes' klassifikatoren

La hendelsen 'Kjøp' angis som 'A', og uavhengige variabler, nemlig 'Rabatt', 'Gratis levering' og 'Dag', angitt som 'B'. Vi vil bruke disse hendelsene og variablene for å anvende Bayes' teorem.

Trinn 2) La oss nå beregne sannsynlighetstabellene én etter én.

Arbeidseksempel på Naive Bayes' klassifikatoren

Eksempel 1:

Basert på denne sannsynlighetstabellen vil vi beregne de betingede sannsynlighetene som nedenfor.

P(A) = P(No Buy) = 6/30 = 0.2
P(B) = P(Weekday) = 11/30 = 0.37
P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33

Og finn P(A/B) ved å bruke Bayes teorem,

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

På samme måte, hvis A er Kjøp, da

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

OBS: Siden P(Kjøp | Ukedag) er mer enn P(Ingen kjøp | Ukedag), kan vi konkludere med at en kunde mest sannsynlig vil kjøpe produktet på en ukedag.

Trinn 3) På samme måte kan vi beregne sannsynligheten for at en hendelse inntreffer på grunnlag av alle de tre variablene. Nå skal vi beregne sannsynlighetstabeller for alle tre variablene ved å bruke frekvenstabellene ovenfor.

Arbeidseksempel på Naive Bayes' Classifier

Eksempel 2:

Nå, ved å bruke disse tre sannsynlighetstabellene, vil vi beregne om en kunde sannsynligvis vil foreta et kjøp basert på en spesifikk kombinasjon av "Dag", "Rabatt" og "Gratis levering".

La oss her ta en kombinasjon av disse faktorene:

  • Dag = ferie
  • Rabatt = Ja
  • Gratis levering = Ja

Når, A = Kjøp

Beregn den betingede sannsynligheten for kjøp på følgende kombinasjon av dag, rabatt og gratis levering.

Hvor B er:

  • Dag = ferie
  • Rabatt = Ja
  • Gratis levering = Ja

Og A = Kjøp

Derfor,

= P(A/B)
= P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30)
= 0.986

Når, A = Ingen kjøp

På samme måte, Beregn den betingede sannsynligheten for kjøp på følgende kombinasjon av dag, rabatt og gratis levering.

Hvor B er:

  • Dag = ferie
  • Rabatt = Ja
  • Gratis levering = Ja

Og A = Ingen kjøp

Derfor,

= P(A/B)
= P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30)
= 0.027

Trinn 4) Derfor

Sannsynlighet for kjøp = 0.986

Sannsynlighet for ingen kjøp = 0.027

Til slutt har vi betingede sannsynligheter for å kjøpe denne dagen. La oss nå generalisere disse sannsynlighetene for å oppnå sannsynligheten for hendelsene.

  • Sum av sannsynligheter = 0.986 + 0.027 = 1.013
  • Sannsynlighet for kjøp = 0.986 / 1.013 = 97.33 %
  • Sannsynlighet for ingen kjøp = 0.027 / 1.013 = 2.67 %

Legg merke til at 97.33 % er større enn 2.67 %. Vi kan konkludere med at gjennomsnittskunden vil kjøpe på en ferie med rabatt og gratis levering.

Typer av naive Bayes-modeller

Det finnes mange typer naive Bayes-klassifiseringer. Her har vi diskutert Multinomial, Bernoulli og Gaussian Naive Bayes klassifikatorer.

1. Multinomial Naive Bayes

Denne typen Naive Bayes-modeller brukes for dokumentklassifiseringsproblemer. Den fungerer med funksjoner som representerer frekvensen av ord i et dokument. Klassifisereren vurderer forekomsten og antallet ord for å bestemme sannsynligheten for at et dokument tilhører en bestemt kategori, for eksempel sport, politikk eller teknologi.

2. Bernoulli Naive Bayes

Dette ligner på multinomial Naive Bayes. Bernoulli Naive Bayes klassifiserer brukes til dokumentklassifiseringsoppgaver. Den bruker imidlertid boolske prediktorer. Den representerer om et ord er tilstede eller ikke og tar kun verdier Ja eller Nei. Klassifisereren beregner sannsynlighetene basert på om et ord forekommer i teksten eller ikke.

3. Gaussisk Naive Bayes

Denne klassifikatoren brukes i tilfelle av kontinuerlig verdi, men ikke diskret verdi. Denne klassifikatoren beregner sannsynligheter ved å bruke parametrene til Gaussian fordeling, dvs. gjennomsnitt og varians.

Gaussisk naiv Bayes

Formelen for betinget sannsynlighet endres til,

Gaussisk naiv Bayes

Fordeler og begrensninger ved Naive Bayes Classifier

Det er ulike fordeler og ulemper med Naive Bayes-algoritmen i maskinlæring.

Fordeler med Naive Bayes Classifier

  • Enkelhet og effektivitet: Naive Bayes er enkel og lett å trene og implementere. Det er effektivt på grunn av lave beregningskostnader. Den kan håndtere store datasett effektivt.
  • Rask trening og prediksjon: Naive Bayes krever ikke så mye treningsdata på grunn av uavhengighet mellom funksjoner. Den kan forutsi raskt når modellen er trent.
  • skalerbarhet: Naive Bayes kan håndtere høydimensjonale datasett med et stort antall funksjoner. Den fungerer bra selv når antallet funksjoner er større enn antall treningseksempler. Den skaleres med antall datapunkter og prediktorer. Den håndterer både kontinuerlige og diskrete data.
  • Robusthet til irrelevante egenskaper: Den er ikke følsom for irrelevante funksjoner.
  • Fungerer bra med små treningssett: Naive Bayes kan gi rimelige resultater selv med begrensede treningsdata. Den kan håndtere situasjoner der antall treningsinstanser er lite. Det krever ikke så mye treningsdata.

Begrensning av Naive Bayes Classifier

Naive Bayes inn maskinlæring forutsetter at alle funksjoner er uavhengige av hverandre. Så den kan ikke lære relasjoner mellom forskjellige funksjoner i dataene. Den behandler hver funksjon som om den ikke har noen sammenheng med de andre.

For å overvinne dette problemet, kan du bruke Beslutningstrær, Random Forests, Support Vector Machines (SVM), Nevrale nettverk etc. Disse algoritmene har evnen til å lære komplekse relasjoner og avhengigheter mellom funksjoner i dataene. Så disse kan forutsi mer nøyaktige resultater.

Applikasjoner av Naive Bayes Classifier

Siden denne algoritmen er rask og effektiv, kan du bruke den til å lage spådommer i sanntid.

Spam Deteksjon

E-posttjenester (som Gmail) bruker denne algoritmen til å finne ut om en e-post er spam. Denne algoritmen er utmerket for spamfiltrering.

Sentiment Analyse

Den kan klassifisere tekst som positiv, negativ eller nøytral basert på funksjoner som ordvalg, setningsstruktur og kontekst. Den finner applikasjoner i overvåking av sosiale medier, kundeanmeldelser og markedsundersøkelser.

Dokumentklassifisering

Den kan klassifisere dokumenter i kategorier som sport, politikk, teknologi eller finans basert på frekvensen eller tilstedeværelsen av spesifikke ord eller funksjoner i dokumentet.

Anbefalingssystemer

Den kan analysere brukerpreferanser, historiske data og varefunksjoner for å forutsi brukerinteresser eller preferanser for å anbefale produkter, filmer eller artikler.

Denne klassifiseringsalgoritmen brukes også i ansiktsgjenkjenning, værprediksjon, medisinsk diagnose, shopping, nyhetsklassifisering osv. Du kan implementere Naive Bayes i Python. Det er Naive Bayes klassifiserer sklearn, dvs. sklearn.naive_bayes. Det er modulen som implementerer denne algoritmen.

Konklusjon

Naive Bayes-algoritmer i maskinlæring er klassifiseringer som for det meste brukes i spam-deteksjon, nyhetsklassifisering, sentimentanalyse, værprediksjon, shopping osv. Naive Bayes-algoritmene er basert på Bayes-teorem. Dette algoritme er enkel og lett å implementere. Siden det er raskt, kan vi bruke det i sanntidsapplikasjoner. Den største ulempen er at den antar uavhengige funksjoner (siden uavhengige funksjoner er sjelden mulig i det virkelige liv, så det er kjent som naivt). Den behandler hver funksjon som likeverdig. For å overvinne denne ulempen kan du bruke andre klassifiserere som Decision Tree, Random Forest, Support Vector Machine (SVM) etc.