Naiv Bayes-algoritme i maskinlæring

Naiv Bayes klassificeringsalgoritme

Naiv Bayes klassificeringsalgoritme

Classifier er en maskinlæringsalgoritme, der kategoriserer data i en eller flere af et sæt "klasser". E-mail-klassifikator er et eksempel på en klassificering, der scanner e-mails for at filtrere dem efter klasseetiket: Spam eller ikke spam.

Naive Bayes Classifier i maskinlæring er en overvåget maskinlæring til klassificeringsopgaver.

Naiv Bayes klassificeringsalgoritme

Naive Bayes bruges til at løse klassifikationsproblemer. Den forudsiger på grundlag af sandsynligheden for et objekt. Naive Bayes er baseret på Bayes-sætningen, og den bruges for det meste til tekstklassificering. Naive Bayes er en probabilistisk klassifikationsalgoritme, der er nem at implementere og hurtig at træne.

Da den naive Bayes-klassifikator er baseret på Bayes-sætning, er den kendt som en sandsynlighedsklassifikator. Den forudsiger baseret på sandsynligheden for en vare.

Grund til at blive kaldt naive Bayes?

Naiv Bayes-klassificering har to ord: Naiv og Bayes. Hvorfor Navie? Denne algoritme behandler alle ordsætninger som ens. For eksempel er "Du er" og "Er du" de samme for denne algoritme. Det er ikke afhængigt af funktioner eller forekomst af funktioner. Hvis du vil identificere frugten Æble, skal du have farven rød, form sfærisk, smag sød at genkende som et æble. Det betyder, at disse funktioner er uafhængige af hinanden.

  • Naiv Bayes klassificerer antager, at funktionerne er uafhængige af hinanden. Da dette sjældent er muligt i virkelige data, så kaldes klassificeringen naiv.
  • Denne klassifikationsalgoritme er baseret på Bayes sætning, så kendt som Naive Bayes Classifier.

Naive Bayes' sætning

Bayes' sætning bruges til at finde sandsynligheden for en hypotese med betingede sandsynligheder afhængig af forhåndsviden. Denne sætning er opkaldt efter Thomas Bayes. Naiv Bayes klassifikator arbejder på princippet om betinget sandsynlighed, som givet af Bayes sætning.

For at forstå Bayes' teorem, lad os se på et simpelt naivt Bayes-klassificeringseksempel på at kaste to mønter. Vi kan få disse prøverum ved at kaste to mønter: {HH, HT, TH, TT}. Så sandsynligheden for disse begivenheder vil være:

  • At få to hoveder = 1/4
  • Mindst én hale = 3/4
  • Anden mønt er hoved givet den første mønt er hale = 1/2
  • At få to hoveder givet den første mønt er et hoved = 1/2

Bayes' sætning beregner sandsynligheden for, at en begivenhed sker ud fra sandsynligheden for en anden begivenhed, der allerede har fundet sted. Formlen for Bayes sætning er givet som:

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

P(A|B) Sandsynlighed for lige A, når lige B allerede er forekommet. Sandsynligheden P(B) bør ikke være nul.

  • Du skal finde sandsynligheden for hændelse A, som er givet når hændelse B (bevis) er sand.
  • P(A) er a priori (a priori, dvs. sandsynligheden for en observeret hændelse før bevis) af A. Her er hændelse B værdien af ​​en ukendt instans.
  • P(A|B) er den bageste sandsynlighed for hændelse B, altså sandsynligheden for hændelsen efter at have set på beviserne.

Arbejdseksempel på Naive Bayes' Classifier

Lad os tage et eksempel på shopping for at forstå, hvordan Bayes Naive Classifier fungerer. I dette datasæt er der et lille eksempeldatasæt på 30 rækker til dette eksempel.

datasæt

Arbejdseksempel på naive Bayes' klassificering

Problemet er at forudsige, om en person vil købe et produkt på en specifik kombination af dag, rabat og gratis levering ved hjælp af Naive Bayes Theorem.

Arbejdseksempel på naive Bayes' klassificering

Trin 1) Vi vil oprette frekvenstabeller for hver attribut ved hjælp af inputtyperne nævnt i datasættet, såsom dage, rabat og gratis levering.

