Vad är Naive Bayes algoritm?

Naive Bayes algoritm är en teknik som hjälper till att konstruera klassificerare. Klassificeringar är de modeller som klassificerar probleminstansen och ger dem klassetiketter som representeras som vektorer för prediktorer eller funktionsvärden. Det är baserat på Bayes sats. Det kallas naiva Bayes eftersom det antar att värdet på en funktion är oberoende av den andra funktionen, dvs. att ändra värdet på en funktion skulle inte påverka värdet på den andra funktionen. Det kallas också som idiot Bayes på grund av samma anledning. Denna algoritm fungerar effektivt för stora datamängder, därmed bäst lämpade för realtidsförutsägelser.

Det hjälper till att beräkna den bakre sannolikheten P (c | x) med hjälp av den tidigare sannolikheten för klass P (c), den tidigare sannolikheten för prediktor P (x) och sannolikheten för prediktor given klass, även kallad som sannolikhet P (x | c ).

Formeln eller ekvationen för att beräkna bakre sannolikhet är:

  • P (c | x) = (P (x | c) * P (c)) / P (x)

Hur Naive Bayes algoritm fungerar?

Låt oss förstå hur Naive Bayes algoritm fungerar med hjälp av ett exempel. Vi antar en träningsdatauppsättning av väder och målvariabeln "Going shopping". Nu klassificerar vi om en tjej ska gå till shopping baserat på väderförhållanden.

Den givna datamängden är:

VäderGå shoppa
SoligNej
RegnigJa
MulenJa
SoligJa
MulenJa
RegnigNej
SoligJa
SoligJa
RegnigNej
RegnigJa
MulenJa
RegnigNej
MulenJa
SoligNej

Följande steg utförs:

Steg 1: Gör frekvensstabeller med datauppsättningar.

VäderJaNej
Solig32
Mulen40
Regnig23
Total95

Steg 2: Gör en sannolikhetstabell genom att beräkna sannolikheterna för varje väderförhållande och shoppa.

VäderJaNejSannolikhet
Solig325/14 = 0, 36
Mulen404/14 = 0, 29
Regnig235/14 = 0, 36
Total95
Sannolikhet9/14 = 0, 645/14 = 0, 36

Steg 3: Nu måste vi beräkna den bakre sannolikheten med Naive Bayes-ekvationen för varje klass.

Probleminstans: En tjej kommer att shoppa om vädret är molnigt. Är detta uttalande korrekt?

Lösning:

  • P (Ja | Molnigt) = (P (Molnigt | Ja) * P (Ja)) / P (Molnigt)
  • P (mulet | ja) = 4/9 = 0, 44
  • P (Ja) = 9/14 = 0, 64
  • P (mulet) = 4/14 = 0, 39

Lägg nu alla beräknade värden i formeln ovan

  • P (Ja | Molnigt) = (0, 44 * 0, 64) / 0, 39
  • P (Ja | Molnigt) = 0, 722

Klassen med högsta sannolikhet skulle vara resultatet av förutsägelsen. Med samma tillvägagångssätt kan sannolikheter för olika klasser förutsägas.

Vad används Naive Bayes algoritm för?

1. Realtidsprognos: Naive Bayes algoritm är snabb och alltid redo att lära sig och därmed bäst lämpad för realtidsprognoser.

2. Multiklassprognos: Sannolikheten för flerklasser av vilken målvariabel som helst kan förutsägas med hjälp av en Naive Bayes-algoritm.

3. Rekommendationssystem: Naive Bayes klassificering med hjälp av Collaborative Filtering bygger ett rekommendationssystem. Detta system använder data mining och maskininlärningstekniker för att filtrera informationen som inte har sett förut och sedan förutsäga om en användare skulle uppskatta en viss resurs eller inte.

4. Textklassificering / sentimentanalys / skräppostfiltrering: På grund av dess bättre prestanda med flerklassproblem och dess oberoende regel, fungerar Naive Bayes algoritm bättre eller har en högre framgångsgrad i textklassificering, därför används den i sentimentanalys och Skräppostfiltrering.

Fördelar med Naive Bayes algoritm

  • Lätt att implementera.
  • Snabb
  • Om antagandet om oberoende gäller så fungerar det mer effektivt än andra algoritmer.
  • Det kräver mindre träningsdata.
  • Det är mycket skalbart.
  • Det kan göra sannolika förutsägelser.
  • Kan hantera både kontinuerliga och diskreta data.
  • Okänslig för irrelevanta funktioner.
  • Det kan fungera enkelt med saknade värden.
  • Lätt att uppdatera vid ankomst av nya data.
  • Bäst lämpad för textklassificeringsproblem.

Nackdelar med Naive Bayes algoritm

  • Det starka antagandet om att funktionerna ska vara oberoende, vilket knappast är sant i verkliga applikationer.
  • Dataknapphet.
  • Chansen för förlust av noggrannhet.
  • Nollfrekvens, dvs om kategorin för någon kategorisk variabel inte ses i träningsdataset tilldelar modell en nollssannolikhet till den kategorin och då kan inte en förutsägelse göras.

Hur man bygger en grundmodell med Naive Bayes algoritm

Det finns tre typer av Naive Bayes-modeller, dvs. Gaussian, Multinomial och Bernoulli. Låt oss diskutera var och en av dem kort.

1. Gaussian: Gaussian Naive Bayes algoritm antar att de kontinuerliga värdena som motsvarar varje funktion distribueras enligt Gauss-distributionen, även kallad Normal distribution.

Sannolikheten eller föregående sannolikhet för prediktor för den givna klassen antas vara gaussisk, därför kan villkorad sannolikhet beräknas som:

2. Multinomial: Frekvenserna för förekomsten av vissa händelser som representeras av funktionsvektorer genereras med multinomial distribution. Denna modell används ofta för dokumentklassificering.

3. Bernoulli: I denna modell beskrivs ingångarna med funktionerna som är oberoende binära variabler eller Booleans. Detta används också ofta i dokumentklassificering som Multinomial Naive Bayes.

Du kan använda någon av ovanstående modeller enligt kraven för att hantera och klassificera datauppsättningen.

Du kan bygga en Gauss-modell med Python genom att förstå exemplet nedan:

Koda:

from sklearn.naive_bayes import GaussianNB
import numpy as np
a = np.array((-2, 7), (1, 2), (1, 5), (2, 3), (1, -1), (-2, 0), (-4, 0), (-2, 2), (3, 7), (1, 1), (-4, 1), (-3, 7)))
b = np.array((3, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 4))
md = GaussianNB()
md.fit (a, b)
pd = md.predict (((1, 2), (3, 4)))
print (pd)

Produktion:

((3, 4))

Slutsats

I den här artikeln lärde vi oss begreppen Naive Bayes algoritm i detalj. Det används mest i textklassificering. Det är lätt att implementera och snabbt att utföra. Dess stora nackdel är att det kräver att funktionerna måste vara oberoende, vilket inte är sant i verkliga applikationer.

Rekommenderade artiklar

Detta har varit en guide till Naive Bayes algoritm. Här diskuterade vi det grundläggande konceptet, arbeta, fördelar och nackdelar med Naive Bayes algoritm. Du kan också gå igenom våra andra föreslagna artiklar för att lära dig mer -

  1. Öka algoritmen
  2. Algoritm i programmering
  3. Introduktion till algoritm

Kategori: