Naïeve Bayes-classificatie

Naïeve Bayes-classificatie werkt aan het concept van voorwaardelijke waarschijnlijkheid. Het zou de vraag beantwoorden zoals wat de kans is dat een gegeven tupel van een dataset tot een bepaald klassenlabel behoort. Sommige mensen lopen vast toen ze hoorden over waarschijnlijkheid (voorwaardelijke). Laat ik bij de basis beginnen, zodat misverstanden over deze mooie classificatietechnieken wegnemen. Voordat we echt diep in “Bayesian Classifier” duiken, beginnen we met de basis van deze techniek, namelijk “Bayes Theorem”.

Stelling van Bayes

Beschouw een dataset D met een tupel X in de Bayes-stelling X werkt als bewijs. Laat H enkele hypothesen zijn i s zoals dat het datatupel X behoort tot een gespecificeerde klasse C. Voor classificatieproblemen willen we P ( H | X ), de waarschijnlijkheid dat de hypothese H geldt gegeven het “bewijs” of de waargenomen datatupel X . We willen de waarschijnlijkheid weten dat tuple X tot klasse C behoort, aangezien we de attribuutbeschrijving van X kennen (maak je geen zorgen als iets tot nu toe niet voor je werkt). Stel dat in D ons gegevenstupel X beperkt is tot alleen inkomen en leeftijd (eigenlijk zijn dit de attributen) en een van de tupels zegt dat X is een klant met de leeftijd van 35 en een inkomen van $ 40.000 en laat H de hypothese is dat onze klant een computer zal kopen, dan zijn de volgende waarschijnlijkheden die we moeten overwegen:

P ( H | X ): de kans dat klant X een computer koopt, aangezien we de leeftijd en het inkomen van de klant kennen.

P ( X | H ): de kans dat de klant X 35 jaar is en $ 40.000 verdient, aangezien we weten dat hij / zij de computer zal kopen .

P ( X ): de kans dat de klant X uit een reeks klanten 35 jaar oud is en $ 40.000 verdient.

P ( H ): de kans dat de klant de computer koopt.

Opmerking: hier worden P ( H | X ), P ( X | H ) genoemd als posterieure kans , of een posteriori waarschijnlijkheid en P ( X ), P ( H ) worden eerdere waarschijnlijkheid , of een priori waarschijnlijkheid.

Hoe deze kansen te berekenen?

De stelling van Bayes biedt een manier om de posterieure waarschijnlijkheid, P ( H | X ), uit P ( X | H ), P ( X ) en P ( H ).

De stelling van Bayes is:

van bovenaf in ons geval P ( H | X ) = (P ( X | H ) * P ( H )) / P ( X ).

Naïeve Bayesiaanse classificatie

voor P (X | Ci) in de bovenstaande vergelijking zet X = xk, u = gemiddelde van Ci, en standaarddeviatie = sd (Ci).

Het was allemaal de ruwe theorie, beschouw nu een voorbeeld voor een beter begrip

Stel dat we een tuple X = (leeftijd = jeugd, inkomen = gemiddeld, student = ja, kredietwaardigheid = redelijk) hebben en dat we het klassenlabel (ja of nee) moeten voorspellen. P (Ci) i = 1, 2 de eerdere waarschijnlijkheid van elke klas kan worden berekend op basis van de trainingstuples:

Hier hebben we x1 = leeftijd, x2 = inkomen, x3 = student, x4 = kredietwaardigheid

P (C1) = P (buys_computer = ja) = 9/14 = 0,643 (sinds in totaal 9 rijen ja)

P (C2) = P (buys_computer = no) = 5/14 = 0.357.

Om P (X | Ci) te berekenen, berekenen we voor i = 1, 2 de volgende voorwaardelijke kansen:

P (leeftijd = jeugd | buys_computer = ja) = 2/9 = 0.222 (het P (x1 | C1) = waarschijnlijk (leeftijd = jeugd en koopcomputer = ja) / waarschijnlijk (koop_computer = ja) = ( 2/14) / (9/14) = 2/9)

P (age = youth | buys_computer = no) = 3/5 = 0.600 (it P (x1 | C2))

P (inkomen = gemiddeld | buys_computer = ja) = 4/9 = 0.444 (it P (x2 | C1))

P (inkomen = gemiddeld | buys_computer = nee) = 2/5 = 0.400 (it P (x2 | C2))

P (student = ja | buys_computer = ja) = 6/9 = 0,667

P (student = ja | buys_computer D = nee) = 1/5 = 0.200

P (credit_rating = fair | buys_computer = yes) = 6/9 = 0,667

P (credit_rating = fair | buys_computer = no) = 2/5 = 0,400

Door deze kansen te gebruiken, verkrijgen we P ( X | buys_computer = ja) = P (leeftijd = jeugd | koopt computer = ja) * P (inkomen = gemiddeld | buys_computer = ja) * P ( student = ja | buys_computer = ja) * P (kredietwaardigheid = redelijk | buys_computer = ja) = 0,222 * 0,444 * 0,667 * 0,667 = 0,044.

Evenzo, P ( X | buys_computer = no) = 0,600 * 0,400 * 0,200 * 0,400 = 0,019.

Om de klasse Ci, die P (X | Ci) * P (Ci) maximaliseert, te vinden, berekenen we

P ( X | buys_computer = ja) * P (buys-computer = ja) = 0,044 * 0,643 = 0,028

P ( X | buys_computer = nee) * P (buys_computer = nee) = 0,019 * 0,357 = 0,007

Daarom voorspelt de naïeve Bayesiaanse classificator buys_computer = ja voor tupel X.

Om te voorkomen dat de waarschijnlijkheidswaarden nul worden berekend. Stel dat voor de klas computer = ja koopt in een of andere trainingsdatabase, D, die 1000 tupels bevat, we 0 tupels met inkomen = laag, 990 tupels met inkomen = gemiddeld en 10 tupels met inkomen = hoog. De kans op deze gebeurtenissen is respectievelijk 0, 0,990 (vanaf 990/1000) en 0,010 (vanaf 10/1000). Gebruikmakend van de Laplace-correctie voor de drie grootheden, doen we alsof we nog 1 tupel hebben voor elk inkomen-waarde-paar, voor elk inkomen-waarde-paar. Op deze manier krijgen we in plaats daarvan de volgende kansen (afgerond op drie decimalen):

1/1003 = 0,001, 999/1003 = 0,988, 11/1003 = 0,011 respectievelijk. De ‘gecorrigeerde’ kansschattingen liggen dicht bij hun ‘niet-gecorrigeerde’ tegenhangers, maar de nulkanswaarde wordt vermeden.