Arbejdseksempel på naive Bayes' klassificering

Lad begivenheden 'Køb' angives som 'A' og uafhængige variabler, nemlig 'Rabat', 'Gratis levering' og 'Dag', betegnet som 'B'. Vi vil bruge disse hændelser og variabler til at anvende Bayes' sætning.

Trin 2) Lad os nu beregne sandsynlighedstabellerne én efter én.

Arbejdseksempel på naive Bayes' klassificering

Eksempel 1:

Baseret på denne sandsynlighedstabel vil vi beregne de betingede sandsynligheder 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 find P(A/B) ved hjælp af Bayes sætning,

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åde, hvis A er Køb, så

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

Bemærk: Da P(Buy | Weekday) er mere end P(No Buy | Weekday), kan vi konkludere, at en kunde højst sandsynligt vil købe produktet på en ugedag.

Trin 3) På samme måde kan vi beregne sandsynligheden for, at en hændelse indtræffer på basis af alle de tre variable. Nu vil vi beregne sandsynlighedstabeller for alle tre variabler ved hjælp af ovenstående frekvenstabeller.

Arbejdseksempel på Naive Bayes' Classifier

Eksempel 2:

Nu vil vi ved hjælp af disse tre sandsynlighedstabeller beregne, om en kunde sandsynligvis vil foretage et køb baseret på en specifik kombination af 'Dag', 'Rabat' og 'Gratis levering'.

Lad os her tage en kombination af disse faktorer:

  • Dag = helligdag
  • Rabat = Ja
  • Gratis levering = Ja

Hvornår, A = Køb

Beregn den betingede sandsynlighed for køb på følgende kombination af dag, rabat og gratis levering.

Hvor B er:

  • Dag = helligdag
  • Rabat = Ja
  • Gratis levering = Ja

Og A = Køb

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

Hvornår, A = Intet køb

Tilsvarende Beregn den betingede sandsynlighed for køb på følgende kombination af dag, rabat og gratis levering.

Hvor B er:

  • Dag = helligdag
  • Rabat = Ja
  • Gratis levering = Ja

Og A = Intet køb

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

Trin 4) derfor

Sandsynlighed for køb = 0.986

Sandsynlighed for intet køb = 0.027

Endelig har vi betingede sandsynligheder for at købe på denne dag. Lad os nu generalisere disse sandsynligheder for at opnå sandsynligheden for begivenhederne.

  • Summen af ​​sandsynligheder = 0.986 + 0.027 = 1.013
  • Sandsynlighed for køb = 0.986 / 1.013 = 97.33 %
  • Sandsynlighed for intet køb = 0.027 / 1.013 = 2.67 %

Bemærk, at da 97.33% er større end 2.67%. Vi kan konkludere, at den gennemsnitlige kunde vil købe på en ferie med rabat og gratis levering.

Typer af naive Bayes-model

Der er mange typer af Naive Bayes Classifiers. Her har vi diskuteret Multinomial, Bernoulli og Gaussian Naive Bayes klassifikatorer.

1. Multinomial Naive Bayes

Denne type naive Bayes-model bruges til dokumentklassificeringsproblemer. Det fungerer med funktioner, der repræsenterer frekvensen af ​​ord i et dokument. Klassifikatoren overvejer forekomsten og antallet af ord for at bestemme sandsynligheden for, at et dokument tilhører en bestemt kategori, såsom sport, politik eller teknologi.

2. Bernoulli Naive Bayes

Dette svarer til multinomial Naive Bayes. Bernoulli Naive Bayes-klassificeringsapparat bruges til dokumentklassificeringsopgaver. Den bruger dog booleske forudsigere. Den repræsenterer, om et ord er til stede eller ej, og tager kun værdier Ja eller Nej. Klassifikatoren beregner sandsynligheden ud fra, om et ord forekommer i teksten eller ej.

3. Gaussisk Naive Bayes

Denne klassifikator bruges i tilfælde af kontinuerlig værdi, men ikke diskret værdi. Denne klassifikator beregner sandsynligheder ved hjælp af parametrene for Gauss fordeling, dvs. middelværdi og varians.

