Machine Learning Algorithm Confusion I made a small application about cricket prediction using Machine Learning. I took records of 10 years (2001-2011) of ODI matches and prepared a training set.
Now to predict a win or loss for a particular team, I considered various factors.
For example it is an India vs Australia match at Wankhede Stadium, India.
India’s record in past 10 years.
India’s record in past 2 years. (recent form)
India’s record in India in past 10 years.
India’s record in India in past 2 years. (recent form)
India’s record at Wankhede, past 10 years.
India’s record at Wankhede, past 2 years. (recent form)
Australia’s record in past 10 years.
Australia’s record in past two years.
Australia’s record against India in past 10 years.
Australia’s record against India in past 2 years.
Australia’s record against India in past 10 years in India.
Australia’s record against India in past 2 years in India.
So we took probabilities of all, Example, India played 322 matches in10 years and won 140, so the winning probability is 140/322 and so on for all the other factors. Now we added all the probabilities in the end and got a win loss percentage for both the countries. I wanted to know what kind of theorem is it. It started off as Naïve Bayes, but in Naïve Bayes we multiply the probabilities, unlike here. You can check the implementation here, http://www.manzarict.org/cricket We used basic PHP so that we could find probabilities faster using SQL queries. Now this might be a wrong approach to go about this sum, alternative methods are welcome.
 A: There are many problems here. The main issues are on adding and multiplying probabilities. You can have a read of this. Hopefully the errors will become self-evident. The concepts to bear in mind are dependence/independence and mutual exclusivity. 
For your second attempt, if you have variables that are not clearly dependent on each other, like: India’s record in past 10 years and India’s record in past 2 years, the obvious thing to try first may be Naive Bayes. You are right, the 0's can become a pain but the solution is very easy:

If a given class and feature value never occur together in the
  training data, then the frequency-based probability estimate will be
  zero. This is problematic because it will wipe out all information in
  the other probabilities when they are multiplied. Therefore, it is
  often desirable to incorporate a small-sample correction, called
  pseudocount, in all probability estimates such that no probability is
  ever set to be exactly zero. This way of regularizing naive Bayes is
  called Additive smoothing when the pseudocount is one, and Lidstone
  smoothing in the general case.

