naivbayes.py
#bayes classifer, feeds in dictionary objects.
from decimal import *
getcontext().prec = 5
class NBC (object):
def __init__(self, *keys):
self.keys = keys
self.data = {elem:[] for elem in self.keys}
def probofkey(self, key, outcome):
return Decimal(len([elem for elem in self.data[key] if elem == outcome]))/Decimal(len(self.data[key]))
def condprob(self, keyd, outcomed, keyk, outcomek):
count = 0
for i in range(len(self.data[keyd])):
if self.data[keyd][i] == outcomed and self.data[keyk][i] == outcomek:
count += 1
return Decimal(count)/Decimal(len(self.data[keyd]))