Gaussisk naiv Bayes

Formlen for betinget sandsynlighed ændres til,

Gaussisk naiv Bayes

Fordele og begrænsninger ved Naive Bayes Classifier

Der er forskellige fordele og ulemper ved Naive Bayes-algoritmen i maskinlæring.

Fordele ved Naive Bayes Classifier

  • Enkelhed og effektivitet: Naive Bayes er enkel og nem at træne og implementere. Det er effektivt på grund af lave beregningsomkostninger. Det kan håndtere store datasæt effektivt.
  • Hurtig træning og forudsigelse: Naive Bayes kræver ikke så meget træningsdata på grund af uafhængighed mellem funktioner. Det kan forudsige hurtigt, når modellen er trænet.
  • Skalerbarhed: Naive Bayes kan håndtere højdimensionelle datasæt med en lang række funktioner. Det fungerer godt, selv når antallet af funktioner er større end antallet af træningseksempler. Den skaleres med antallet af datapunkter og forudsigelser. Den håndterer både kontinuerlige og diskrete data.
  • Robusthed til irrelevante funktioner: Den er ikke følsom over for irrelevante funktioner.
  • Fungerer godt med små træningssæt: Naive Bayes kan give rimelige resultater selv med begrænsede træningsdata. Den kan håndtere situationer, hvor antallet af træningstilfælde er lille. Det kræver ikke så meget træningsdata.

Begrænsning af Naive Bayes Classifier

Naive Bayes ind machine learning antager, at alle funktioner er uafhængige af hinanden. Så det kan ikke lære relationer mellem forskellige funktioner i dataene. Den behandler hver funktion, som om den ikke har nogen relation til de andre.

For at overvinde dette problem kan du bruge Beslutningstræer, Random Forests, Support Vector Machines (SVM), Neurale netværk osv. Disse algoritmer har evnen til at lære komplekse relationer og afhængigheder mellem funktioner i dataene. Så disse kan forudsige mere nøjagtige resultater.

Anvendelser af Naive Bayes Classifier

Da denne algoritme er hurtig og effektiv, kan du bruge den til at lave forudsigelser i realtid.

Spam detektion

E-mail-tjenester (såsom Gmail) bruge denne algoritme til at afgøre, om en e-mail er spam. Denne algoritme er fremragende til spamfiltrering.

Følelsesanalyse

Den kan klassificere tekst som positiv, negativ eller neutral baseret på funktioner som ordvalg, sætningsstruktur og kontekst. Det finder applikationer i sociale medier overvågning, kundeanmeldelser og markedsundersøgelser.

Dokumentklassificering

Det kan klassificere dokumenter i kategorier såsom sport, politik, teknologi eller finans baseret på hyppigheden eller tilstedeværelsen af ​​specifikke ord eller funktioner i dokumentet.

Anbefalingssystemer

Det kan analysere brugerpræferencer, historiske data og varefunktioner for at forudsige brugerinteresser eller præferencer for at anbefale produkter, film eller artikler.

Denne klassificeringsalgoritme bruges også i ansigtsgenkendelse, vejrudsigt, medicinsk diagnose, shopping, nyhedsklassificering osv. Du kan implementere Naive Bayes i Python. Der er Naive Bayes-klassifikator sklearn, dvs. sklearn.naive_bayes. Det er modul, der implementerer denne algoritme.

Konklusion

Naive Bayes-algoritmer i maskinlæring er klassificeringsapparater, der oftest bruges i spam-detektion, nyhedsklassificering, sentimentanalyse, vejrudsigelse, shopping osv. Naive Bayes-algoritmerne er baseret på Bayes-sætningen. Denne algoritme er enkel og nem at implementere. Da det er hurtigt, kan vi bruge det i realtidsapplikationer. Dens største ulempe er, at den antager uafhængige funktioner (da uafhængige funktioner sjældent er mulige i det virkelige liv, så det er kendt som naivt). Den behandler hver funktion som ens. For at overvinde denne ulempe kan du bruge andre klassifikatorer som Decision Tree, Random Forest, Support Vector Machine (SVM) osv.