Naive Bayes

Maybe where u start reading this, you may ask, “who the hell is bayes???”, well, trust me, i don’t know him well either :D . As far as i know, he is the founding of bayesian theorem, one the basic “uncertainty” (sorry if i misspell it :D ) theorem in artificial intelligence.

I want start to find more about bayes when i took decision support system course. The most painful thing is i got “statistical method” categories in final project. I’m bad when dealing with math or statistic. It’s really sucks. Moreover, i didn’t have enough time at the beginning. So i let my team, tiwi(oh.. god, not again), hanna, rina, and denny from statistic to made first progress.

Presentation before the mid exam was made by denny. I didn’t get the point though, because he is using anava method (it’s really complicated shit). I’m really don’t get the idea of anava. I’m afraid that thing is inapplicable in our project.

Time for made the final project is nearer every day. Luckily, i have some extra time to made progress with bayes. After searching and searching, i found that the easiest thing is create application with naive bayes classifier.

Ok, what the hell is naive bayes classifier? I’ll try to make simple explanation. Bayesian theorem is theorem about probability. It’s the basic for naive bayes classifier. Well, probability is easy, say you have a coin (one side is head and tail is another), if you throw it once, what is the probability of showing head, and what is the probability of showing tail. Let see.. is it 50% chance? Yup, you’re right.

The idea of naive bayes classifier is using the probability of some independence event and calculate an event which is influenced by independence event. The most simple example (i think) is the probability of play-tennis or not-to-play-tennis. Let’s go straight into the sample.

Let say, you have some of data like this :

Day Outlook Temperature Humidity Wind
Day1 Sunny Hot High Weak No
Day2 Sunny Hot High Strong No
Day3 Overcast Hot High Weak Yes
Day4 Rain Mild High Weak Yes
Day5 Rain Cool Normal Weak Yes
Day6 Rain Cool Normal Strong No
Day7 Overcast Cool Normal Strong Yes
Day8 Sunny Mild High Weak No
Day9 Sunny Cool Normal Weak Yes
Day10 Rain Mild Normal Weak Yes
Day11 Sunny Mild Normal Strong Yes
Day12 Overcast Mild High Strong Yes
Day13 Overcast Hot Normal Weak Yes
Day14 Rain Mild High Strong No

Let see… just focus on first column, bout the outlook. Ok, now with that data, calculate, how much is the probability we play tennis in sunny day. Probability of playing tennis in sunny day is 2 / 9 = 2/9 = 22% chances. Remember, 9 obtained from total yes. We can also get the probability of rain-Yes, rain-No, etc.

Get the point? Ok, naive bayes is simple, we use that independence probability (rain-yes,rain-no,sunny-yes,sunny-no,etc) to calculate how much probability to play tennis or not. The good thing is, we don’t need every information, even partial data is enough to make a inference / decision.

This is how we calculate the probability of Play tennis = yes from data : Outlook = sunny, temperature = cool, and humidity = high. Ok, the probability for Sunny-Yes = 2/9, Sunny-No = 3/5, cool-Yes = 3/9, cool-No = 1/5, highHumid-Yes = 3/9 , highHumid-No = 4/5, Yes = 9/14 and No = 5/14.

Now we calculate the probability of play tennis.
p(PlayTennisYes) = p(Yes)*p(Sunny-Yes)*p(cool-Yes)*p(highHumid-Yes) / [(p(Yes)*p(Sunny-Yes)*p(cool-Yes)*p(highHumid-Yes)) + (p(No)*p(Sunny-No)*p(cool-No)*p(highHumid-No))]

Well, it’s hard to read, because i don’t understand LaTex though, sorry bout the equation, anyway, the simpler ways is the probability is yes*yes*yes / [(no*no*no) + (yes*yes*yes)].

The more advance use of bayesian theorem is bayesian network. In bayesian network, each probability is not independence, it’s depend on each other. Example is beach problem. How much people going to beach if not holiday? how much holiday depend on political situation, etc.

Well, that is naive bayes. I’ve made application with Delphi and MySQL as database. It’s application to decide whether someone is have the right to get the BLT(Cash Funding for the poor). You can download the source and the binary in here . I’m using suipack and Zeos Component, you can download it here [link dead]. You can also download my presentation. For the final report, right now, I’m working on it, so you can download immediately (Hey, i’m not the one who’s made the report, I just made application in one night). I hope you get something about bayes, because in artificial intelligence cource, i don’t get anything about bayes. Thanks for reading :D .

Links :
Naive Bayes@Wikipedia.org
Application source code
Components i used [link dead]

Sharing is caring :)

4 thoughts on “Naive Bayes

  1. Hi guys.. sorry to say that the link is broken down, and I’ve lost the source also. I’ve tried to look at my old college files, but still can’t find it anywhere. Sorry guys :(

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>