Naïef Bayes-algoritme in machinaal leren
⚡ Slimme samenvatting
Naive Bayes is een supervised, probabilistisch classificatiealgoritme gebaseerd op de stelling van Bayes, waarbij ervan wordt uitgegaan dat elk kenmerk onafhankelijk bijdraagt. De theorie erachter is een uitgekiende werkplaats.ping Hieronder worden bijvoorbeeld de drie modelvarianten, hun voordelen, beperkingen en toepassingen in de praktijk besproken.
Naïef Bayes-classificatoralgoritme
Een classificator is een machine learning-algoritme dat gegevens sorteert in een of meer van een reeks 'klassen'. Een e-mailclassificator is een bekend voorbeeld: deze scant elk binnenkomend bericht en kent er een klasselabel aan toe, zoals Spam of Geen Spam.
De Naive Bayes-classificator in machine learning is een leren onder toezicht Algoritme gebruikt voor classificatietaken.
Het onderstaande diagram schetst die stroom.
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, wordt deze ook wel een waarschijnlijkheidsclassificator genoemd. Hij voorspelt op basis van de waarschijnlijkheid van een item.
Waarom heet het Naive Bayes?
De naam Naive Bayes bestaat uit twee delen: Naive en Bayes. Waarom naïef? Het algoritme negeert de volgorde waarin kenmerken verschijnen, waardoor "You are" en "Are you" er identiek uitzien. Het gaat er ook van uit dat geen enkel kenmerk een ander beïnvloedt. Om de vrucht appel te herkennen, gebruik je de kleur rood, de vorm bolvormig en de smaak zoet, en het algoritme behandelt elk van deze kenmerken als afzonderlijk, onafhankelijk bewijs.
- De Naive Bayes-classificator gaat ervan uit dat de kenmerken onafhankelijk van elkaar zijn. Omdat dit in de praktijk zelden het geval is, wordt de classificator 'naïef' genoemd.
- Dit classificatiealgoritme is gebaseerd op de stelling van Bayes en staat daarom bekend als de Naïeve Bayes-classificator.
Naïeve Bayes-stelling
De stelling van Bayes wordt gebruikt om de waarschijnlijkheid van een hypothese te bepalen met behulp van voorwaardelijke waarschijnlijkheden die afhankelijk zijn van voorkennis. Deze stelling is vernoemd naar Thomas Bayes. De Naive Bayes-classificator werkt volgens het principe van voorwaardelijke waarschijnlijkheid, zoals beschreven in de stelling van Bayes.
Om de stelling van Bayes te begrijpen, kijken we naar een eenvoudig voorbeeld van een naïeve Bayes-classificator: het gooien van twee munten. Door twee munten te gooien, kunnen we de volgende steekproefruimten verkrijgen: {HH, HT, TH, TT}. De kansen op deze gebeurtenissen zijn dan:
- 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 is als volgt:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) is de kans op gebeurtenis A wanneer gebeurtenis B al heeft plaatsgevonden. De kans 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 de a priori kans op A, oftewel de kans op de gebeurtenis voordat er enig bewijs is waargenomen. Hier is gebeurtenis B de waarde van een onbekende instantie.
- P(A|B) is de a posteriori kans op gebeurtenis A, oftewel de kans op A na bestudering van het bewijs B.
Werkend voorbeeld van een Naive Bayes-classificator
De snelste manier om te zien hoe de formule werkt, is door hem handmatig uit te voeren.
Laten we een winkel als voorbeeld nemen.ping Om de werking van de Bayesiaanse naïeve classificator te begrijpen. Deze dataset bevat een kleine voorbeelddataset van 30 rijen.
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.
Laten we de gebeurtenis 'Kopen' aanduiden met 'A', en de onafhankelijke variabelen, namelijk 'Korting', 'Gratis levering' en 'Dag', met '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
Let op: 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%
De twee scores tellen op tot 1.013 in plaats van 1, omdat de aanname van onafhankelijkheid elke schatting bij benadering maakt. Door te delen door het totaal worden ze daarom omgerekend naar percentages.
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ïeve Bayes-modellen
Er zijn veel soorten naïeve Bayes-classificatoren. Hier hebben we Multinomiale, Bernoulli en Gaussiaanse Naïeve Bayes-classificatoren besproken.
| Variant | Functietype | Typisch gebruik |
|---|---|---|
| Multinomiaal | Woordentellingen | Onderwerp- en documentclassificatie |
| Bernoulli | Binaire aan- of afwezigheidsvlaggen | Korte berichten en spamfiltering |
| Gauss | Continue numerieke waarden | Sensorwaarden en metingen |
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,
De scikit-leren De bibliotheek voegt twee extra varianten toe: Complement Naive Bayes voor onevenwichtige tekst en Categorical Naive Bayes voor discrete categorieën.
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 vereist minder trainingsdata vanwege de onafhankelijkheid tussen de kenmerken. Het model kan snel voorspellingen doen zodra het getraind is.
- 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ïeve Bayes kan zelfs met beperkte trainingsdata redelijke resultaten opleveren. Het kan situaties aan waarbij het aantal trainingsvoorbeelden klein is.
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.
Nog een waarschuwing: de gerapporteerde klassewaarschijnlijkheden zijn slecht gekalibreerd, waardoor het betrouwbaarheidspercentage dat aan een voorspelling is gekoppeld geen betrouwbare waarschijnlijkheid is.
Om dit probleem te overwinnen, kunt u gebruiken Beslissingsbomen, Random Forests, Support Vector Machines (SVM), Neurale netwerken enzovoort. Deze algoritmen hebben het vermogen om complexe relaties en afhankelijkheden tussen kenmerken in de data te leren. Daardoor 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 GmailDit algoritme wordt gebruikt om te bepalen of een e-mail spam is. Het is uitstekend geschikt 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 classificatiealgoritme wordt ook gebruikt in gezichtsherkenning, weersvoorspellingen, medische diagnoses en winkels.ping, Nieuwsclassificatie etc. Je kunt Naive Bayes implementeren in Python, waarbij de module sklearn.naive_bayes alle hierboven beschreven varianten biedt.








