Naïef Bayes-algoritme in machinaal leren
Naïef Bayes-classificatoralgoritme
Classifier is een algoritme voor machinaal leren dat gegevens categoriseert in een of meer van een reeks 'klassen'. E-mailclassifier is een voorbeeld van een classifier die e-mails scant om ze te filteren op klassenlabel: Spam of Geen spam.
Naive Bayes Classifier in machine learning is een begeleide machine learning voor classificatietaken.
Naive Bayes wordt gebruikt voor het oplossen van classificatieproblemen. Het voorspelt op basis van de waarschijnlijkheid van een object. Naive Bayes is gebaseerd op de stelling van Bayes en wordt voornamelijk gebruikt voor tekstclassificatie. Naive Bayes is een probabilistisch classificatie-algoritme dat eenvoudig te implementeren en snel te trainen is.
Omdat de Naive Bayes-classificator gebaseerd is op de stelling van Bayes, staat deze bekend als een waarschijnlijkheidsclassificator. Het voorspelt op basis van de waarschijnlijkheid van een item.
Reden om Naïeve Bayes genoemd te worden?
Naïef Bayes-classificatie heeft twee woorden: naïef en Bayes. Waarom Navie? Dit algoritme behandelt alle woordzinnen als hetzelfde. 'Jij bent' en 'Bent jij' zijn bijvoorbeeld hetzelfde voor dit algoritme. Het is niet afhankelijk van kenmerken of het voorkomen van kenmerken. Als je de vrucht Appel wilt identificeren dan heb je kleur rood nodig, bolvormig, zoet smakend om te herkennen als een Appel. Het betekent dat deze functies onafhankelijk van elkaar zijn.
- De naïeve Bayes-classificator gaat ervan uit dat de kenmerken onafhankelijk van elkaar zijn. Omdat dit zelden mogelijk is in praktijkgegevens, wordt de classificator naïef genoemd.
- Dit classificatie-algoritme is gebaseerd op de stelling van Bayes, ook wel bekend als Naive Bayes Classifier.
Het naïeve theorema van Bayes
De stelling van Bayes wordt gebruikt om de waarschijnlijkheid van een hypothese te vinden met voorwaardelijke kansen die afhankelijk zijn van voorkennis. Deze stelling is vernoemd naar Thomas Bayes. De naïeve Bayes-classificator werkt volgens het principe van voorwaardelijke waarschijnlijkheid, zoals gegeven door de stelling van Bayes.
Laten we, om de stelling van Bayes te begrijpen, eens kijken naar een eenvoudig, naïef Bayes-classificatievoorbeeld van het opgooien van twee munten. We kunnen deze voorbeeldruimten verkrijgen door twee munten op te gooien: {HH, HT, TH, TT}. De kansen op deze gebeurtenissen zijn dus:
- Twee hoofden krijgen = 1/4
- Minstens één staart = 3/4
- De tweede munt is kop, aangezien de eerste munt staart = 1/2 is
- Twee kop krijgen gegeven de eerste munt is een kop = 1/2
De stelling van Bayes berekent de waarschijnlijkheid dat een gebeurtenis plaatsvindt op basis van de waarschijnlijkheid van een andere gebeurtenis die al heeft plaatsgevonden. De formule voor de stelling van Bayes wordt gegeven als:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) Waarschijnlijkheid van zelfs A als zelfs B al heeft plaatsgevonden. Waarschijnlijkheid P(B) mag niet nul zijn.
- Je moet de waarschijnlijkheid van gebeurtenis A vinden, die wordt gegeven als gebeurtenis B (bewijs) waar is.
- P(A) is a priori (a priori, dwz de waarschijnlijkheid van een waargenomen gebeurtenis vóór bewijs) van A. Hier is gebeurtenis B de waarde van een onbekende instantie.
- P(A|B) is de posterieure waarschijnlijkheid van gebeurtenis B, dat wil zeggen de waarschijnlijkheid van de gebeurtenis na het bekijken van het bewijsmateriaal.
Werkend voorbeeld van de Classifier van Naive Bayes
Laten we een voorbeeld van winkelen nemen om de werking van Bayes Naive Classifier te begrijpen. In deze gegevensset bevindt zich een kleine voorbeeldgegevensset van 30 rijen voor dit voorbeeld.
dataset
Het probleem is om te voorspellen of iemand een product zal kopen op een specifieke combinatie van Dag, Korting en Gratis bezorging met behulp van het Naïeve Bayes-theorema.
Stap 1) We zullen voor elk attribuut frequentietabellen maken met behulp van de invoertypen die in de dataset worden vermeld, zoals dagen, korting en gratis bezorging.
Laat de gebeurtenis 'Kopen' aangeduid als 'A', en onafhankelijke variabelen, namelijk 'Korting', 'Gratis bezorging' en 'Dag', aangeduid als 'B'. We zullen deze gebeurtenissen en variabelen gebruiken om de stelling van Bayes toe te passen.
Stap 2) Laten we nu de Waarschijnlijkheidstabellen één voor één berekenen.
Voorbeeld 1:
Op basis van deze waarschijnlijkheidstabel berekenen we de voorwaardelijke kansen, zoals hieronder.
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
En vind P(A/B) met behulp van de stelling van Bayes,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
Op dezelfde manier, als A Kopen is, dan
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
Opmerking: Omdat de P(Koop | Weekdag) groter is dan P(Geen Koop | Weekdag), kunnen we concluderen dat een klant het product hoogstwaarschijnlijk op een weekdag zal kopen.
Stap 3) Op dezelfde manier kunnen we de waarschijnlijkheid van het optreden van een gebeurtenis berekenen op basis van alle drie de variabelen. Nu zullen we de waarschijnlijkheidstabellen voor alle drie de variabelen berekenen met behulp van de bovenstaande frequentietabellen.
Voorbeeld 2:
Met behulp van deze drie Waarschijnlijkheidstabellen gaan we nu berekenen of het waarschijnlijk is dat een klant een aankoop zal doen op basis van een specifieke combinatie van 'Dag', 'Korting' en 'Gratis bezorging'.
Laten we hier een combinatie van deze factoren nemen:
- Dag = Vakantie
- Korting = Ja
- Gratis levering = Ja
Wanneer, A = Kopen
Bereken de voorwaardelijke aankoopkans op de volgende combinatie van dag, korting en gratis bezorging.
Waar B is:
- Dag = Vakantie
- Korting = Ja
- Gratis levering = Ja
En A = Kopen
daarom
= 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
Wanneer, A = Geen aankoop
Bereken op dezelfde manier de voorwaardelijke waarschijnlijkheid van aankoop op de volgende combinatie van dag, korting en gratis bezorging.
Waar B is:
- Dag = Vakantie
- Korting = Ja
- Gratis levering = Ja
En A = Geen aankoop
daarom
= 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
Stap 4) Vandaar,
Waarschijnlijkheid van aankoop = 0.986
Kans op geen aankoop = 0.027
Ten slotte hebben we voorwaardelijke kansen om op deze dag te kopen. Laten we nu deze waarschijnlijkheden generaliseren om de waarschijnlijkheid van de gebeurtenissen te verkrijgen.
- Som van kansen = 0.986 + 0.027 = 1.013
- Aankoopkans = 0.986 / 1.013 = 97.33%
- Kans op geen aankoop = 0.027 / 1.013 = 2.67%
Merk op dat 97.33% groter is dan 2.67%. We kunnen concluderen dat de gemiddelde klant op vakantie met korting en gratis bezorging koopt.
Soorten naïef Bayes-model
Er zijn veel soorten naïeve Bayes-classificatoren. Hier hebben we Multinomiale, Bernoulli en Gaussiaanse Naïeve Bayes-classificatoren besproken.
1. Multinomiale naïeve baaien
Dit type Naive Bayes-model wordt gebruikt voor problemen met documentclassificatie. Het werkt met functies die de frequentie van woorden in een document weergeven. De classificator houdt rekening met het voorkomen en het aantal woorden om de waarschijnlijkheid te bepalen dat een document tot een specifieke categorie behoort, zoals sport, politiek of technologie.
2. Bernoulli Naïeve Bayes
Dit is vergelijkbaar met de multinomiale Naive Bayes. De Bernoulli Naive Bayes-classificator wordt gebruikt voor documentclassificatietaken. Er worden echter booleaanse voorspellers gebruikt. Het geeft aan of een woord aanwezig is of niet en neemt alleen de waarden Ja of Nee aan. De classificator berekent de kansen op basis van het feit of een woord in de tekst voorkomt of niet.
3. Gaussiaanse naïeve baaien
Deze classificator wordt gebruikt in het geval van een continue waarde, maar niet van een discrete waarde. Deze classificator berekent kansen met behulp van de parameters van de Gauss verdeling, dat wil zeggen gemiddelde en variantie.
De formule voor voorwaardelijke waarschijnlijkheid verandert in,
Voordelen en beperkingen van Naive Bayes Classifier
Er zijn verschillende voor- en nadelen van het Naive Bayes-algoritme in machine learning.
Voordelen van de naïeve Bayes-classificator
- Eenvoud en efficiëntie: Naive Bayes is eenvoudig en gemakkelijk te trainen en te implementeren. Het is efficiënt vanwege de lage rekenkosten. Het kan grote datasets efficiënt verwerken.
- Snelle training en voorspelling: Naive Bayes heeft niet zoveel trainingsgegevens nodig vanwege de onafhankelijkheid tussen functies. Zodra het model is getraind, kan het snel voorspellen.
- schaalbaarheid: Naive Bayes kan overweg met hoogdimensionale datasets met een groot aantal functies. Het presteert goed, zelfs als het aantal functies groter is dan het aantal trainingsvoorbeelden. Het schaalt mee met het aantal datapunten en voorspellers. Het verwerkt zowel continue als discrete gegevens.
- Robuustheid voor irrelevante kenmerken: Het is niet gevoelig voor irrelevante kenmerken.
- Werkt goed met kleine trainingssets: Naïef Bayes kan zelfs met beperkte trainingsgegevens redelijke resultaten opleveren. Het kan situaties aan waarin het aantal trainingsinstanties klein is. Er zijn niet zoveel trainingsgegevens nodig.
Beperking van de naïeve Bayes-classificator
Naïeve Bayes in machine learning gaat ervan uit dat alle kenmerken onafhankelijk van elkaar zijn. Het kan dus geen relaties leren tussen verschillende kenmerken in de gegevens. Het behandelt elk kenmerk alsof het geen relatie heeft met de andere.
Om dit probleem te overwinnen, kunt u gebruiken Beslissingsbomen, Random Forests, Support Vector Machines (SVM), Neural Networks etc. Deze algoritmes hebben de mogelijkheid om complexe relaties en afhankelijkheden tussen features in de data te leren. Hierdoor kunnen ze nauwkeurigere resultaten voorspellen.
Toepassingen van Naive Bayes Classifier
Omdat dit algoritme snel en efficiënt is, kun je het gebruiken om realtime voorspellingen te doen.
Spamdetectie
E-maildiensten (zoals Gmail) gebruiken dit algoritme om te bepalen of een e-mail spam is. Dit algoritme is uitstekend voor spamfiltering.
Sentiment analyse
Het kan tekst classificeren als positief, negatief of neutraal op basis van kenmerken zoals woordkeuze, zinsstructuur en context. Het vindt toepassingen in het monitoren van sociale media, klantrecensies en marktonderzoek.
Documentclassificatie
Het kan documenten classificeren in categorieën zoals sport, politiek, technologie of financiën op basis van de frequentie of aanwezigheid van specifieke woorden of kenmerken in het document.
Aanbevolen systemen
Het kan gebruikersvoorkeuren, historische gegevens en itemfuncties analyseren om gebruikersinteresses of voorkeuren voor het aanbevelen van producten, films of artikelen te voorspellen.
Dit classificatie-algoritme wordt ook gebruikt bij gezichtsherkenning, weersvoorspelling, medische diagnose, winkelen, nieuwsclassificatie enz. U kunt Naive Bayes implementeren in Python. Er is een Naive Bayes-classificator sklearn, dat wil zeggen sklearn.naive_bayes. Het is een module die dit algoritme implementeert.
Conclusie
Naive Bayes-algoritmen in machine learning zijn classificatoren die vooral worden gebruikt bij spamdetectie, nieuwsclassificatie, sentimentanalyse, weersvoorspelling, winkelen, etc. De Naive Bayes-algoritmen zijn gebaseerd op de stelling van Bayes. Dit algoritme is eenvoudig en gemakkelijk te implementeren. Omdat het snel is, kunnen we het in realtime toepassingen gebruiken. Het grootste nadeel is dat het onafhankelijke kenmerken veronderstelt (aangezien onafhankelijke kenmerken in het echte leven zelden mogelijk zijn, dus staat het bekend als naïef). Het behandelt elke functie als gelijk. Om dit nadeel te ondervangen, kunt u andere classificaties gebruiken, zoals Decision Tree, Random Forest, Support Vector Machine (SVM) enz.